@salsita-ai/sdk 0.50.0-develop.2331d4a6b7 → 0.50.0-develop.26a71cda28

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 (1270) hide show
  1. package/README.md +20 -12
  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/index.d.ts +1 -0
  12. package/dist/application-spec/core/index.js +1 -1
  13. package/dist/application-spec/core/json-value.d.ts +1 -1
  14. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  15. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  16. package/dist/application-spec/enhanced-json/index.js +1 -0
  17. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  18. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  19. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  20. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  21. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  22. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  23. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  24. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  25. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  26. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  27. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  28. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  29. package/dist/application-spec/errors/diagnostic-codes.d.ts +15 -0
  30. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  31. package/dist/application-spec/errors/diagnostic-messages.d.ts +18 -0
  32. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  33. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  34. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  35. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  36. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  37. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  38. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  39. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  40. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  41. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  42. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  43. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  44. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  45. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +2 -2
  46. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -13
  47. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  48. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  50. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  51. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  52. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.d.ts +3 -1
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +68 -64
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +6 -0
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/domain-spec.js +11 -11
  65. package/dist/application-spec/generate-application/code/templates/domain.js +4 -4
  66. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.d.ts +11 -0
  67. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +8 -0
  68. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  69. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/globals.js +6 -4
  71. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -7
  72. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  73. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  74. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  75. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +95 -41
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +39 -16
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +13 -5
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +42 -13
  82. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  83. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  84. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  85. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  86. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +3 -3
  87. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  88. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +14 -0
  89. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.js +1 -0
  90. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  91. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  92. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  93. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  95. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +1 -0
  97. package/dist/application-spec/generate-application/runtime/sections/index.js +1 -1
  98. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  99. package/dist/application-spec/index.d.ts +1 -0
  100. package/dist/application-spec/index.js +1 -1
  101. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +3 -1
  102. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  103. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  104. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  105. package/dist/application-spec/parse-application-files/merge/index.d.ts +1 -0
  106. package/dist/application-spec/parse-application-files/merge/index.js +1 -1
  107. package/dist/application-spec/parse-application-files/merge/merged-actions.d.ts +11 -0
  108. package/dist/application-spec/parse-application-files/merge/merged-actions.js +1 -0
  109. package/dist/application-spec/parse-application-files/merge/merged-spec.d.ts +2 -0
  110. package/dist/application-spec/parse-application-files/merge/merged-spec.js +1 -1
  111. package/dist/application-spec/parse-application-files/raw-spec/index.d.ts +1 -0
  112. package/dist/application-spec/parse-application-files/raw-spec/index.js +1 -1
  113. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.d.ts +18 -0
  114. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.js +1 -0
  115. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +29 -4
  116. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  117. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +2 -0
  118. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  119. package/dist/application-spec/parse-application-files/resolve/resolve-import-modules.js +1 -1
  120. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  121. package/dist/application-spec/parse-application-files/spec/application/application-spec.js +1 -1
  122. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.d.ts +4 -2
  123. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  124. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  125. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  126. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.d.ts +23 -0
  127. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.js +1 -0
  128. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  129. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  130. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  131. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  132. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  133. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  134. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  135. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  136. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  137. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  138. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +10 -0
  139. package/dist/application-spec/parse-application-files/spec/model/names/action-name.js +1 -0
  140. package/dist/application-spec/parse-application-files/spec/model/names/index.d.ts +1 -0
  141. package/dist/application-spec/parse-application-files/spec/model/names/index.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/actions.d.ts +35 -0
  149. package/dist/application-spec/parse-application-files/spec/sections/actions.js +1 -0
  150. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +5 -21
  151. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  152. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +14 -39
  153. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  154. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  155. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -19
  156. package/dist/application-spec/parse-application-files/spec/sections/index.d.ts +1 -0
  157. package/dist/application-spec/parse-application-files/spec/sections/index.js +1 -1
  158. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  159. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  160. package/dist/client/authorized-client.d.ts +3 -1
  161. package/dist/client/authorized-client.js +1 -1
  162. package/dist/client/contract.d.ts +34 -0
  163. package/dist/client/contract.js +1 -1
  164. package/dist/client/index.d.ts +2 -2
  165. package/dist/client/index.js +1 -1
  166. package/dist/client/local-authorized-client.d.ts +3 -1
  167. package/dist/client/local-authorized-client.js +1 -1
  168. package/dist/client/memory-authorized-client.d.ts +3 -1
  169. package/dist/client/memory-authorized-client.js +1 -1
  170. package/dist/client/phoenix-api.d.ts +367 -30
  171. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  172. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  173. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  174. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +247 -13
  175. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  176. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  177. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  178. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +8 -3
  179. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  180. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  181. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  182. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  183. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -5
  184. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  185. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  186. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  187. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  188. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  189. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  190. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +4 -2
  191. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  192. package/dist/configurator/common/configurator-interface.d.ts +5 -1
  193. package/dist/configurator/common/configurator-interface.js +1 -1
  194. package/dist/configurator/common/frontend-analytics.d.ts +23 -21
  195. package/dist/configurator/common/frontend-analytics.js +1 -1
  196. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  197. package/dist/configurator/index.d.ts +0 -1
  198. package/dist/configurator/index.js +1 -1
  199. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  200. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  201. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  202. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  203. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  204. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  205. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  206. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  207. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  208. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  209. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  210. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  211. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  212. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  213. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +7 -0
  214. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  215. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  216. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  217. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  218. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  219. package/dist/configurator/ui/assistant/AssistantThread.d.ts +10 -0
  220. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  221. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  222. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  223. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  224. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  225. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  226. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  227. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  228. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  229. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  230. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  231. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  232. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  233. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  234. package/dist/configurator/ui/assistant/index.js +1 -0
  235. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  236. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  237. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  238. package/dist/configurator/ui/assistant/theme.js +1 -0
  239. package/dist/configurator/ui/assistant/thread-items.d.ts +48 -0
  240. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  241. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  242. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  243. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  244. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  245. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  246. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  247. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  248. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  249. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  250. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  251. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  252. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  253. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  254. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  255. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  256. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  257. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  258. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  259. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  260. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  261. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +3 -3
  262. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  263. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  264. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  265. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  266. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  267. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  268. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  269. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  270. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  271. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  272. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  273. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  274. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  275. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  276. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  277. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  278. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  279. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  280. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  281. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  282. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  283. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  284. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  285. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  286. package/dist/docs/index.json +43 -2
  287. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  288. package/dist/docs/layouts/custom-layout.mdx +981 -0
  289. package/dist/docs/layouts/custom-price.mdx +14 -16
  290. package/dist/docs/layouts/header/fixed.mdx +2 -2
  291. package/dist/docs/layouts/header/floating.mdx +2 -2
  292. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  293. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  294. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  295. package/dist/docs/layouts/toolbar.mdx +6 -0
  296. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  297. package/dist/docs/other-features/domain-actions.mdx +418 -0
  298. package/dist/docs/other-features/side-effects.mdx +76 -45
  299. package/dist/docs/other-features/transformers.mdx +5 -1
  300. package/dist/docs/other-features/violation-messages.mdx +52 -56
  301. package/dist/docs/phoenix/admin.mdx +11 -26
  302. package/dist/docs/phoenix/best-practices.mdx +1 -0
  303. package/dist/docs/phoenix/configurator-interface.mdx +179 -80
  304. package/dist/docs/phoenix/deployments.mdx +1 -1
  305. package/dist/docs/phoenix/domain-model.mdx +4 -0
  306. package/dist/docs/phoenix/expression-context.mdx +11 -3
  307. package/dist/docs/phoenix/finalization.mdx +2 -2
  308. package/dist/docs/phoenix/getting-started.mdx +1 -1
  309. package/dist/docs/phoenix/integration/headless-mode-external.mdx +5 -5
  310. package/dist/docs/phoenix/integration/widget-mode-external.mdx +5 -5
  311. package/dist/docs/phoenix/localization.mdx +3 -22
  312. package/dist/docs/phoenix/phoenix-cli.mdx +183 -66
  313. package/dist/docs/phoenix/project-structure.mdx +29 -12
  314. package/dist/docs/phoenix/quickstart.mdx +2 -2
  315. package/dist/docs/phoenix/sdk-builder-workflow.mdx +15 -13
  316. package/dist/docs/phoenix/testing.mdx +140 -0
  317. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  318. package/dist/docs/phoenix/webhooks.mdx +2 -2
  319. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  320. package/dist/docs/relations/hierarchy.mdx +13 -2
  321. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  322. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  323. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  324. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  325. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  326. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  327. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  328. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  329. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  330. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  331. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  332. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  333. package/dist/domain/admin-domain/index.d.ts +9 -5
  334. package/dist/domain/admin-domain/index.js +1 -1
  335. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  336. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  337. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  338. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  339. package/dist/domain/application/application-config.d.ts +28 -95
  340. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  341. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  342. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  343. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  344. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  345. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  346. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  347. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  348. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  349. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  350. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  351. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  352. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  353. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  354. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  355. package/dist/domain/application/assistant/index.d.ts +9 -0
  356. package/dist/domain/application/assistant/index.js +1 -0
  357. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  358. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  359. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  360. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  361. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  362. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  363. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  364. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  365. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  366. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  367. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  368. package/dist/domain/application/assistant-mutations.d.ts +16 -17
  369. package/dist/domain/application/assistant-mutations.js +1 -1
  370. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  371. package/dist/domain/application/configurator-builder.d.ts +33 -18
  372. package/dist/domain/application/configurator-builder.js +1 -1
  373. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  374. package/dist/domain/application/index.d.ts +3 -6
  375. package/dist/domain/application/index.js +1 -1
  376. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  377. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  378. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  379. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  380. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  381. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  382. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  383. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  384. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  385. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  386. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  387. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  388. package/dist/domain/available-system-components.js +1 -1
  389. package/dist/domain/core/action/action-factory.d.ts +11 -0
  390. package/dist/domain/core/action/action-factory.js +1 -0
  391. package/dist/domain/core/action/action.d.ts +71 -0
  392. package/dist/domain/core/action/index.d.ts +2 -0
  393. package/dist/domain/core/action/index.js +1 -0
  394. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  395. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  396. package/dist/domain/core/component/debug-state-component.js +1 -0
  397. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  398. package/dist/domain/core/component/domain-component-optic.js +16 -0
  399. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  400. package/dist/domain/core/component/drag-state-component.js +1 -0
  401. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  402. package/dist/domain/core/component/export-state-component.js +1 -0
  403. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  404. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  405. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  406. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  407. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  408. package/dist/domain/core/component/hover-state-component.js +1 -0
  409. package/dist/domain/core/component/index.d.ts +18 -0
  410. package/dist/domain/core/component/index.js +1 -0
  411. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  412. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  413. package/dist/domain/core/component/navigation-state-component.js +1 -0
  414. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  415. package/dist/domain/core/component/selection-state-component.js +1 -0
  416. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  417. package/dist/domain/core/component/system-component-builder.js +1 -0
  418. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  419. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  420. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  421. package/dist/domain/core/component/tool-state-component.js +1 -0
  422. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  423. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  424. package/dist/domain/core/component/view-state-component.js +1 -0
  425. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  426. package/dist/domain/core/component/viewport-state-component.js +1 -0
  427. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  428. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  429. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  430. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  431. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  432. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  433. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  434. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  435. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  436. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  437. package/dist/domain/core/data-schema/data-schema.js +1 -0
  438. package/dist/domain/core/data-schema/index.d.ts +7 -0
  439. package/dist/domain/core/data-schema/index.js +1 -0
  440. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  441. package/dist/domain/core/decoder/create-decoder.js +1 -0
  442. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  443. package/dist/domain/core/decoder/decoder.js +1 -0
  444. package/dist/domain/core/decoder/index.d.ts +2 -0
  445. package/dist/domain/core/decoder/index.js +1 -0
  446. package/dist/domain/core/domain-factory.d.ts +7 -4
  447. package/dist/domain/core/domain-factory.js +1 -1
  448. package/dist/domain/core/domain.d.ts +4 -5
  449. package/dist/domain/core/domain.js +1 -1
  450. package/dist/domain/core/emission/index.d.ts +8 -0
  451. package/dist/domain/core/emission/index.js +1 -0
  452. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  453. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  454. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  455. package/dist/domain/core/emission/state-emission.js +1 -0
  456. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  457. package/dist/domain/core/emission/state-update-emission.js +1 -0
  458. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  459. package/dist/domain/core/emission/state-validation-result.js +1 -0
  460. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  461. package/dist/domain/core/emission/transformation-log.js +1 -0
  462. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  463. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  464. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  465. package/dist/domain/core/emission/transformer-log.js +1 -0
  466. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  467. package/dist/domain/core/emission/transformer-phase.js +1 -0
  468. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  469. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  470. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  471. package/dist/domain/core/expression/constant-expressions.js +1 -0
  472. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  473. package/dist/domain/core/expression/custom-expression.js +1 -0
  474. package/dist/domain/core/expression/expression.d.ts +46 -0
  475. package/dist/domain/core/expression/expression.js +1 -0
  476. package/dist/domain/core/expression/index.d.ts +4 -0
  477. package/dist/domain/core/expression/index.js +1 -0
  478. package/dist/domain/core/index.d.ts +13 -16
  479. package/dist/domain/core/index.js +1 -1
  480. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  481. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  482. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  483. package/dist/domain/core/invariant/index.d.ts +5 -0
  484. package/dist/domain/core/invariant/index.js +1 -0
  485. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  486. package/dist/domain/core/invariant/invariants.js +1 -0
  487. package/dist/domain/core/invariant/violation-component.js +1 -0
  488. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  489. package/dist/domain/core/invariant/violation.js +1 -0
  490. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  491. package/dist/domain/core/model/index.d.ts +6 -0
  492. package/dist/domain/core/model/index.js +1 -0
  493. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  494. package/dist/domain/core/model/reflection.js +1 -0
  495. package/dist/domain/core/recipe/index.d.ts +1 -0
  496. package/dist/domain/core/recipe/index.js +1 -0
  497. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  498. package/dist/domain/core/recipe/recipes.js +1 -0
  499. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  500. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  501. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  502. package/dist/domain/core/relation/component-factories.js +1 -0
  503. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  504. package/dist/domain/core/relation/composed-of.js +1 -0
  505. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  506. package/dist/domain/core/relation/index.d.ts +8 -0
  507. package/dist/domain/core/relation/index.js +1 -0
  508. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  509. package/dist/domain/core/relation/indirect-relation.js +1 -0
  510. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  511. package/dist/domain/core/relation/reference-component.js +1 -0
  512. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  513. package/dist/domain/core/relation/reference-field.js +1 -0
  514. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  515. package/dist/domain/core/relation/relation-factory.js +1 -0
  516. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  517. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  518. package/dist/domain/core/schema/index.d.ts +3 -0
  519. package/dist/domain/core/schema/index.js +1 -0
  520. package/dist/domain/core/schema/schema-validator.js +1 -0
  521. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  522. package/dist/domain/core/state/id-sequence.js +1 -0
  523. package/dist/domain/core/state/index.d.ts +3 -0
  524. package/dist/domain/core/state/index.js +1 -0
  525. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  526. package/dist/domain/core/state/migrations.js +1 -0
  527. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  528. package/dist/domain/domain-builder.d.ts +16 -9
  529. package/dist/domain/domain-builder.js +1 -1
  530. package/dist/domain/domain-context/action-system/action-system.d.ts +38 -0
  531. package/dist/domain/domain-context/action-system/action-system.js +1 -0
  532. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  533. package/dist/domain/domain-context/action-system/index.js +1 -0
  534. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  535. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  536. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  537. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  538. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  539. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  540. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  541. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  542. package/dist/domain/domain-context/domain-context-systems.d.ts +11 -10
  543. package/dist/domain/domain-context/index.d.ts +8 -17
  544. package/dist/domain/domain-context/index.js +1 -1
  545. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  546. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  547. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  548. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  549. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  550. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  551. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  552. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  553. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  554. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  555. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  556. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  557. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  558. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  559. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  560. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  561. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  562. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  563. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  564. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  565. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  566. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  567. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  568. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  569. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  570. package/dist/domain/domain-context/store-system/index.js +1 -0
  571. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  572. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  573. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  574. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  575. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  576. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  577. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  578. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  579. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  580. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  581. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  582. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  583. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  584. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  585. package/dist/domain/domain-context/transformers/context.js +1 -1
  586. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  587. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  588. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  589. package/dist/domain/domain-context/transformers/index.js +1 -1
  590. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  591. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  592. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  593. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  594. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  595. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  596. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  597. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  598. package/dist/domain/domain-runtime/access/types.js +1 -1
  599. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  600. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  601. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  602. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  603. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  604. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  605. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  606. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  607. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  608. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  609. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +22 -24
  610. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  611. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  612. package/dist/domain/domain-runtime/domain-runtime.d.ts +100 -72
  613. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  614. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  615. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  616. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  617. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  618. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  619. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  620. package/dist/domain/domain-runtime/errors/index.js +1 -0
  621. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  622. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  623. package/dist/domain/domain-runtime/index.d.ts +1 -0
  624. package/dist/domain/domain-runtime/index.js +1 -1
  625. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  626. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  627. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  628. package/dist/domain/domain-runtime/spec/index.js +1 -1
  629. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  630. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  631. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  632. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  633. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  634. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  635. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  636. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  637. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  638. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  639. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  640. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  641. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  642. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  643. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  644. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  645. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  646. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  647. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  648. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  649. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  650. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  651. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  652. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  653. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  654. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  655. package/dist/domain/domain-runtime/spec/types.d.ts +20 -6
  656. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  657. package/dist/domain/extensions/angle-indicator.js +1 -0
  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 -30
  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 +36 -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 +1 -2
  833. package/dist/domain/system-components/constraint.d.ts +11 -24
  834. package/dist/domain/system-components/constraint.js +1 -1
  835. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  836. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  837. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  838. package/dist/domain/system-components/detail.js +1 -1
  839. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  840. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  841. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  842. package/dist/domain/system-components/distance-dimension.js +1 -1
  843. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  844. package/dist/domain/system-components/drag-handle.js +1 -1
  845. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  846. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  847. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  848. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  849. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  850. package/dist/domain/system-components/generic-dimension.js +1 -1
  851. package/dist/domain/system-components/hidden-entity.js +1 -1
  852. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  853. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  854. package/dist/domain/system-components/index.d.ts +0 -68
  855. package/dist/domain/system-components/index.js +1 -1
  856. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  857. package/dist/domain/system-components/material-override-transformer.js +1 -1
  858. package/dist/domain/system-components/material-swatch.js +1 -1
  859. package/dist/domain/system-components/navigation-page.js +1 -1
  860. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  861. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  862. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  863. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  864. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  865. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  866. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  867. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  868. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  869. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  870. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  871. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  872. package/dist/domain/system-components/pivot-point.js +1 -1
  873. package/dist/domain/system-components/price.js +1 -1
  874. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  875. package/dist/domain/system-components/projected-entities.js +1 -1
  876. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  877. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  878. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  879. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  880. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  881. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  882. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  883. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  884. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  885. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  886. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  887. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  888. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  889. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  890. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  891. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  892. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  893. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  894. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  895. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  896. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  897. package/dist/domain/system-components/scene-entity-object.js +1 -1
  898. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  899. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  900. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  901. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  902. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  903. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  904. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  905. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  906. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  907. package/dist/domain/system-components/sketching-line.js +1 -1
  908. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  909. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  910. package/dist/domain/system-components/sketching.d.ts +1 -1
  911. package/dist/domain/system-components/sketching.js +1 -1
  912. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  913. package/dist/domain/system-components/snap-axis.js +1 -1
  914. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  915. package/dist/domain/system-components/snap-edge.js +1 -1
  916. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  917. package/dist/domain/system-components/snap-plane.js +1 -1
  918. package/dist/domain/system-components/snap-point.d.ts +1 -1
  919. package/dist/domain/system-components/snap-point.js +1 -1
  920. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  921. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  922. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  923. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  924. package/dist/domain/utils/eval-cache.d.ts +2 -3
  925. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  926. package/dist/domain/utils/memo-eval.d.ts +2 -4
  927. package/dist/editor/Editor.js +1 -1
  928. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  929. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  930. package/dist/editor/domain-editors/use-implementation-files.d.ts +12 -8
  931. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  932. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  933. package/dist/editor/mocks/EditorMockContext.js +1 -1
  934. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  935. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  936. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  937. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  938. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  939. package/dist/editor/variants/variant-preview-styles.js +1 -0
  940. package/dist/i18n/locales/cs/messages.js +1 -1
  941. package/dist/i18n/locales/da/messages.js +1 -1
  942. package/dist/i18n/locales/de/messages.js +1 -1
  943. package/dist/i18n/locales/de-AT/messages.js +1 -1
  944. package/dist/i18n/locales/en/messages.js +1 -1
  945. package/dist/i18n/locales/en-AU/messages.js +1 -1
  946. package/dist/i18n/locales/en-GB/messages.js +1 -1
  947. package/dist/i18n/locales/es/messages.js +1 -1
  948. package/dist/i18n/locales/fr/messages.js +1 -1
  949. package/dist/i18n/locales/hu/messages.js +1 -1
  950. package/dist/i18n/locales/it/messages.js +1 -1
  951. package/dist/i18n/locales/nl/messages.js +1 -1
  952. package/dist/i18n/locales/pl/messages.js +1 -1
  953. package/dist/i18n/locales/pt/messages.js +1 -1
  954. package/dist/i18n/locales/ro/messages.js +1 -1
  955. package/dist/i18n/locales/sk/messages.js +1 -1
  956. package/dist/i18n/locales/tr/messages.js +1 -1
  957. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  958. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  959. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  960. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  961. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  962. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  963. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  964. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  965. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +22 -5
  966. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  967. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  968. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  969. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +2 -0
  970. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  971. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  972. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  973. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  974. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  975. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  976. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  977. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  978. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  979. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  980. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  981. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  982. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  983. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  984. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  985. package/dist/phoenix/cli.js +1 -1
  986. package/dist/phoenix/commands/build.d.ts +5 -0
  987. package/dist/phoenix/commands/build.js +1 -1
  988. package/dist/phoenix/commands/deploy.js +2 -2
  989. package/dist/phoenix/commands/dev.js +5 -5
  990. package/dist/phoenix/commands/feedback.d.ts +2 -1
  991. package/dist/phoenix/commands/feedback.js +1 -1
  992. package/dist/phoenix/commands/index.d.ts +1 -0
  993. package/dist/phoenix/commands/index.js +1 -1
  994. package/dist/phoenix/commands/init.d.ts +4 -4
  995. package/dist/phoenix/commands/init.js +1 -1
  996. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  997. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  998. package/dist/phoenix/commands/prettier.js +1 -1
  999. package/dist/phoenix/commands/story-dev.js +2 -2
  1000. package/dist/phoenix/commands/variants.d.ts +35 -0
  1001. package/dist/phoenix/commands/variants.js +1 -0
  1002. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  1003. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1004. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  1005. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  1006. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1007. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  1008. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1009. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  1010. package/dist/phoenix/scripts/build-admin.js +1 -1
  1011. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  1012. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1013. package/dist/phoenix/services/index.d.ts +5 -0
  1014. package/dist/phoenix/services/index.js +1 -1
  1015. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  1016. package/dist/phoenix/services/phoenix-application.js +1 -0
  1017. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  1018. package/dist/phoenix/services/phoenix-store.js +1 -0
  1019. package/dist/phoenix/services/phx-banner-plugin.d.ts +32 -0
  1020. package/dist/phoenix/services/phx-banner-plugin.js +1 -0
  1021. package/dist/phoenix/services/phx-licenses-plugin.d.ts +55 -0
  1022. package/dist/phoenix/services/phx-licenses-plugin.js +8 -0
  1023. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  1024. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  1025. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1026. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1027. package/dist/phoenix/services/source-archive.js +1 -1
  1028. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  1029. package/dist/phoenix/services/variant-file-session.js +1 -0
  1030. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  1031. package/dist/phoenix/services/variant-preview-service.js +1 -0
  1032. package/dist/phoenix/services/vite-config.d.ts +2 -0
  1033. package/dist/phoenix/services/vite-config.js +1 -1
  1034. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1035. package/dist/phoenix/utils/git/index.js +1 -0
  1036. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1037. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1038. package/dist/phoenix/utils/index.d.ts +2 -0
  1039. package/dist/phoenix/utils/index.js +1 -1
  1040. package/dist/phoenix/utils/read-git-commit.d.ts +14 -0
  1041. package/dist/phoenix/utils/read-git-commit.js +1 -0
  1042. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  1043. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  1044. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  1045. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1046. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1047. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1048. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1049. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1050. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1051. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +69 -40
  1052. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1053. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +12 -9
  1054. package/dist/react-sdk/domain-context/index.d.ts +1 -1
  1055. package/dist/react-sdk/domain-context/index.js +1 -1
  1056. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  1057. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1058. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1059. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1060. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1061. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  1062. package/dist/ui-sdk/theme/types.d.ts +4 -0
  1063. package/dist/webhook/builders/common.d.ts +8 -0
  1064. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1065. package/dist/webhook/builders/webhook-builder.js +1 -1
  1066. package/package.json +5 -8
  1067. package/schema/domain-spec.json +233 -16
  1068. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1069. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1070. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1071. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1072. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1073. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1074. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1075. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1076. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1077. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1078. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1079. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1080. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1081. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1082. package/dist/configurator/assistant/index.d.ts +0 -1
  1083. package/dist/configurator/assistant/index.js +0 -1
  1084. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  1085. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1086. package/dist/domain/application/element-registration.js +0 -1
  1087. package/dist/domain/application/handler-registration.js +0 -1
  1088. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1089. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1090. package/dist/domain/application/resource-builder.d.ts +0 -13
  1091. package/dist/domain/application/resource-builder.js +0 -1
  1092. package/dist/domain/components/debug-state-component.js +0 -1
  1093. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1094. package/dist/domain/components/domain-component-optic.js +0 -16
  1095. package/dist/domain/components/drag-state-component.js +0 -1
  1096. package/dist/domain/components/export-state-component.js +0 -1
  1097. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1098. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1099. package/dist/domain/components/hover-state-component.js +0 -1
  1100. package/dist/domain/components/index.d.ts +0 -2
  1101. package/dist/domain/components/index.js +0 -1
  1102. package/dist/domain/components/navigation-state-component.js +0 -1
  1103. package/dist/domain/components/selection-state-component.js +0 -1
  1104. package/dist/domain/components/system-component-builder.js +0 -1
  1105. package/dist/domain/components/system-virtual-entity.js +0 -1
  1106. package/dist/domain/components/tool-state-component.js +0 -1
  1107. package/dist/domain/components/view-state-component.js +0 -1
  1108. package/dist/domain/components/viewport-state-component.js +0 -1
  1109. package/dist/domain/core/expression.d.ts +0 -50
  1110. package/dist/domain/core/json-schema.js +0 -1
  1111. package/dist/domain/core/migrations.js +0 -1
  1112. package/dist/domain/core/reflection.js +0 -1
  1113. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1114. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1115. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1116. package/dist/domain/expressions/constant-expressions.js +0 -1
  1117. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1118. package/dist/domain/expressions/custom-expression.js +0 -1
  1119. package/dist/domain/expressions/index.d.ts +0 -1
  1120. package/dist/domain/expressions/index.js +0 -1
  1121. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1122. package/dist/domain/invariants/custom-invariants.js +0 -1
  1123. package/dist/domain/invariants/invariants.d.ts +0 -68
  1124. package/dist/domain/invariants/invariants.js +0 -1
  1125. package/dist/domain/invariants/violation-component.js +0 -1
  1126. package/dist/domain/invariants/violation.js +0 -1
  1127. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1128. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1129. package/dist/domain/relations/component-factories.js +0 -1
  1130. package/dist/domain/relations/composed-of.js +0 -1
  1131. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1132. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1133. package/dist/domain/relations/indirect-relation.js +0 -1
  1134. package/dist/domain/relations/reference-component.js +0 -1
  1135. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1136. package/dist/domain/relations/relation-factory.js +0 -1
  1137. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1138. package/dist/domain/system-components/angle-indicator.js +0 -1
  1139. package/dist/domain/system-components/attribute-switch.js +0 -1
  1140. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1141. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1142. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1143. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1144. package/dist/domain/system-components/canvas-config.js +0 -1
  1145. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1146. package/dist/domain/system-components/canvas-padding.js +0 -1
  1147. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1148. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1149. package/dist/domain/system-components/client-side-image.js +0 -1
  1150. package/dist/domain/system-components/color-value.js +0 -1
  1151. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1152. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1153. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1154. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1155. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1156. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1157. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1158. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1159. package/dist/domain/system-components/entity-header.js +0 -1
  1160. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1161. package/dist/domain/system-components/finalize-action.js +0 -1
  1162. package/dist/domain/system-components/finalize-component.js +0 -1
  1163. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1164. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1165. package/dist/domain/system-components/fixed-header.js +0 -1
  1166. package/dist/domain/system-components/floating-header.js +0 -1
  1167. package/dist/domain/system-components/hidden-header.js +0 -1
  1168. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1169. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1170. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1171. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1172. package/dist/domain/system-components/navigation-steps.js +0 -1
  1173. package/dist/domain/system-components/offset-anchors.js +0 -1
  1174. package/dist/domain/system-components/offset-indicator.js +0 -1
  1175. package/dist/domain/system-components/offset.js +0 -1
  1176. package/dist/domain/system-components/other-action.js +0 -1
  1177. package/dist/domain/system-components/property-page.js +0 -1
  1178. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1179. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1180. package/dist/domain/system-components/rotatable.js +0 -1
  1181. package/dist/domain/system-components/rotation-handle.js +0 -1
  1182. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1183. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1184. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1185. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1186. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1187. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1188. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1189. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1190. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1191. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1192. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1193. package/dist/domain/system-components/selectable-component.js +0 -1
  1194. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1195. package/dist/domain/system-components/simple-summary.js +0 -1
  1196. package/dist/domain/system-components/size.js +0 -1
  1197. package/dist/domain/system-components/sketching-draw.js +0 -1
  1198. package/dist/domain/system-components/sketching-edit.js +0 -1
  1199. package/dist/domain/system-components/summary-component.js +0 -1
  1200. package/dist/domain/system-components/text-value.js +0 -1
  1201. package/dist/domain/system-components/tool-controls.js +0 -1
  1202. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1203. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1204. package/dist/domain/system-components/view-controls.js +0 -1
  1205. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  1206. package/dist/extras/assistant/AssistantChat.js +0 -1
  1207. package/dist/extras/assistant/index.d.ts +0 -1
  1208. package/dist/extras/assistant/index.js +0 -1
  1209. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1210. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1211. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1212. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1213. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1214. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  1215. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  1216. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  1217. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1218. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1219. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1220. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1221. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  1222. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  1223. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  1224. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1225. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1226. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1227. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1228. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1229. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1230. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1231. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  1232. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1233. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1234. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1235. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1236. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1237. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1238. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1239. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1240. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1241. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1242. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1243. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1244. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1245. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1246. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  1247. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1248. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1249. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1250. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1251. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1252. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1253. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1254. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1255. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1256. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1257. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1258. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1259. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1260. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1261. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1262. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1263. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1264. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1265. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1266. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1267. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1268. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1269. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1270. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1,13 +1,26 @@
1
1
  import { z } from 'zod';
2
2
  import { type AssistantAiSettings } from '@salsita-ai/contracts/assistant';
3
+ import { ASSISTANT_HINTS } from '#package/domain';
3
4
  /**
4
5
  * One whitelisted field in the assistant manifest. `description` overrides the JSON Schema
5
- * description of the shape property; `as` exposes the field under a different GraphQL name. An empty
6
+ * description of the shape property; `as` exposes the field under a different GraphQL name; `lenses`
7
+ * names the lenses declared under `assistant.lenses` whose selection includes the field. An empty
6
8
  * entry (`length:` in YAML) whitelists the field with its defaults.
7
9
  */
8
10
  export interface RawAssistantField {
9
11
  readonly description?: string;
10
12
  readonly as?: string;
13
+ readonly lenses?: readonly string[];
14
+ }
15
+ /**
16
+ * One lens of the assistant `lenses` map, keyed by the name the agent spreads it by: a named
17
+ * selection made of the `entities` entries tagged with that name. `description` tells the agent when
18
+ * to use the lens; `maxDepth` is how many levels of tagged relations carry the same selection before
19
+ * they reduce to `id`, 1 by default.
20
+ */
21
+ export interface RawAssistantLens {
22
+ readonly description: string;
23
+ readonly maxDepth?: number;
11
24
  }
12
25
  /**
13
26
  * One entry of the assistant `deletable` map. It takes no options yet; an empty entry (`Cabinet:` in
@@ -23,7 +36,6 @@ export type AssistantOptionComponentType = (typeof ASSISTANT_OPTION_COMPONENT_TY
23
36
  * does not change during a session. A hint only adds a sentence to a generated description; nothing
24
37
  * verifies it.
25
38
  */
26
- export declare const ASSISTANT_HINTS: readonly ['sameForAllInstances', 'constantDuringSession'];
27
39
  export type AssistantHint = (typeof ASSISTANT_HINTS)[number];
28
40
  /**
29
41
  * The component that holds the choices of a writable field: the instance `instanceName` of the
@@ -68,6 +80,16 @@ export interface RawAssistantRecipes {
68
80
  readonly hints?: readonly AssistantHint[];
69
81
  readonly groups: Readonly<Record<string, RawAssistantRecipeGroup | null>>;
70
82
  }
83
+ /**
84
+ * One entry of the assistant `actions` map, keyed by the name of an action declared under the
85
+ * top-level `actions` block: it exposes the action as a `Mutation` field named `as` (the action name
86
+ * by default) with `description` (the action's own by default). An empty entry (`movePartBy:` in
87
+ * YAML) exposes the action with its defaults.
88
+ */
89
+ export interface RawAssistantAction {
90
+ readonly description?: string;
91
+ readonly as?: string;
92
+ }
71
93
  /**
72
94
  * Experimental assistant manifest authored under the `assistant` root key. `entities` whitelists the
73
95
  * stored fields the generated GraphQL schema exposes, keyed by entity type or alias name and then by
@@ -77,8 +99,9 @@ export interface RawAssistantRecipes {
77
99
  * have to be exposed in `entities`. `childRecipes` names, per
78
100
  * entity type or alias, the `childEntityRecipes` groups whose recipes the agent may list and add
79
101
  * with `addChild`. `replaceRecipes` names, per entity type or alias, the `replaceEntityRecipes`
80
- * groups whose recipes the agent may list and replace the entity by with `replaceEntity`. Nothing is
81
- * exposed without an entry.
102
+ * groups whose recipes the agent may list and replace the entity by with `replaceEntity`. `actions`
103
+ * names the declared actions the agent may run as custom mutations. Nothing is exposed without an
104
+ * entry. `lenses` declares the named selections that `entities` entries are tagged with.
82
105
  *
83
106
  * `ai` and `instructions` are for the server only: the provider, model tier and reasoning level the
84
107
  * deployment's assistant runs with, and the integrator's own guidance for it, appended to the system
@@ -90,6 +113,8 @@ export interface RawAssistant {
90
113
  readonly writable?: Readonly<Record<string, Readonly<Record<string, RawAssistantWritableField | null>>>>;
91
114
  readonly childRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
92
115
  readonly replaceRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
116
+ readonly actions?: Readonly<Record<string, RawAssistantAction | null>>;
117
+ readonly lenses?: Readonly<Record<string, RawAssistantLens>>;
93
118
  readonly instructions?: string;
94
119
  readonly ai: AssistantAiSettings;
95
120
  }
@@ -1 +1 @@
1
- import{z as t}from"zod";import{ASSISTANT_AI_PROVIDERS as e,ASSISTANT_MODEL_TIERS as o,ASSISTANT_REASONING_LEVELS as i}from"@salsita-ai/contracts/assistant";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];export const ASSISTANT_HINTS=["sameForAllInstances","constantDuringSession"];let n=t.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),r=e=>t.enum(e,{errorMap:()=>({message:`must be one of: ${e.join(", ")}`})}),s=t.object({description:t.string().optional(),as:n.optional()}).strict(),a=t.array(r(ASSISTANT_HINTS)),c=t.object({options:t.object({componentType:r(ASSISTANT_OPTION_COMPONENT_TYPES),instanceName:t.string().min(1,"must not be empty; name the component instance that holds the choices"),as:n.optional(),validate:t.boolean().optional(),allowDryRuns:t.boolean().optional(),hints:a.optional()}).strict().optional()}).strict(),l=t.object({as:t.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:t.string().optional(),allowDryRuns:t.boolean().optional()}).strict(),p=e=>t.object({hints:a.optional(),groups:t.record(t.string(),l.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${e}" component`})}).strict(),m=`is required: declare provider (${e.join(", ")}), model (${o.join(", ")}) and reasoning (${i.join(", ")})`,d=t.object({provider:r(e),model:r(o),reasoning:r(i)},{required_error:m,invalid_type_error:m}).strict();export const rawAssistantSchema=t.object({entities:t.record(t.string(),t.record(t.string(),s.nullable())).optional(),deletable:t.record(t.string(),t.object({}).strict().nullable()).optional(),writable:t.record(t.string(),t.record(t.string(),c.nullable())).optional(),childRecipes:t.record(t.string(),p("childEntityRecipes")).optional(),replaceRecipes:t.record(t.string(),p("replaceEntityRecipes")).optional(),instructions:t.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:d}).strict();
1
+ import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as o,ASSISTANT_REASONING_LEVELS as i}from"@salsita-ai/contracts/assistant";import{ASSISTANT_HINTS as n}from"#package/domain";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];let r=e.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),s=t=>e.enum(t,{errorMap:()=>({message:`must be one of: ${t.join(", ")}`})}),a=e.object({description:e.string().optional(),as:r.optional(),lenses:e.array(e.string()).optional()}).strict(),l="must be a whole number of at least 1; remove the key to nest tagged relations one level",c=e.object({description:e.string().trim().min(1,"must not be empty; say when the agent should use the lens"),maxDepth:e.number({invalid_type_error:l}).int(l).min(1,l).optional()}).strict(),p=r.refine(e=>!e.includes("__"),'must not contain "__", which names the generated copies of a lens'),m=e.array(s(n)),d=e.object({options:e.object({componentType:s(ASSISTANT_OPTION_COMPONENT_TYPES),instanceName:e.string().min(1,"must not be empty; name the component instance that holds the choices"),as:r.optional(),validate:e.boolean().optional(),allowDryRuns:e.boolean().optional(),hints:m.optional()}).strict().optional()}).strict(),u=e.object({as:e.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:e.string().optional(),allowDryRuns:e.boolean().optional()}).strict(),h=t=>e.object({hints:m.optional(),groups:e.record(e.string(),u.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${t}" component`})}).strict(),b=e.object({description:e.string().optional(),as:r.optional()}).strict(),g=`is required: declare provider (${t.join(", ")}), model (${o.join(", ")}) and reasoning (${i.join(", ")})`,_="must be a positive whole number of input tokens; remove the key to use the default of the server",y=e.object({provider:s(t),model:s(o),reasoning:s(i),maxThreadSize:e.number({invalid_type_error:_}).int(_).positive(_).optional()},{required_error:g,invalid_type_error:g}).strict();export const rawAssistantSchema=e.object({entities:e.record(e.string(),e.record(e.string(),a.nullable())).optional(),deletable:e.record(e.string(),e.object({}).strict().nullable()).optional(),writable:e.record(e.string(),e.record(e.string(),d.nullable())).optional(),childRecipes:e.record(e.string(),h("childEntityRecipes")).optional(),replaceRecipes:e.record(e.string(),h("replaceEntityRecipes")).optional(),actions:e.record(e.string(),b.nullable()).optional(),lenses:e.record(p,c).optional(),instructions:e.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:y}).strict();
@@ -2,6 +2,7 @@ import { Branded } from '@salsita-ai/common/utils';
2
2
  import { type EnhancedJsonObjectSchemaType, type ParseContext } from '../../core/index.js';
3
3
  import type { ParsedYamlFile } from './parse-yaml-spec-file.js';
4
4
  import { type RawAcl } from './raw-acl.js';
5
+ import { type RawActions } from './raw-actions.js';
5
6
  import { type RawAdminPages } from './raw-admin-pages.js';
6
7
  import { type RawAssistant } from './raw-assistant.js';
7
8
  import { type RawBudgets } from './raw-budgets.js';
@@ -24,6 +25,7 @@ export interface RawSpecContent {
24
25
  readonly presets?: RawPresets;
25
26
  readonly $data?: RawDataSpec;
26
27
  readonly expressions?: RawExpressions;
28
+ readonly actions?: RawActions;
27
29
  readonly invariants?: RawInvariants;
28
30
  readonly relations?: RawRelations;
29
31
  readonly defaults?: RawDefaults;
@@ -1 +1 @@
1
- import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t,validateNoLegacyCodeRef as e}from"../../core/index.js";import{DiagnosticCode as n,diagnosticMessages as r}from"../../errors/index.js";import{rawAclSchema as i}from"./raw-acl.js";import{rawAdminPagesSchema as s}from"./raw-admin-pages.js";import{rawAssistantSchema as l}from"./raw-assistant.js";import{rawBudgetsSchema as p}from"./raw-budgets.js";import{rawChunksSchema as m}from"./raw-chunks.js";import{rawComponentsSchema as c}from"./raw-components.js";import{rawConstantsSchema as f}from"./raw-constants.js";import{rawDataSpecSchema as d}from"./raw-data.js";import{rawDefaultsSchema as u}from"./raw-defaults.js";import{rawEnvSchema as j}from"./raw-env.js";import{rawExpressionsSchema as w}from"./raw-expressions.js";import{rawInvariantsSchema as b}from"./raw-invariants.js";import{rawModelSchema as g}from"./raw-model.js";import{rawPresetsSchema as S}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as h,rawResourcesSchema as v}from"./raw-resources.js";import{rawStateValuesSchema as O}from"./raw-states.js";import{rawTransformersSchema as E}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let R=o.object({$admin:o.boolean().optional(),model:g.optional(),components:c.optional(),presets:S.optional(),$data:d.optional(),expressions:w.optional(),invariants:b.optional(),constants:f.optional(),relations:D.optional(),defaults:u.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:O.optional(),viewStates:O.optional(),toolStates:O.optional(),exportStates:O.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:E.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:j.optional(),acl:i.optional(),resources:v.optional(),resourcesConfig:h.optional(),budgets:p.optional(),chunks:m.optional(),assistant:l.optional(),$adminPages:s.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let i=R.safeParse(o.content);if(!i.success){for(let o of i.error.issues)t.error(n.SCHEMA_PARSE_ERROR,r.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=i.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,i]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(i))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,r[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(i.data,t);return a({name:o.name,content:{...l,expressions:p}})};
1
+ import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t}from"../../core/index.js";import{validateNoLegacyCodeRef as e}from"../../enhanced-json/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as j}from"./raw-data.js";import{rawDefaultsSchema as u}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as h}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:h.optional(),$data:j.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:D.optional(),defaults:u.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
@@ -1 +1 @@
1
- import{mapSchema as e,resolveProjectFileImport as t,resolveProjectPath as r}from"../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as s}from"../../errors/index.js";import{DATA_SCHEMA_KEYS as m}from"../raw-spec/index.js";let n=(m,n,p,i)=>e(m,(e,m)=>e.import?{...e,import:e.import.map((e,a)=>{if(!e.module.startsWith("."))return e;let c=r(n,e.module),O=i.at(...m,"import",String(a),"module");c.escapedProjectRoot?O.warning(o.IMPORT_MODULE_OUTSIDE_PROJECT,s[o.IMPORT_MODULE_OUTSIDE_PROJECT](e.module,c.path)):t(n,e.module,p)||O.error(o.IMPORT_MODULE_NOT_FOUND,s[o.IMPORT_MODULE_NOT_FOUND](e.module,c.path));let d=c.path.startsWith(".")?c.path:`./${c.path}`;return{...e,module:d}})}:e);export const resolveImportModules=(e,t,r)=>{let o=e.content.model?Object.fromEntries(Object.entries(e.content.model).map(([o,s])=>[o,{...s,...s.commonTypes?{commonTypes:Object.fromEntries(Object.entries(s.commonTypes).map(([s,m])=>[s,n(m,e.name,t,r.at("model",o,"commonTypes",s))]))}:{},...s.shapes?{shapes:Object.fromEntries(Object.entries(s.shapes).map(([s,m])=>[s,Object.fromEntries(Object.entries(m).map(([m,p])=>[m,n(p,e.name,t,r.at("model",o,"shapes",s,m))]))]))}:{}}])):void 0,s=e.content.expressions?Object.fromEntries(Object.entries(e.content.expressions).map(([o,s])=>[o,Object.fromEntries(Object.entries(s).map(([s,m])=>[s,{...m,schema:n(m.schema,e.name,t,r.at("expressions",o,s))}]))])):void 0,p=Object.fromEntries(m.flatMap(o=>{let s,m=e.content[o];return m?[[o,{...s=n(m,e.name,t,r.at(o)),type:"object",properties:s.properties??{},required:s.required??[],additionalProperties:!1}]]:[]}));return{...e.content,...o?{model:o}:{},...s?{expressions:s}:{},...p}};
1
+ import{mapSchema as e,resolveProjectFileImport as t,resolveProjectPath as r}from"../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as s}from"../../errors/index.js";import{DATA_SCHEMA_KEYS as n}from"../raw-spec/index.js";let m=(n,m,a,i)=>e(n,(e,n)=>e.import?{...e,import:e.import.map((e,p)=>{if(!e.module.startsWith("."))return e;let c=r(m,e.module),O=i.at(...n,"import",String(p),"module");c.escapedProjectRoot?O.warning(o.IMPORT_MODULE_OUTSIDE_PROJECT,s[o.IMPORT_MODULE_OUTSIDE_PROJECT](e.module,c.path)):t(m,e.module,a)||O.error(o.IMPORT_MODULE_NOT_FOUND,s[o.IMPORT_MODULE_NOT_FOUND](e.module,c.path));let l=c.path.startsWith(".")?c.path:`./${c.path}`;return{...e,module:l}})}:e);export const resolveImportModules=(e,t,r)=>{let o=e.content.model?Object.fromEntries(Object.entries(e.content.model).map(([o,s])=>[o,{...s,...s.commonTypes?{commonTypes:Object.fromEntries(Object.entries(s.commonTypes).map(([s,n])=>[s,m(n,e.name,t,r.at("model",o,"commonTypes",s))]))}:{},...s.shapes?{shapes:Object.fromEntries(Object.entries(s.shapes).map(([s,n])=>[s,Object.fromEntries(Object.entries(n).map(([n,a])=>[n,m(a,e.name,t,r.at("model",o,"shapes",s,n))]))]))}:{}}])):void 0,s=e.content.expressions?Object.fromEntries(Object.entries(e.content.expressions).map(([o,s])=>[o,Object.fromEntries(Object.entries(s).map(([s,n])=>[s,{...n,schema:m(n.schema,e.name,t,r.at("expressions",o,s))}]))])):void 0,a=e.content.actions?Object.fromEntries(Object.entries(e.content.actions).map(([o,s])=>{let n=(s,n)=>Object.fromEntries(Object.entries(s).map(([s,a])=>[s,m(a,e.name,t,r.at("actions",o,n,s))]));return[o,{...s,params:n(s.params,"params"),result:n(s.result,"result")}]})):void 0,i=Object.fromEntries(n.flatMap(o=>{let s,n=e.content[o];return n?[[o,{...s=m(n,e.name,t,r.at(o)),type:"object",properties:s.properties??{},required:s.required??[],additionalProperties:!1}]]:[]}));return{...e.content,...o?{model:o}:{},...s?{expressions:s}:{},...a?{actions:a}:{},...i}};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,M,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{AppMetadata as s,BundleSizeBudgets as a,DataSpec as t,Infra as n}from"../sections/index.js";import{AdminSpec as r}from"./admin-spec/index.js";import{ConfiguratorSpec as o}from"./configurator-spec/index.js";export const ApplicationSpec=(i,l)=>{let{merged:m,migrationFiles:p,adminMigrationFiles:d,transformerFiles:c,phxDefinitions:u,evalExpressionParser:w}=i,f=s(m.appMetadata,l);if(!f)return;let S=t({mergedDataSpec:m.dataSpec,mergedChunks:m.chunks},l);if(!S||l.hasErrors)return;let g=l.startSpan("ConfiguratorSpec","ApplicationSpec"),h=o({rawModel:m.model,rawPresets:m.presets,rawExpressions:m.expressions,rawInvariants:m.invariants,rawRelations:m.relations,rawDefaults:m.defaults,dataSchemas:m.dataSchemas,dataSpec:S,appMetadata:f,rawTheme:m.theme,rawUi:m.ui,rawTransformers:m.transformers,rawAssistant:m.assistant,migrationFiles:p,transformerFiles:c,rawComponents:m.components,rawStates:m.configuratorStates,phxDefinitions:u,evalExpressionParser:w,label:"model"},l);if(g(),!h)return;let M=l.startSpan("AdminSpec","ApplicationSpec"),x=r({rawModel:m.adminModel,rawPresets:m.adminPresets,rawExpressions:m.adminExpressions,rawInvariants:m.adminInvariants,rawRelations:m.adminRelations,rawDefaults:m.adminDefaults,migrationFiles:d,rawComponents:m.adminComponents,rawAdminPages:m.adminPages,rawStates:m.adminStates,dataSpec:S,phxDefinitions:u,evalExpressionParser:w,label:"adminModel",requireMigrationFiles:!0},l);if(M(),!x)return;let v=n(m.infra,l);if(!v)return;let y=a(m.budgets);return l.count("entityTypes",h.latestModel.entityTypes.length),l.count("aliases",h.latestModel.aliases.size),l.count("commonTypes",h.latestModel.commonTypes.size),l.count("shapes",h.latestModel.shapes.size),l.count("components",h.components.length),l.count("modelVersions",h.resolvedVersions.versionedModels.length),l.count("presets",h.presets.presets.length),e({configurator:h,admin:x,appMetadata:f,infra:v,budgets:y,dataSpec:S})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{AppMetadata as s,BundleSizeBudgets as a,DataSpec as t,Infra as n}from"../sections/index.js";import{AdminSpec as r}from"./admin-spec/index.js";import{ConfiguratorSpec as o}from"./configurator-spec/index.js";export const ApplicationSpec=(i,l)=>{let{merged:m,migrationFiles:p,adminMigrationFiles:d,transformerFiles:c,phxDefinitions:u,evalExpressionParser:w}=i,f=s(m.appMetadata,l);if(!f)return;let S=t({mergedDataSpec:m.dataSpec,mergedChunks:m.chunks},l);if(!S||l.hasErrors)return;let g=l.startSpan("ConfiguratorSpec","ApplicationSpec"),h=o({rawModel:m.model,rawPresets:m.presets,rawExpressions:m.expressions,rawActions:m.actions,rawInvariants:m.invariants,rawRelations:m.relations,rawDefaults:m.defaults,dataSchemas:m.dataSchemas,dataSpec:S,appMetadata:f,rawTheme:m.theme,rawUi:m.ui,rawTransformers:m.transformers,rawAssistant:m.assistant,migrationFiles:p,transformerFiles:c,rawComponents:m.components,rawStates:m.configuratorStates,phxDefinitions:u,evalExpressionParser:w,label:"model"},l);if(g(),!h)return;let M=l.startSpan("AdminSpec","ApplicationSpec"),x=r({rawModel:m.adminModel,rawPresets:m.adminPresets,rawExpressions:m.adminExpressions,rawInvariants:m.adminInvariants,rawRelations:m.adminRelations,rawDefaults:m.adminDefaults,migrationFiles:d,rawComponents:m.adminComponents,rawAdminPages:m.adminPages,rawStates:m.adminStates,dataSpec:S,phxDefinitions:u,evalExpressionParser:w,label:"adminModel",requireMigrationFiles:!0},l);if(M(),!x)return;let A=n(m.infra,l);if(!A)return;let v=a(m.budgets);return l.count("entityTypes",h.latestModel.entityTypes.length),l.count("aliases",h.latestModel.aliases.size),l.count("commonTypes",h.latestModel.commonTypes.size),l.count("shapes",h.latestModel.shapes.size),l.count("components",h.components.length),l.count("modelVersions",h.resolvedVersions.versionedModels.length),l.count("presets",h.presets.presets.length),e({configurator:h,admin:x,appMetadata:f,infra:A,budgets:v,dataSpec:S})};
@@ -1,12 +1,12 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
2
  import { type EvalExpressionParser, type ParseContext, type PhoenixDefinitions } from '../../../../core/index.js';
3
3
  import type { CategorizedFile } from '../../../categorize/index.js';
4
- import type { MergedAssistant, MergedComponents, MergedConfiguratorStates, MergedDataSchemas, MergedDefaults, MergedExpressions, MergedInvariants, MergedModel, MergedPresets, MergedRelations, MergedTheme, MergedTransformers, MergedUi } from '../../../merge/index.js';
4
+ import type { MergedActions, MergedAssistant, MergedComponents, MergedConfiguratorStates, MergedDataSchemas, MergedDefaults, MergedExpressions, MergedInvariants, MergedModel, MergedPresets, MergedRelations, MergedTheme, MergedTransformers, MergedUi } from '../../../merge/index.js';
5
5
  import { Components } from '../../components/index.js';
6
6
  import { Expressions } from '../../expressions/index.js';
7
7
  import { Invariants } from '../../invariants/index.js';
8
8
  import { ConfigurationSchema, DataSchemas, Defaults, ModelVersion, Presets } from '../../model/index.js';
9
- import { type AppMetadata, AssistantServerSettings, AssistantSpec, type DataSpec, Theme, Transformers, Ui } from '../../sections/index.js';
9
+ import { Actions, type AppMetadata, AssistantServerSettings, AssistantSpec, type DataSpec, Theme, Transformers, Ui } from '../../sections/index.js';
10
10
  import { ResolvedVersions } from '../resolved-versions.js';
11
11
  import { ConfiguratorStates } from './states.js';
12
12
  export type ConfiguratorSpec = Branded<'ConfiguratorSpec', {
@@ -17,6 +17,7 @@ export type ConfiguratorSpec = Branded<'ConfiguratorSpec', {
17
17
  readonly configurationSchema: ConfigurationSchema;
18
18
  readonly presets: Presets;
19
19
  readonly expressions: Expressions;
20
+ readonly actions: Actions;
20
21
  readonly invariants: Invariants;
21
22
  readonly dataSchemas: DataSchemas;
22
23
  readonly defaults: Defaults;
@@ -31,6 +32,7 @@ interface ConfiguratorSpecProps {
31
32
  readonly rawModel: MergedModel;
32
33
  readonly rawPresets: MergedPresets;
33
34
  readonly rawExpressions: MergedExpressions;
35
+ readonly rawActions: MergedActions;
34
36
  readonly rawInvariants: MergedInvariants;
35
37
  readonly rawRelations: MergedRelations;
36
38
  readonly rawDefaults: MergedDefaults;
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as r,UserComponents as o}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{AssistantServerSettings as x,AssistantSpec as S,Theme as v,Transformers as c,Ui as j}from"../../sections/index.js";import{ResolvedVersions as u}from"../resolved-versions.js";import{ConfiguratorStates as g}from"./states.js";export const ConfiguratorSpec=(C,I)=>{let{rawModel:M,rawPresets:h,rawExpressions:y,rawInvariants:E,rawRelations:N,rawDefaults:T,dataSchemas:L,dataSpec:G,appMetadata:O,rawTheme:_,rawUi:b,rawTransformers:w,rawAssistant:A,migrationFiles:D,transformerFiles:V,rawComponents:k,phxDefinitions:K,evalExpressionParser:q,label:z}=C;if(0===Object.keys(M).length)return void I.at(z).error(s.MISSING_MODEL,t.MISSING_MODEL(z));M.latest||I.at(z).error(s.MISSING_LATEST,t.MISSING_LATEST(z));let B=new Map;for(let[e,s]of Object.entries(M)){let t=l(e,s,K,I.at(z,e));t&&B.set(t.versionKey,t)}if(I.hasErrors)return;let F=u(B,D,I);if(!F)return;let H=F.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!H)return;let J=F.latestVersion,P=a(H,J),Q=f(N,H,I),R=n({rawInvariants:E,rawExpressions:y,rawRelations:N,rawComponents:k},H,I),U=d(h,H,Q,I),W=o(k,{allNames:H.allNames,resolvedShapes:H.resolvedShapes,parsingContext:I}),X=p(T,H,I.at(z,"defaults")),Y=c(w,V,I),Z=i({rawExpressions:y,inferredExpressions:[...Q.expressions,...R.expressions,...W.expressions]},{latestModel:H,aliases:H.aliases,entityTypes:H.entityTypes,evalExpressionParser:q,parsingContext:I}),$=r({userComponents:W.components,generatedComponents:Q.components,invariantComponents:R.components},{aliases:H.aliases,parsingContext:I}),ee=m({merged:L,dataSpec:G,appMetadata:O,phxDefinitions:K,parsingContext:I}),es=g(C.rawStates,I.at("states"));if(void 0!==X&&void 0!==Z&&void 0!==$&&void 0!==ee)return e({latestModel:H,schemaVersion:J,dataSchemas:ee,resolvedVersions:F,components:$,configurationSchema:P,presets:U,expressions:Z,invariants:R,defaults:X,states:es,theme:v(_),ui:j(b),transformers:Y,assistant:S(A,{model:H,states:es,phxDefinitions:K,expressions:Z,components:$},I),assistantServerSettings:x(A)})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{Actions as x,AssistantServerSettings as S,AssistantSpec as v,Theme as c,Transformers as j,Ui as u}from"../../sections/index.js";import{ResolvedVersions as g}from"../resolved-versions.js";import{ConfiguratorStates as C}from"./states.js";export const ConfiguratorSpec=(I,M)=>{let{rawModel:h,rawPresets:y,rawExpressions:E,rawActions:N,rawInvariants:T,rawRelations:L,rawDefaults:G,dataSchemas:O,dataSpec:_,appMetadata:b,rawTheme:w,rawUi:A,rawTransformers:D,rawAssistant:V,migrationFiles:k,transformerFiles:K,rawComponents:q,phxDefinitions:z,evalExpressionParser:B,label:F}=I;if(0===Object.keys(h).length)return void M.at(F).error(s.MISSING_MODEL,t.MISSING_MODEL(F));h.latest||M.at(F).error(s.MISSING_LATEST,t.MISSING_LATEST(F));let H=new Map;for(let[e,s]of Object.entries(h)){let t=l(e,s,z,M.at(F,e));t&&H.set(t.versionKey,t)}if(M.hasErrors)return;let J=g(H,k,M);if(!J)return;let P=J.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!P)return;let Q=J.latestVersion,R=a(P,Q),U=f(L,P,z,M),W=n({rawInvariants:T,rawExpressions:E,rawRelations:L,rawComponents:q},P,M),X=d(y,P,U,M),Y=r(q,{allNames:P.allNames,resolvedShapes:P.resolvedShapes,parsingContext:M}),Z=p(G,P,M.at(F,"defaults")),$=j(D,K,M),ee=i({rawExpressions:E,inferredExpressions:[...U.expressions,...W.expressions,...Y.expressions]},{latestModel:P,aliases:P.aliases,entityTypes:P.entityTypes,evalExpressionParser:B,parsingContext:M}),es=o({userComponents:Y.components,generatedComponents:U.components,invariantComponents:W.components},{aliases:P.aliases,parsingContext:M}),et=m({merged:O,dataSpec:_,appMetadata:b,phxDefinitions:z,parsingContext:M}),eo=C(I.rawStates,M.at("states")),er=x(N,{latestModel:P,phxDefinitions:z},M.at("actions"));if(void 0!==Z&&void 0!==ee&&void 0!==er&&void 0!==es&&void 0!==et)return e({latestModel:P,schemaVersion:Q,dataSchemas:et,resolvedVersions:J,components:es,configurationSchema:R,presets:X,expressions:ee,actions:er,invariants:W,defaults:Z,states:eo,theme:c(w),ui:u(A),transformers:$,assistant:v(V,{model:P,states:eo,phxDefinitions:z,expressions:ee,components:es,actions:er},M),assistantServerSettings:S(V)})};
@@ -1 +1,2 @@
1
+ export * from './schema-ref-resolver.js';
1
2
  export * from './validate-schema-refs.js';
@@ -1 +1 @@
1
- export*from"./validate-schema-refs.js";
1
+ export*from"./schema-ref-resolver.js";export*from"./validate-schema-refs.js";
@@ -0,0 +1,23 @@
1
+ import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../core/index.js';
2
+ /**
3
+ * Resolves a `$ref` to the schema it names, through phoenix definitions and common types.
4
+ * `undefined` for a ref that names nothing known.
5
+ */
6
+ export type SchemaRefResolver = ($ref: string) => EnhancedJsonSchemaType | undefined;
7
+ /** The name of the common type a `common:` or internal `#/model/{version}/commonTypes/{name}` ref names. */
8
+ export declare const commonTypeRefName: ($ref: string) => string | undefined;
9
+ /** The phoenix definition a ref names: full URL, `phx:`, or `#/definitions/` as used inside the definitions. */
10
+ export declare const phxDefinitionRefName: ($ref: string) => string | undefined;
11
+ /**
12
+ * Resolves refs to phoenix definitions (full URL, `phx:`, or `#/definitions/` as used inside the
13
+ * definitions themselves) and to common types (`common:` or internal path).
14
+ */
15
+ export declare const createSchemaRefResolver: (commonTypes: ReadonlyMap<string, {
16
+ readonly schema: EnhancedJsonSchemaType;
17
+ }>, phxDefinitions: PhoenixDefinitions) => SchemaRefResolver;
18
+ /**
19
+ * Whether a value of the schema can be `null`: a `null` type, enum value or const, a nullable
20
+ * `anyOf`/`oneOf` member, or a ref to a nullable schema. A ref that cannot be resolved counts as
21
+ * nullable, since nothing proves otherwise; a ref cycle does not.
22
+ */
23
+ export declare const isNullableSchema: (schema: EnhancedJsonSchemaType, resolveRef: SchemaRefResolver, visitedRefs?: ReadonlySet<string>) => boolean;
@@ -0,0 +1 @@
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{COMMON_SHORT_PREFIX as t,DEFINITION_REF_PATTERN as n,INTERNAL_REF_PATTERN as o,extractPhxDefName as l}from"../../../core/index.js";export const commonTypeRefName=e=>e.startsWith(t)?e.slice(t.length):o.exec(e)?.[2];export const phxDefinitionRefName=e=>l(e)??n.exec(e)?.[1];export const createSchemaRefResolver=(e,t)=>n=>{let o=phxDefinitionRefName(n);if(void 0!==o)return t[o]?.schema;let l=commonTypeRefName(n);return void 0===l?void 0:e.get(l)?.schema};export const isNullableSchema=(t,n,o=new Set)=>{if(t.$ref){if(o.has(t.$ref))return!1;let e=n(t.$ref);return void 0===e||isNullableSchema(e,n,new Set([...o,t.$ref]))}let l=[...t.anyOf??[],...t.oneOf??[]];return"null"===t.type||e(t.type)&&t.type.includes("null")||t.enum?.includes(null)===!0||null===t.const||l.some(e=>isNullableSchema(e,n,o))};
@@ -1,4 +1,5 @@
1
1
  import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { SdkCodeRef } from '../../../core/index.js';
2
3
  import type { MemoEvalPlan, MemoEvalPlanInput } from '../expressions/memo-eval-plan.js';
3
4
  import type { EntityOrAliasName, InstanceName } from '../model/index.js';
4
5
  import type { ComponentReadBinding, ComponentWriteBinding } from './bindings/index.js';
@@ -46,15 +47,6 @@ interface UserBoundImplementation {
46
47
  readonly plan: MemoEvalPlan;
47
48
  readonly implementation: RootReadImplementation | CompositeImplementation;
48
49
  }
49
- /**
50
- * A parameter that should be emitted as an unquoted code reference in codegen
51
- * (e.g. an entity reflection variable like `Top`).
52
- * At runtime, the string value is resolved to the actual object (e.g. entity reflection).
53
- */
54
- export interface SdkCodeRef {
55
- readonly $codeRef: string;
56
- }
57
- export declare const isSdkCodeRef: (value: unknown) => value is SdkCodeRef;
58
50
  export type SdkFactoryParam = SdkCodeRef | string | number | boolean | null | readonly SdkFactoryParam[] | {
59
51
  readonly [key: string]: SdkFactoryParam;
60
52
  };
@@ -1 +1 @@
1
- export const isSdkCodeRef=e=>"object"==typeof e&&null!==e&&"$codeRef"in e&&"string"==typeof e.$codeRef;
1
+ export{};
@@ -1,58 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import { type EnhancedJsonSchemaType, type EnhancedJsonValue } from '../../../core/index.js';
3
- /**
4
- * A single filter criterion — static value, dynamic `$read` reference, or
5
- * inline `$eval` expression evaluated against `self` at runtime.
6
- *
7
- * The `target` field on the `'dynamic'` variant is a bare name (matches the
8
- * same pattern as prop-level reads); codegen emits `self.target`, runtime
9
- * reads `self[target]`.
10
- */
11
- export type FilterCriterion<T> = {
12
- readonly kind: 'static';
13
- readonly value: T;
14
- } | {
15
- readonly kind: 'dynamic';
16
- readonly target: string;
17
- } | {
18
- readonly kind: 'eval';
19
- readonly code: string;
20
- };
21
- /**
22
- * Parsed component filter controlling when the component is active. Two
23
- * mutually-exclusive shapes:
24
- *
25
- * - `'gradual'` — zero or more per-criterion fields; compiles to one entry per
26
- * set key inside `.withGradualFilter({…})`. The preferred form.
27
- * - `'root'` — the entire filter is a single `$read` at the root (legacy
28
- * form `$filter: { $read: '$x' }`); compiles to `.withFilter(self => (self.target))`.
29
- * Distinct codegen because the SDK's `withFilter` and `withGradualFilter`
30
- * methods have different evaluation semantics (whole-closure vs per-key).
31
- *
32
- * See `components.md §"Simple expression filter"` / `§"Declarative filter"`.
33
- */
34
- export type ComponentFilter = {
35
- readonly kind: 'gradual';
36
- readonly navigationStates?: FilterCriterion<readonly string[]>;
37
- readonly viewStates?: FilterCriterion<readonly string[]>;
38
- readonly toolStates?: FilterCriterion<readonly string[]>;
39
- readonly exportStates?: FilterCriterion<readonly string[]>;
40
- readonly modes?: FilterCriterion<readonly string[]>;
41
- readonly roles?: FilterCriterion<readonly string[]>;
42
- readonly selectedEntityIds?: FilterCriterion<unknown>;
43
- readonly hoveredEntityIds?: FilterCriterion<unknown>;
44
- readonly draggedEntityIds?: FilterCriterion<unknown>;
45
- readonly exportedEntityIds?: FilterCriterion<unknown>;
46
- readonly active?: FilterCriterion<boolean>;
47
- readonly fullscreen?: FilterCriterion<boolean>;
48
- readonly debug?: FilterCriterion<boolean>;
49
- readonly viewports?: FilterCriterion<unknown>;
50
- } | {
51
- readonly kind: 'root';
52
- readonly target: string;
53
- };
54
- /** Criterion field names on the gradual variant — used for parse and iteration. */
55
- export declare const FILTER_CRITERION_KEYS: readonly ["navigationStates", "viewStates", "toolStates", "exportStates", "modes", "roles", "selectedEntityIds", "hoveredEntityIds", "draggedEntityIds", "exportedEntityIds", "active", "fullscreen", "debug", "viewports"];
2
+ import { type ComponentFilter, type EnhancedJsonSchemaType, type EnhancedJsonValue } from '../../../core/index.js';
56
3
  /**
57
4
  * Schema types for each filter criterion, used for expression inference.
58
5
  * When `$read: '$expr'` appears in a filter criterion, the expression is
@@ -1 +1 @@
1
- import{Branded as t}from"@salsita-ai/common/utils";import{FILTER_OR_KEY as e,READ_MARKER_KEY as r,isEnhancedJsonObject as i,isEvalMarker as s,isRawReadMarker as a}from"../../../core/index.js";export const FILTER_CRITERION_KEYS=["navigationStates","viewStates","toolStates","exportStates","modes","roles","selectedEntityIds","hoveredEntityIds","draggedEntityIds","exportedEntityIds","active","fullscreen","debug","viewports"];let o={tsType:"IdOrWithId | readonly IdOrWithId[]",import:[{module:"@salsita-ai/sdk/domain",member:"IdOrWithId"}]};export const FILTER_CRITERION_SCHEMAS={navigationStates:{type:"array",items:{type:"string"}},viewStates:{type:"array",items:{type:"string"}},toolStates:{type:"array",items:{type:"string"}},exportStates:{type:"array",items:{type:"string"}},modes:{type:"array",items:{type:"string"}},roles:{type:"array",items:{type:"string"}},selectedEntityIds:o,hoveredEntityIds:o,draggedEntityIds:o,exportedEntityIds:o,active:{type:"boolean"},fullscreen:{type:"boolean"},debug:{type:"boolean"},viewports:{type:"array",items:{type:"string"},tsType:"readonly Viewport[]",import:[{module:"@salsita-ai/sdk/domain",member:"Viewport"}]}};let n=new Set(FILTER_CRITERION_KEYS),d=t=>a(t)?{kind:"dynamic",target:t[r]}:s(t)?{kind:"eval",code:t.$eval}:{kind:"static",value:t},y=t=>{let e=t[r];if("string"==typeof e&&!Object.keys(t).some(t=>n.has(t)))return{kind:"root",target:e};let i={};for(let[e,r]of Object.entries(t))n.has(e)&&void 0!==r&&(i[e]=d(r));return{kind:"gradual",...i}};export const ComponentFilters=r=>{if(void 0===r||!i(r))return t({items:[]});let s=r[e];return Array.isArray(s)?t({items:s.filter(i).map(y)}):t({items:[y(r)]})};
1
+ import{Branded as t}from"@salsita-ai/common/utils";import{FILTER_CRITERION_KEYS as e,FILTER_OR_KEY as r,READ_MARKER_KEY as i,isEnhancedJsonObject as s,isEvalMarker as a,isRawReadMarker as o}from"../../../core/index.js";let n={tsType:"IdOrWithId | readonly IdOrWithId[]",import:[{module:"@salsita-ai/sdk/domain",member:"IdOrWithId"}]};export const FILTER_CRITERION_SCHEMAS={navigationStates:{type:"array",items:{type:"string"}},viewStates:{type:"array",items:{type:"string"}},toolStates:{type:"array",items:{type:"string"}},exportStates:{type:"array",items:{type:"string"}},modes:{type:"array",items:{type:"string"}},roles:{type:"array",items:{type:"string"}},selectedEntityIds:n,hoveredEntityIds:n,draggedEntityIds:n,exportedEntityIds:n,active:{type:"boolean"},fullscreen:{type:"boolean"},debug:{type:"boolean"},viewports:{type:"array",items:{type:"string"},tsType:"readonly Viewport[]",import:[{module:"@salsita-ai/sdk/domain",member:"Viewport"}]}};let y=new Set(e),d=t=>o(t)?{kind:"dynamic",target:t[i]}:a(t)?{kind:"eval",code:t.$eval}:{kind:"static",value:t},p=t=>{let e=t[i];if("string"==typeof e&&!Object.keys(t).some(t=>y.has(t)))return{kind:"root",target:e};let r={};for(let[e,i]of Object.entries(t))y.has(e)&&void 0!==i&&(r[e]=d(i));return{kind:"gradual",...r}};export const ComponentFilters=e=>{if(void 0===e||!s(e))return t({items:[]});let i=e[r];return Array.isArray(i)?t({items:i.filter(s).map(p)}):t({items:[p(e)]})};
@@ -1,5 +1,5 @@
1
1
  export * from './bindings/index.js';
2
- export * from './component-entry.js';
2
+ export type * from './component-entry.js';
3
3
  export * from './component-filter.js';
4
4
  export * from './component-prop-target.js';
5
5
  export * from './components.js';
@@ -1 +1 @@
1
- export*from"./bindings/index.js";export*from"./component-entry.js";export*from"./component-filter.js";export*from"./component-prop-target.js";export*from"./components.js";export*from"./sdk-component-entry.js";export*from"./user-component-entry.js";export*from"./user-components.js";
1
+ export*from"./bindings/index.js";export*from"./component-filter.js";export*from"./component-prop-target.js";export*from"./components.js";export*from"./sdk-component-entry.js";export*from"./user-component-entry.js";export*from"./user-components.js";
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{evalCodeUsesSelf as r}from"../../../core/eval-code-uses-self.js";import{isEvalMarker as t,isMsgMarker as n}from"../../../core/index.js";import{isComponentPropTarget as o}from"../components/component-prop-target.js";let l=(e,r)=>0===r.length?e:`${e}.${r.join(".")}`,i=(r,a,u,d)=>{if(void 0===r)throw Error(`MemoEvalPlan: found undefined at ${l(u,d)}, undefined cannot be generated, remove the property or use null.`);if(t(r)){let t=((r,t,n)=>{let o=t.trim();for(let e=0;e<r.length;e++){let t=r[e];if("eval"===t.kind&&t.code===o)return e}return r.push(e({kind:"eval",code:o,label:n})),r.length-1})(a,r.$eval,u);return e({kind:"slot",depIndex:t})}if(o(r)){let t=((r,t)=>{for(let e=0;e<r.length;e++){let n=r[e];if("read"===n.kind&&n.target===t)return e}return r.push(e({kind:"read",target:t})),r.length-1})(a,r.$target);return e({kind:"slot",depIndex:t})}if(n(r))return e({kind:"msg",marker:r});if(null===r||"object"!=typeof r)return e({kind:"literal",value:r});if(Array.isArray(r))return e({kind:"array",items:r.map((e,r)=>i(e,a,u,[...d,String(r)]))});if("object"!=typeof r||null===r)throw Error(`MemoEvalPlan: found unsupported value at ${l(u,d)}, remove it or use null.`);let f=[];for(let e in r){let t=r[e];f.push([e,i(t,a,u,[...d,e])])}return e({kind:"object",entries:f})};export const MemoEvalPlan=(t,n)=>{let o=[],l=i(t,o,n,[]),a=o.some(e=>"read"===e.kind||r(e.code));return e({deps:o,template:l,usesSelf:a})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{isEvalMarker as r,isMsgMarker as t}from"../../../core/index.js";import{evalCodeUsesSelf as n}from"../../../enhanced-json/eval-code-uses-self.js";import{isComponentPropTarget as o}from"../components/component-prop-target.js";let l=(e,r)=>0===r.length?e:`${e}.${r.join(".")}`,i=(n,a,d,u)=>{if(void 0===n)throw Error(`MemoEvalPlan: found undefined at ${l(d,u)}, undefined cannot be generated, remove the property or use null.`);if(r(n)){let r=((r,t,n)=>{let o=t.trim();for(let e=0;e<r.length;e++){let t=r[e];if("eval"===t.kind&&t.code===o)return e}return r.push(e({kind:"eval",code:o,label:n})),r.length-1})(a,n.$eval,d);return e({kind:"slot",depIndex:r})}if(o(n)){let r=((r,t)=>{for(let e=0;e<r.length;e++){let n=r[e];if("read"===n.kind&&n.target===t)return e}return r.push(e({kind:"read",target:t})),r.length-1})(a,n.$target);return e({kind:"slot",depIndex:r})}if(t(n))return e({kind:"msg",marker:n});if(null===n||"object"!=typeof n)return e({kind:"literal",value:n});if(Array.isArray(n))return e({kind:"array",items:n.map((e,r)=>i(e,a,d,[...u,String(r)]))});if("object"!=typeof n||null===n)throw Error(`MemoEvalPlan: found unsupported value at ${l(d,u)}, remove it or use null.`);let s=[];for(let e in n){let r=n[e];s.push([e,i(r,a,d,[...u,e])])}return e({kind:"object",entries:s})};export const MemoEvalPlan=(r,t)=>{let o=[],l=i(r,o,t,[]),a=o.some(e=>"read"===e.kind||n(e.code));return e({deps:o,template:l,usesSelf:a})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{schemaFromValue as t}from"../../../core/index.js";import{DiagnosticCode as r,diagnosticMessages as s}from"../../../errors/index.js";import{ExpressionName as o}from"../model/index.js";import{MemoEvalPlan as a}from"./memo-eval-plan.js";let i=(e,r,s,o)=>{if("user"===e.kind)return{schema:e.schema,implementation:{kind:"user"}};let i=a(e.value,r),m={kind:"value",constant:e.constant,value:e.value,plan:i};if(Object.keys(e.schema).length>0)return{schema:e.schema,implementation:m};let n=t(e.value,s,o);if(void 0!==n)return{schema:n,implementation:m}};export const UserExpressions=(t,a)=>{let{latestModel:m,evalExpressionParser:n,parsingContext:l}=a,{allNames:c}=m,f=[...c].map(String),h=[];for(let[a,m]of Object.entries(t)){c.has(a)||l.error(r.EXPRESSION_UNKNOWN_ENTITY_KEY,s.EXPRESSION_UNKNOWN_ENTITY_KEY(a,f));let t=e(a);for(let[r,s]of Object.entries(m)){let m=l.at(a),c=o(r,m);if(!c)continue;let f=i(s,`${a}.${r}`,m.at(r),n);f&&h.push(e({entityKey:t,name:c,schema:f.schema,declaredSchema:f.schema,implementation:f.implementation}))}}if(!l.hasErrors)return h};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{schemaFromValue as t}from"../../../enhanced-json/index.js";import{DiagnosticCode as r,diagnosticMessages as n}from"../../../errors/index.js";import{ExpressionName as s}from"../model/index.js";import{MemoEvalPlan as a}from"./memo-eval-plan.js";let o=(e,r,n,s)=>{if("user"===e.kind)return{schema:e.schema,implementation:{kind:"user"}};let o=a(e.value,r),i={kind:"value",constant:e.constant,value:e.value,plan:o};if(Object.keys(e.schema).length>0)return{schema:e.schema,implementation:i};let m=t(e.value,n,s);if(void 0!==m)return{schema:m,implementation:i}};export const UserExpressions=(t,a)=>{let{latestModel:i,evalExpressionParser:m,parsingContext:l}=a,{allNames:c}=i,h=[...c].map(String),f=[];for(let[a,i]of Object.entries(t)){c.has(a)||l.error(r.EXPRESSION_UNKNOWN_ENTITY_KEY,n.EXPRESSION_UNKNOWN_ENTITY_KEY(a,h));let t=e(a);for(let[r,n]of Object.entries(i)){let i=l.at(a),c=s(r,i);if(!c)continue;let h=o(n,`${a}.${r}`,i.at(r),m);h&&f.push(e({entityKey:t,name:c,schema:h.schema,declaredSchema:h.schema,implementation:h.implementation}))}}if(!l.hasErrors)return f};
@@ -7,8 +7,8 @@ import { ShapePropertyName } from './names/shape-property-name.js';
7
7
  /**
8
8
  * A map of shape property names to their default values inside a single entity block.
9
9
  * Raw YAML values — markers intact — keyed by a validated {@link ShapePropertyName}.
10
- * Codegen emits these as-is via `stringifyEnhancedJsonValue`; runtime consumers
11
- * (`RecipeFactoryBuilder`) consume the generated `createRecipe` factory.
10
+ * Codegen emits these as-is via `stringifyEnhancedJsonValue`; at run time
11
+ * `createRecipeFactory` makes the generated `createRecipe` factory from them.
12
12
  */
13
13
  export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValue>>;
14
14
  /**
@@ -19,6 +19,11 @@ export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValu
19
19
  * flattened here to concrete entity entries so downstream codegen only serialises
20
20
  * a runtime-ready per-entity map.
21
21
  *
22
+ * A source key may state part of a shape, but the flattened entry of a concrete
23
+ * entity type states every property of its shape: `createRecipeFactory` validates
24
+ * each entry as a whole entity when the generated module loads. An entity type
25
+ * with no entry has no defaults and is not checked.
26
+ *
22
27
  * Values are raw `EnhancedJsonValue` so codegen can emit them via
23
28
  * `stringifyEnhancedJsonValue` with `$msg` markers preserved.
24
29
  *
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t,resolveEnhancedJsonValue as r}from"../../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as i}from"../../../errors/index.js";import{ShapePropertyName as n}from"./names/shape-property-name.js";let s=(e,t,r,n,s)=>{for(let l of r.validatePartialShape(t).errors){let t=l.instancePath?l.instancePath:"(root)",r=l.instancePath.split("/").filter(Boolean)[0]??"";n.error(o.DEFAULTS_SCHEMA_VIOLATION,i[o.DEFAULTS_SCHEMA_VIOLATION](e,r,t,l.message,s))}};export const Defaults=(l,a,f)=>{let E=a.allNames,T=[...E].map(String),N=new Map,S=new Map;for(let e of a.entitySchemas)N.set(e.entityType,new Set(Object.keys(e.shapeProperties))),S.set(e.entityType,e);let _={};for(let[e,O]of Object.entries(l)){let l=f.at(e);if(!E.has(e)){f.error(o.DEFAULTS_UNKNOWN_ENTITY_KEY,i[o.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let p=a.aliases.get(e),c=void 0!==p,g={};for(let[t,r]of Object.entries(O)){let s=n(t,l);if(s){if(c){let t=[];for(let e of p){let r=N.get(e);r&&r.has(s)||t.push(String(e))}if(t.length>0){let r=p[0],n=r?[...N.get(r)??[]]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,n,t));continue}}else{let t=N.get(e);if(!t||!t.has(s)){let r=t?[...t]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,r));continue}}g[s]=r}}if(0===Object.keys(g).length)continue;let m=r(g,void 0,t,l);if(void 0!==m){if(c)for(let t of p){let r=S.get(t);r&&s(e,m,r,l,String(t))}else{let t=S.get(e);t&&s(e,m,t,l)}for(let t of p??[e])_[String(t)]={..._[String(t)],...g}}}if(Object.keys(l).length>0&&f.warning(o.DEFAULTS_DEPRECATED,i[o.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:_})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t}from"../../../core/index.js";import{resolveEnhancedJsonValue as r}from"../../../enhanced-json/index.js";import{DiagnosticCode as i,diagnosticMessages as n}from"../../../errors/index.js";import{ShapePropertyName as o}from"./names/shape-property-name.js";let s=(e,t,r,o,s)=>{for(let l of r.validatePartialShape(t).errors){let t=l.instancePath?l.instancePath:"(root)",r=l.instancePath.split("/").filter(Boolean)[0]??"";o.error(i.DEFAULTS_SCHEMA_VIOLATION,n[i.DEFAULTS_SCHEMA_VIOLATION](e,r,t,l.message,s))}};export const Defaults=(l,a,f)=>{let E=a.allNames,T=[...E].map(String),S=new Map,N=new Map;for(let e of a.entitySchemas)S.set(e.entityType,new Set(Object.keys(e.shapeProperties))),N.set(e.entityType,e);let g={},O=new Map;for(let[e,_]of Object.entries(l)){let l=f.at(e);if(!E.has(e)){f.error(i.DEFAULTS_UNKNOWN_ENTITY_KEY,n[i.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let c=a.aliases.get(e),p=void 0!==c,h={};for(let[t,r]of Object.entries(_)){let s=o(t,l);if(s){if(p){let t=[];for(let e of c){let r=S.get(e);r&&r.has(s)||t.push(String(e))}if(t.length>0){let r=c[0],o=r?[...S.get(r)??[]]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,n[i.DEFAULTS_UNKNOWN_PROPERTY](e,s,o,t));continue}}else{let t=S.get(e);if(!t||!t.has(s)){let r=t?[...t]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,n[i.DEFAULTS_UNKNOWN_PROPERTY](e,s,r));continue}}h[s]=r}}if(0===Object.keys(h).length)continue;let m=r(h,void 0,t,l);if(void 0!==m){if(p)for(let t of c){let r=N.get(t);r&&s(e,m,r,l,String(t))}else{let t=N.get(e);t&&s(e,m,t,l)}for(let t of c??[e])g[String(t)]={...g[String(t)],...h},O.set(t,[...O.get(t)??[],e])}}for(let[e,t]of O){let r=g[String(e)]??{},o=(N.get(e)?.shapeSchema.required??[]).filter(e=>!Object.hasOwn(r,e));if(0===o.length)continue;let s=t.includes(String(e))?String(e):t.at(-1);f.at(s).error(i.DEFAULTS_INCOMPLETE,n[i.DEFAULTS_INCOMPLETE](String(e),o,t))}if(Object.keys(l).length>0&&f.warning(i.DEFAULTS_DEPRECATED,n[i.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:g})};
@@ -0,0 +1,10 @@
1
+ import { Branded } from '@salsita-ai/common/utils';
2
+ import type { ParseContext } from '../../../../core/index.js';
3
+ /**
4
+ * Branded action name: camelCase without a prefix (e.g. "movePartBy", "swapCabinets"). An action is
5
+ * a named domain operation, so its name doubles as the key of its implementation and of its
6
+ * generated types.
7
+ */
8
+ export type ActionName = Branded<'ActionName', string>;
9
+ /** Validates that a name follows the action naming convention (camelCase, no prefix). */
10
+ export declare const ActionName: (name: string, ctx: ParseContext) => ActionName | undefined;
@@ -0,0 +1 @@
1
+ import{Branded as o}from"@salsita-ai/common/utils";import{DiagnosticCode as r,diagnosticMessages as t}from"../../../../errors/index.js";let i=/^[a-z][A-Za-z0-9]*$/;export const ActionName=(A,e)=>i.test(A)?o(A):void e.error(r.INVALID_ACTION_NAME,t.INVALID_ACTION_NAME(A));
@@ -1,3 +1,4 @@
1
+ export * from './action-name.js';
1
2
  export * from './alias-name.js';
2
3
  export * from './entity-or-alias-name.js';
3
4
  export * from './entity-type-name.js';
@@ -1 +1 @@
1
- export*from"./alias-name.js";export*from"./entity-or-alias-name.js";export*from"./entity-type-name.js";export*from"./expression-name.js";export*from"./instance-name.js";export*from"./invariant-name.js";export*from"./relation-name.js";export*from"./shape-property-name.js";export*from"./violation-type-name.js";
1
+ export*from"./action-name.js";export*from"./alias-name.js";export*from"./entity-or-alias-name.js";export*from"./entity-type-name.js";export*from"./expression-name.js";export*from"./instance-name.js";export*from"./invariant-name.js";export*from"./relation-name.js";export*from"./shape-property-name.js";export*from"./violation-type-name.js";
@@ -0,0 +1,25 @@
1
+ import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../core/index.js';
2
+ import type { ModelVersion } from '../model/index.js';
3
+ /**
4
+ * What the type of a shape field means to a relation that reads its related entities from it.
5
+ *
6
+ * - `single`: the id of one entity of `entityTypes`, or `null` when `nullable`.
7
+ * - `array`: an array of ids of entities of `entityTypes`.
8
+ * - `other`: anything else, such as a string, an id without `references`, or a mix of the above.
9
+ * - `unknown`: the schema does not say, because it states its type as TypeScript text (`tsType`)
10
+ * or combines schemas with `allOf`.
11
+ */
12
+ export type ReferenceFieldType = {
13
+ readonly kind: 'single';
14
+ readonly entityTypes: ReadonlySet<string>;
15
+ readonly nullable: boolean;
16
+ } | {
17
+ readonly kind: 'array';
18
+ readonly entityTypes: ReadonlySet<string>;
19
+ } | {
20
+ readonly kind: 'other';
21
+ } | {
22
+ readonly kind: 'unknown';
23
+ };
24
+ /** Classifies the schema of a shape field of the latest model by the reference it holds. */
25
+ export declare const referenceFieldType: (schema: EnhancedJsonSchemaType, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions) => ReferenceFieldType;
@@ -0,0 +1 @@
1
+ import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as t,extractPhxDefName as n}from"../../../core/index.js";let r={entityTypes:new Set,hasNull:!1,arrays:[],hasOther:!1,hasUnknown:!1},s={...r,hasNull:!0},a={...r,hasOther:!0},y={...r,hasUnknown:!0},i=e=>({entityTypes:new Set(e.flatMap(e=>[...e.entityTypes])),hasNull:e.some(e=>e.hasNull),arrays:e.flatMap(e=>e.arrays),hasOther:e.some(e=>e.hasOther),hasUnknown:e.some(e=>e.hasUnknown)}),l=(o,p)=>{if(o.tsType)return y;if(o.$ref){let s,i=n(o.$ref);if(void 0!==i)return p.phxDefinitions[i]?.tsType==="DomainEntityId"&&o.references?{...r,entityTypes:new Set(((e,t)=>{for(let[n,r]of t.aliases)if(String(n)===e)return r.map(String);return[e]})(o.references,p.latestModel))}:a;let h=(s=o.$ref).startsWith(e)?s.slice(e.length):t.exec(s)?.[2];if(void 0===h)return a;let u=p.latestModel.commonTypes.get(h);return!u||p.openCommonTypes.has(h)?y:l(u.schema,{...p,openCommonTypes:new Set([...p.openCommonTypes,h])})}if(o.enum)return i(o.enum.map(e=>null===e?s:a));let h=o.anyOf??o.oneOf;if(h)return i(h.map(e=>l(e,p)));if(o.allOf)return y;let u=e=>"array"===e?(()=>{let{items:e}=o;return!e||Array.isArray(e)?a:{...r,arrays:[l(e,p)]}})():"null"===e?s:a;return"string"==typeof o.type?u(o.type):Array.isArray(o.type)?i(o.type.map(u)):a};export const referenceFieldType=(e,t,n)=>(e=>{if(e.hasUnknown||e.arrays.some(e=>e.hasUnknown))return{kind:"unknown"};if(e.hasOther)return{kind:"other"};let[t,...n]=e.arrays;if(!t)return e.entityTypes.size>0?{kind:"single",entityTypes:e.entityTypes,nullable:e.hasNull}:{kind:"other"};let r=e=>e.entityTypes.size>0&&!e.hasNull&&!e.hasOther&&0===e.arrays.length;return 0===e.entityTypes.size&&!e.hasNull&&r(t)&&n.every(e=>{let n,s;return r(e)&&(n=e.entityTypes,s=t.entityTypes,n.size===s.size&&[...n].every(e=>s.has(e)))})?{kind:"array",entityTypes:t.entityTypes}:{kind:"other"}})(l(e,{latestModel:t,phxDefinitions:n,openCommonTypes:new Set}));
@@ -0,0 +1,46 @@
1
+ import type { ReferenceFieldType } from './reference-field-type.js';
2
+ type Cardinality = '0-1' | '1-1' | '0-N' | '1-N';
3
+ /** How a field holds its reference: one id, one id or `null`, or an array of ids. */
4
+ export type ReferenceFieldShape = 'single' | 'nullableSingle' | 'array';
5
+ /**
6
+ * Why a relation cannot read its related entities from its field.
7
+ *
8
+ * - `notReference`: the field does not hold entity ids.
9
+ * - `otherEntityTypes`: the field holds ids of other entity types than the relation relates to.
10
+ * - `cardinality`: the field of a direct relation holds its ids in another shape than the
11
+ * cardinality of the relation needs.
12
+ */
13
+ export type RelationFieldMismatch = {
14
+ readonly kind: 'notReference';
15
+ } | {
16
+ readonly kind: 'otherEntityTypes';
17
+ readonly referenced: readonly string[];
18
+ } | {
19
+ readonly kind: 'cardinality';
20
+ readonly shape: ReferenceFieldShape;
21
+ readonly required: ReferenceFieldShape;
22
+ };
23
+ interface RelationReadingField {
24
+ readonly kind: 'direct' | 'indirect';
25
+ readonly cardinality: Cardinality;
26
+ }
27
+ /**
28
+ * Checks the field of a direct or indirect relation against what the relation reads from it.
29
+ *
30
+ * The field must reference exactly `relatedEntityTypes`: for a direct relation the entity types of
31
+ * its target, for an indirect relation the entity types it is declared on, because there the field
32
+ * belongs to the target and points back. A direct relation also fixes the shape of the field by
33
+ * its cardinality. An indirect relation reads every shape, since its cardinality counts the
34
+ * entities that point back and not the ids in the field.
35
+ *
36
+ * When an alias holds the field, the field can have another type in each entity type of the alias.
37
+ * The relation is accepted when the field fits in at least one of them. Requiring all of them
38
+ * would be the stricter reading, but projects whose specs type-check rely on the looser one, so
39
+ * it would reject working projects.
40
+ *
41
+ * @param fieldTypes The type of the field in each entity type that holds it.
42
+ * @returns The mismatch of the first entity type, or `undefined` when the field fits in one of
43
+ * them or its type there is unknown.
44
+ */
45
+ export declare const relationFieldMismatch: (relation: RelationReadingField, fieldTypes: readonly ReferenceFieldType[], relatedEntityTypes: readonly string[]) => RelationFieldMismatch | undefined;
46
+ export {};
@@ -0,0 +1 @@
1
+ let e={"0-1":"nullableSingle","1-1":"single","0-N":"array","1-N":"array"};export const relationFieldMismatch=(n,i,r)=>{let t=i.map(i=>((n,i,r)=>{if("unknown"===i.kind)return;if("other"===i.kind)return{kind:"notReference"};let t=i.entityTypes;if(!(t.size===new Set(r).size&&r.every(e=>t.has(e))))return{kind:"otherEntityTypes",referenced:[...t]};if("indirect"===n.kind)return;let l="array"===i.kind?"array":i.nullable?"nullableSingle":"single",a=e[n.cardinality];return l===a?void 0:{kind:"cardinality",shape:l,required:a}})(n,i,r));return t.includes(void 0)?void 0:t[0]};
@@ -1,5 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import type { ParseContext } from '../../../core/index.js';
2
+ import type { ParseContext, PhoenixDefinitions } from '../../../core/index.js';
3
3
  import type { MergedRelations } from '../../merge/index.js';
4
4
  import type { ComponentEntry } from '../components/index.js';
5
5
  import type { Expression } from '../expressions/index.js';
@@ -19,7 +19,8 @@ export type Relations = Branded<'Relations', {
19
19
  * Validates merged relations against the latest model, then expands into components + expressions.
20
20
  *
21
21
  * Each relation is individually constructed via `Relation()` which builds its own expression
22
- * and component entries. This factory validates cross-relation concerns (counterpart pairing,
22
+ * and component entries. This factory validates the field a direct or indirect relation reads
23
+ * against the shape that holds it, validates cross-relation concerns (counterpart pairing,
23
24
  * composition tree reachability) and aggregates the per-relation artifacts.
24
25
  */
25
- export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, ctx: ParseContext) => Relations;
26
+ export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions, ctx: ParseContext) => Relations;