@salsita-ai/sdk 0.49.0-develop.fc391028c9 → 0.50.0-develop.016963b09e

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 (1128) hide show
  1. package/CHANGELOG.md +479 -0
  2. package/README.md +20 -12
  3. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  4. package/dist/application-spec/errors/diagnostic-codes.d.ts +10 -0
  5. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  6. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -0
  7. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  8. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  9. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  10. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  11. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  12. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  13. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  14. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  15. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  16. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  17. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  18. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  19. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  20. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +2 -2
  21. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -13
  22. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  23. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  24. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  27. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.d.ts +3 -1
  28. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +71 -68
  29. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  30. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  32. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  33. package/dist/application-spec/generate-application/code/templates/domain-spec.js +7 -7
  34. package/dist/application-spec/generate-application/code/templates/domain.js +4 -4
  35. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.d.ts +11 -0
  36. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +8 -0
  37. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  38. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/globals.js +1 -0
  40. package/dist/application-spec/generate-application/code/templates/index.d.ts +6 -12
  41. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  42. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  43. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/{phoenix-create-configurator-skill.d.ts → skills/phoenix-create-configurator-skill.d.ts} +1 -1
  45. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +166 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +54 -0
  47. package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.js → skills/phoenix-review-skill.js} +7 -5
  48. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  51. package/dist/application-spec/generate-application/code/templates/{common → skills}/sdk-content.d.ts +60 -12
  52. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +79 -0
  53. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  54. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  55. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  56. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +3 -3
  57. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  58. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +14 -0
  59. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.js +1 -0
  60. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  61. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  62. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  63. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  64. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +1 -0
  65. package/dist/application-spec/generate-application/runtime/sections/index.js +1 -1
  66. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  67. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +3 -1
  68. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  69. package/dist/application-spec/parse-application-files/merge/index.d.ts +1 -0
  70. package/dist/application-spec/parse-application-files/merge/index.js +1 -1
  71. package/dist/application-spec/parse-application-files/merge/merged-actions.d.ts +11 -0
  72. package/dist/application-spec/parse-application-files/merge/merged-actions.js +1 -0
  73. package/dist/application-spec/parse-application-files/merge/merged-spec.d.ts +2 -0
  74. package/dist/application-spec/parse-application-files/merge/merged-spec.js +1 -1
  75. package/dist/application-spec/parse-application-files/raw-spec/index.d.ts +1 -0
  76. package/dist/application-spec/parse-application-files/raw-spec/index.js +1 -1
  77. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.d.ts +18 -0
  78. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.js +1 -0
  79. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +14 -2
  80. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  81. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +2 -0
  82. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  83. package/dist/application-spec/parse-application-files/resolve/resolve-import-modules.js +1 -1
  84. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  85. package/dist/application-spec/parse-application-files/spec/application/application-spec.js +1 -1
  86. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.d.ts +4 -2
  87. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  88. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  89. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  90. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.d.ts +23 -0
  91. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.js +1 -0
  92. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  93. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  94. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +10 -0
  95. package/dist/application-spec/parse-application-files/spec/model/names/action-name.js +1 -0
  96. package/dist/application-spec/parse-application-files/spec/model/names/index.d.ts +1 -0
  97. package/dist/application-spec/parse-application-files/spec/model/names/index.js +1 -1
  98. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  99. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  100. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  101. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  102. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  103. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  104. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +35 -0
  105. package/dist/application-spec/parse-application-files/spec/sections/actions.js +1 -0
  106. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +5 -21
  107. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  108. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +14 -39
  109. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  110. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  111. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -19
  112. package/dist/application-spec/parse-application-files/spec/sections/index.d.ts +1 -0
  113. package/dist/application-spec/parse-application-files/spec/sections/index.js +1 -1
  114. package/dist/client/authorized-client.d.ts +3 -1
  115. package/dist/client/authorized-client.js +1 -1
  116. package/dist/client/contract.d.ts +34 -0
  117. package/dist/client/contract.js +1 -1
  118. package/dist/client/index.d.ts +2 -2
  119. package/dist/client/index.js +1 -1
  120. package/dist/client/local-authorized-client.d.ts +3 -1
  121. package/dist/client/local-authorized-client.js +1 -1
  122. package/dist/client/memory-authorized-client.d.ts +3 -1
  123. package/dist/client/memory-authorized-client.js +1 -1
  124. package/dist/client/phoenix-api.d.ts +276 -31
  125. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.d.ts +2 -1
  126. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.js +1 -1
  127. package/dist/configurator/application-runtime/extensions/selectors.d.ts +2 -1
  128. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  129. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +267 -0
  130. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -0
  131. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/browser-details.d.ts +1 -1
  132. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +1 -0
  133. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  134. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  135. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/graphql-tools.d.ts +20 -16
  136. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -0
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  138. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  139. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  140. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  141. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  142. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  143. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -0
  144. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  145. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -0
  146. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  147. package/dist/configurator/common/frontend-analytics.d.ts +21 -21
  148. package/dist/configurator/index.d.ts +0 -1
  149. package/dist/configurator/index.js +1 -1
  150. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  151. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  152. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  153. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  154. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  155. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  156. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +7 -0
  157. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  158. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  159. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  160. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  161. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  162. package/dist/configurator/ui/assistant/AssistantThread.d.ts +10 -0
  163. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  164. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  165. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  166. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  167. package/dist/configurator/ui/assistant/index.js +1 -0
  168. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  169. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  170. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  171. package/dist/configurator/ui/assistant/theme.js +1 -0
  172. package/dist/configurator/ui/assistant/thread-items.d.ts +48 -0
  173. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  174. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  175. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  176. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  177. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  178. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  179. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  180. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +9 -9
  181. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  182. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  183. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +3 -3
  184. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  185. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  186. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  187. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  188. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  189. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  190. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  191. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  192. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  193. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  194. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  195. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  196. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  197. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  198. package/dist/docs/index.json +12 -2
  199. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  200. package/dist/docs/layouts/custom-price.mdx +14 -16
  201. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  202. package/dist/docs/layouts/toolbar.mdx +6 -0
  203. package/dist/docs/other-features/domain-actions.mdx +418 -0
  204. package/dist/docs/other-features/side-effects.mdx +76 -45
  205. package/dist/docs/other-features/transformers.mdx +1 -1
  206. package/dist/docs/other-features/violation-messages.mdx +52 -56
  207. package/dist/docs/phoenix/admin.mdx +11 -26
  208. package/dist/docs/phoenix/best-practices.mdx +1 -0
  209. package/dist/docs/phoenix/configurator-interface.mdx +100 -65
  210. package/dist/docs/phoenix/deployments.mdx +1 -1
  211. package/dist/docs/phoenix/domain-model.mdx +4 -0
  212. package/dist/docs/phoenix/expression-context.mdx +11 -3
  213. package/dist/docs/phoenix/finalization.mdx +1 -1
  214. package/dist/docs/phoenix/getting-started.mdx +1 -1
  215. package/dist/docs/phoenix/integration/headless-mode-external.mdx +5 -5
  216. package/dist/docs/phoenix/integration/widget-mode-external.mdx +5 -5
  217. package/dist/docs/phoenix/localization.mdx +3 -22
  218. package/dist/docs/phoenix/migrations.mdx +45 -5
  219. package/dist/docs/phoenix/phoenix-cli.mdx +181 -66
  220. package/dist/docs/phoenix/project-structure.mdx +28 -12
  221. package/dist/docs/phoenix/quickstart.mdx +2 -2
  222. package/dist/docs/phoenix/sdk-builder-workflow.mdx +20 -16
  223. package/dist/docs/phoenix/state-management.mdx +1 -1
  224. package/dist/docs/phoenix/webhooks.mdx +1 -1
  225. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  226. package/dist/docs/relations/hierarchy.mdx +13 -2
  227. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  228. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  229. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  230. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  231. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  232. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  233. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  234. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  235. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  236. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  237. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  238. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  239. package/dist/domain/admin-domain/index.d.ts +9 -5
  240. package/dist/domain/admin-domain/index.js +1 -1
  241. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  242. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  243. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  244. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  245. package/dist/domain/application/application-config.d.ts +28 -95
  246. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  247. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  248. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  249. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  250. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  251. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  252. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  253. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  254. package/dist/domain/application/assistant/index.d.ts +4 -0
  255. package/dist/domain/application/assistant/index.js +1 -0
  256. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  257. package/dist/domain/application/assistant-mutations.d.ts +16 -17
  258. package/dist/domain/application/assistant-mutations.js +1 -1
  259. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  260. package/dist/domain/application/configurator-builder.d.ts +33 -18
  261. package/dist/domain/application/configurator-builder.js +1 -1
  262. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  263. package/dist/domain/application/index.d.ts +3 -5
  264. package/dist/domain/application/index.js +1 -1
  265. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  266. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  267. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  268. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  269. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  270. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  271. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  272. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  273. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  274. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  275. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  276. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  277. package/dist/domain/available-system-components.js +1 -1
  278. package/dist/domain/core/action/action-factory.d.ts +11 -0
  279. package/dist/domain/core/action/action-factory.js +1 -0
  280. package/dist/domain/core/action/action.d.ts +71 -0
  281. package/dist/domain/core/action/index.d.ts +2 -0
  282. package/dist/domain/core/action/index.js +1 -0
  283. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  284. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  285. package/dist/domain/core/component/debug-state-component.js +1 -0
  286. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  287. package/dist/domain/core/component/domain-component-optic.js +16 -0
  288. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  289. package/dist/domain/core/component/drag-state-component.js +1 -0
  290. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  291. package/dist/domain/core/component/export-state-component.js +1 -0
  292. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  293. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  294. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  295. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  296. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  297. package/dist/domain/core/component/hover-state-component.js +1 -0
  298. package/dist/domain/core/component/index.d.ts +18 -0
  299. package/dist/domain/core/component/index.js +1 -0
  300. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  301. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  302. package/dist/domain/core/component/navigation-state-component.js +1 -0
  303. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  304. package/dist/domain/core/component/selection-state-component.js +1 -0
  305. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  306. package/dist/domain/core/component/system-component-builder.js +1 -0
  307. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  308. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  309. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  310. package/dist/domain/core/component/tool-state-component.js +1 -0
  311. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  312. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  313. package/dist/domain/core/component/view-state-component.js +1 -0
  314. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  315. package/dist/domain/core/component/viewport-state-component.js +1 -0
  316. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  317. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  318. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  319. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  320. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  321. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  322. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  323. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  324. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  325. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  326. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  327. package/dist/domain/core/data-schema/data-schema.js +1 -0
  328. package/dist/domain/core/data-schema/index.d.ts +7 -0
  329. package/dist/domain/core/data-schema/index.js +1 -0
  330. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  331. package/dist/domain/core/decoder/create-decoder.js +1 -0
  332. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  333. package/dist/domain/core/decoder/decoder.js +1 -0
  334. package/dist/domain/core/decoder/index.d.ts +2 -0
  335. package/dist/domain/core/decoder/index.js +1 -0
  336. package/dist/domain/core/domain-factory.d.ts +7 -4
  337. package/dist/domain/core/domain-factory.js +1 -1
  338. package/dist/domain/core/domain.d.ts +4 -5
  339. package/dist/domain/core/domain.js +1 -1
  340. package/dist/domain/core/emission/index.d.ts +8 -0
  341. package/dist/domain/core/emission/index.js +1 -0
  342. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  343. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  344. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  345. package/dist/domain/core/emission/state-emission.js +1 -0
  346. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  347. package/dist/domain/core/emission/state-update-emission.js +1 -0
  348. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  349. package/dist/domain/core/emission/state-validation-result.js +1 -0
  350. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  351. package/dist/domain/core/emission/transformation-log.js +1 -0
  352. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  353. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  354. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  355. package/dist/domain/core/emission/transformer-log.js +1 -0
  356. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  357. package/dist/domain/core/emission/transformer-phase.js +1 -0
  358. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  359. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  360. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +3 -4
  361. package/dist/domain/core/expression/constant-expressions.js +1 -0
  362. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  363. package/dist/domain/core/expression/custom-expression.js +1 -0
  364. package/dist/domain/core/expression/expression.d.ts +46 -0
  365. package/dist/domain/core/expression/expression.js +1 -0
  366. package/dist/domain/core/expression/index.d.ts +4 -0
  367. package/dist/domain/core/expression/index.js +1 -0
  368. package/dist/domain/core/index.d.ts +13 -16
  369. package/dist/domain/core/index.js +1 -1
  370. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  371. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  372. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  373. package/dist/domain/core/invariant/index.d.ts +5 -0
  374. package/dist/domain/core/invariant/index.js +1 -0
  375. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  376. package/dist/domain/core/invariant/invariants.js +1 -0
  377. package/dist/domain/core/invariant/violation-component.js +1 -0
  378. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  379. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  380. package/dist/domain/core/model/index.d.ts +6 -0
  381. package/dist/domain/core/model/index.js +1 -0
  382. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  383. package/dist/domain/core/model/reflection.js +1 -0
  384. package/dist/domain/core/recipe/index.d.ts +1 -0
  385. package/dist/domain/core/recipe/index.js +1 -0
  386. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  387. package/dist/domain/core/recipe/recipes.js +1 -0
  388. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  389. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  390. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  391. package/dist/domain/core/relation/component-factories.js +1 -0
  392. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  393. package/dist/domain/core/relation/composed-of.js +1 -0
  394. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  395. package/dist/domain/core/relation/index.d.ts +8 -0
  396. package/dist/domain/core/relation/index.js +1 -0
  397. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  398. package/dist/domain/core/relation/indirect-relation.js +1 -0
  399. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  400. package/dist/domain/core/relation/reference-component.js +1 -0
  401. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  402. package/dist/domain/core/relation/reference-field.js +1 -0
  403. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  404. package/dist/domain/core/relation/relation-factory.js +1 -0
  405. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  406. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  407. package/dist/domain/core/schema/index.d.ts +3 -0
  408. package/dist/domain/core/schema/index.js +1 -0
  409. package/dist/domain/core/schema/schema-validator.js +1 -0
  410. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  411. package/dist/domain/core/state/id-sequence.js +1 -0
  412. package/dist/domain/core/state/index.d.ts +3 -0
  413. package/dist/domain/core/state/index.js +1 -0
  414. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  415. package/dist/domain/core/state/migrations.js +1 -0
  416. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  417. package/dist/domain/domain-builder.d.ts +16 -9
  418. package/dist/domain/domain-builder.js +1 -1
  419. package/dist/domain/domain-context/action-system/action-system.d.ts +38 -0
  420. package/dist/domain/domain-context/action-system/action-system.js +1 -0
  421. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  422. package/dist/domain/domain-context/action-system/index.js +1 -0
  423. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  424. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  425. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  426. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  427. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  428. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  429. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  430. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  431. package/dist/domain/domain-context/domain-context-systems.d.ts +11 -10
  432. package/dist/domain/domain-context/index.d.ts +8 -17
  433. package/dist/domain/domain-context/index.js +1 -1
  434. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  435. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  436. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  437. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  438. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  439. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  440. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  441. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  442. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  443. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  444. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  445. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  446. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  447. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  448. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  449. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  450. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  451. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  452. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  453. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  454. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  455. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  456. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  457. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  458. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  459. package/dist/domain/domain-context/store-system/index.js +1 -0
  460. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  461. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  462. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  463. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  464. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  465. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  466. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  467. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  468. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  469. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  470. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  471. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  472. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  473. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  474. package/dist/domain/domain-context/transformers/context.js +1 -1
  475. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  476. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  477. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  478. package/dist/domain/domain-context/transformers/index.js +1 -1
  479. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  480. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  481. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  482. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  483. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  484. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  485. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  486. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  487. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  488. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  489. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  490. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  491. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  492. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  493. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  494. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +22 -24
  495. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  496. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -72
  497. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  498. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  499. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  500. package/dist/domain/domain-runtime/spec/index.js +1 -1
  501. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  502. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  503. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  504. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  505. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  506. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  507. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  508. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  509. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +25 -0
  510. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  511. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  512. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  513. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  514. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  515. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  516. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  517. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  518. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  519. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  520. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  521. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  522. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  523. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  524. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  525. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  526. package/dist/domain/domain-runtime/spec/types.d.ts +20 -6
  527. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  528. package/dist/domain/extensions/angle-indicator.js +1 -0
  529. package/dist/domain/extensions/attribute-switch.js +1 -0
  530. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  531. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  532. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  533. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  534. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  535. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  536. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  537. package/dist/domain/extensions/canvas-config.js +1 -0
  538. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  539. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  540. package/dist/domain/extensions/canvas-padding.js +1 -0
  541. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  542. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  543. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  544. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  545. package/dist/domain/extensions/client-side-image.js +1 -0
  546. package/dist/domain/extensions/color-value.js +1 -0
  547. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  548. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  549. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  550. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  551. package/dist/domain/extensions/common/index.d.ts +4 -0
  552. package/dist/domain/extensions/common/index.js +1 -0
  553. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  554. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  555. package/dist/domain/extensions/custom-price-footer.js +1 -0
  556. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  557. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  558. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  559. package/dist/domain/extensions/dimension-indicator.js +1 -0
  560. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  561. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  562. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  563. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  564. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  565. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  566. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  567. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  568. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  569. package/dist/domain/extensions/entity-header.js +1 -0
  570. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  571. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  572. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  573. package/dist/domain/extensions/finalize-action.js +1 -0
  574. package/dist/domain/extensions/finalize-component.js +1 -0
  575. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  576. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  577. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  578. package/dist/domain/extensions/fixed-header.js +1 -0
  579. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  580. package/dist/domain/extensions/floating-header.js +1 -0
  581. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  582. package/dist/domain/extensions/hidden-header.js +1 -0
  583. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  584. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  585. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  586. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  587. package/dist/domain/extensions/index.d.ts +69 -0
  588. package/dist/domain/extensions/index.js +1 -0
  589. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  590. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  591. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  592. package/dist/domain/extensions/navigation-steps.js +1 -0
  593. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  594. package/dist/domain/extensions/offset-anchors.js +1 -0
  595. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  596. package/dist/domain/extensions/offset-indicator.js +1 -0
  597. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  598. package/dist/domain/extensions/offset.js +1 -0
  599. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  600. package/dist/domain/extensions/other-action.js +1 -0
  601. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  602. package/dist/domain/extensions/property-page.js +1 -0
  603. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  604. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  605. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  606. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  607. package/dist/domain/extensions/rotatable.js +1 -0
  608. package/dist/domain/extensions/rotation-handle.js +1 -0
  609. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  610. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  611. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  612. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  613. package/dist/domain/extensions/scene-entity-control.js +1 -0
  614. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  615. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  616. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  617. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  618. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  619. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  620. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  621. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  622. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  623. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  624. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  625. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  626. package/dist/domain/extensions/selectable-component.js +1 -0
  627. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  628. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  629. package/dist/domain/extensions/simple-summary.js +1 -0
  630. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  631. package/dist/domain/extensions/size.js +1 -0
  632. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  633. package/dist/domain/extensions/sketching-draw.js +1 -0
  634. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  635. package/dist/domain/extensions/sketching-edit.js +1 -0
  636. package/dist/domain/extensions/summary-component.js +1 -0
  637. package/dist/domain/extensions/text-value.js +1 -0
  638. package/dist/domain/extensions/tool-controls.js +1 -0
  639. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  640. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  641. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  642. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  643. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  644. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  645. package/dist/domain/extensions/view-controls.js +1 -0
  646. package/dist/domain/index.d.ts +2 -30
  647. package/dist/domain/index.js +1 -1
  648. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  649. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  650. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +27 -21
  651. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  652. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  653. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  654. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  655. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  656. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  657. package/dist/domain/projections/collision-projections.d.ts +1 -1
  658. package/dist/domain/projections/composition-projections.d.ts +1 -1
  659. package/dist/domain/projections/composition-projections.js +1 -1
  660. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  661. package/dist/domain/projections/index.d.ts +1 -1
  662. package/dist/domain/projections/position-projections.d.ts +1 -1
  663. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  664. package/dist/domain/projections/snap-matching.d.ts +1 -2
  665. package/dist/domain/projections/snap-utils.d.ts +1 -2
  666. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  667. package/dist/domain/projections/validation-projections.d.ts +3 -20
  668. package/dist/domain/projections/validation-projections.js +1 -1
  669. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  670. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  671. package/dist/domain/system-components/admin-sidebar.js +1 -1
  672. package/dist/domain/system-components/angle-dimension.js +1 -1
  673. package/dist/domain/system-components/application-config.d.ts +1 -1
  674. package/dist/domain/system-components/application-config.js +1 -1
  675. package/dist/domain/system-components/attribute-selection.js +1 -1
  676. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  677. package/dist/domain/system-components/bounding-box-component.js +1 -1
  678. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  679. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  680. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  681. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  682. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  683. package/dist/domain/system-components/child-entity-selection.js +1 -1
  684. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  685. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  686. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  687. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  688. package/dist/domain/system-components/collision-geometry.js +1 -1
  689. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  690. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  691. package/dist/domain/system-components/common/index.d.ts +0 -4
  692. package/dist/domain/system-components/common/index.js +1 -1
  693. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  694. package/dist/domain/system-components/constraint.d.ts +1 -1
  695. package/dist/domain/system-components/constraint.js +1 -1
  696. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  697. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  698. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  699. package/dist/domain/system-components/detail.js +1 -1
  700. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  701. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  702. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  703. package/dist/domain/system-components/distance-dimension.js +1 -1
  704. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  705. package/dist/domain/system-components/drag-handle.js +1 -1
  706. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  707. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  708. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  709. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  710. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  711. package/dist/domain/system-components/generic-dimension.js +1 -1
  712. package/dist/domain/system-components/hidden-entity.js +1 -1
  713. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  714. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  715. package/dist/domain/system-components/index.d.ts +0 -68
  716. package/dist/domain/system-components/index.js +1 -1
  717. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  718. package/dist/domain/system-components/material-override-transformer.js +1 -1
  719. package/dist/domain/system-components/material-swatch.js +1 -1
  720. package/dist/domain/system-components/navigation-page.js +1 -1
  721. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  722. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  723. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  724. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  725. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  726. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  727. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  728. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  729. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  730. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  731. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  732. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  733. package/dist/domain/system-components/pivot-point.js +1 -1
  734. package/dist/domain/system-components/price.js +1 -1
  735. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  736. package/dist/domain/system-components/projected-entities.js +1 -1
  737. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  738. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  739. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  740. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  741. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  742. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  743. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  744. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  745. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  746. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  747. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  748. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  749. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  750. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  751. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  752. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  753. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  754. package/dist/domain/system-components/scene-entity-object.js +1 -1
  755. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  756. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  757. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  758. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  759. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  760. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  761. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  762. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  763. package/dist/domain/system-components/sketching-line.js +1 -1
  764. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  765. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  766. package/dist/domain/system-components/sketching.d.ts +1 -1
  767. package/dist/domain/system-components/sketching.js +1 -1
  768. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  769. package/dist/domain/system-components/snap-axis.js +1 -1
  770. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  771. package/dist/domain/system-components/snap-edge.js +1 -1
  772. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  773. package/dist/domain/system-components/snap-plane.js +1 -1
  774. package/dist/domain/system-components/snap-point.d.ts +1 -1
  775. package/dist/domain/system-components/snap-point.js +1 -1
  776. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  777. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  778. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  779. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  780. package/dist/domain/utils/eval-cache.d.ts +2 -3
  781. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  782. package/dist/domain/utils/memo-eval.d.ts +2 -4
  783. package/dist/editor/Editor.js +1 -1
  784. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  785. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  786. package/dist/editor/domain-editors/use-implementation-files.d.ts +12 -8
  787. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  788. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  789. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  790. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  791. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  792. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  793. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  794. package/dist/editor/variants/variant-preview-styles.js +1 -0
  795. package/dist/i18n/locales/cs/messages.js +1 -1
  796. package/dist/i18n/locales/da/messages.js +1 -1
  797. package/dist/i18n/locales/de/messages.js +1 -1
  798. package/dist/i18n/locales/de-AT/messages.js +1 -1
  799. package/dist/i18n/locales/en/messages.js +1 -1
  800. package/dist/i18n/locales/en-AU/messages.js +1 -1
  801. package/dist/i18n/locales/en-GB/messages.js +1 -1
  802. package/dist/i18n/locales/es/messages.js +1 -1
  803. package/dist/i18n/locales/fr/messages.js +1 -1
  804. package/dist/i18n/locales/hu/messages.js +1 -1
  805. package/dist/i18n/locales/it/messages.js +1 -1
  806. package/dist/i18n/locales/nl/messages.js +1 -1
  807. package/dist/i18n/locales/pl/messages.js +1 -1
  808. package/dist/i18n/locales/pt/messages.js +1 -1
  809. package/dist/i18n/locales/ro/messages.js +1 -1
  810. package/dist/i18n/locales/sk/messages.js +1 -1
  811. package/dist/i18n/locales/tr/messages.js +1 -1
  812. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  813. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  814. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  815. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  816. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  817. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  818. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  819. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  820. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +6 -0
  821. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  822. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  823. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  824. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  825. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  826. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  827. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  828. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  829. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  830. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  831. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  832. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  833. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  834. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  835. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  836. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  837. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  838. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  839. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  840. package/dist/phoenix/cli.js +1 -1
  841. package/dist/phoenix/commands/build.d.ts +5 -0
  842. package/dist/phoenix/commands/build.js +1 -1
  843. package/dist/phoenix/commands/deploy.js +2 -2
  844. package/dist/phoenix/commands/dev.js +5 -5
  845. package/dist/phoenix/commands/feedback.d.ts +2 -1
  846. package/dist/phoenix/commands/feedback.js +1 -1
  847. package/dist/phoenix/commands/index.d.ts +1 -0
  848. package/dist/phoenix/commands/index.js +1 -1
  849. package/dist/phoenix/commands/init.d.ts +4 -4
  850. package/dist/phoenix/commands/init.js +1 -1
  851. package/dist/phoenix/commands/login.d.ts +24 -6
  852. package/dist/phoenix/commands/login.js +2 -2
  853. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  854. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  855. package/dist/phoenix/commands/prettier.js +1 -1
  856. package/dist/phoenix/commands/story-dev.js +2 -2
  857. package/dist/phoenix/commands/variants.d.ts +35 -0
  858. package/dist/phoenix/commands/variants.js +1 -0
  859. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  860. package/dist/phoenix/editor-server/commands-router.js +1 -1
  861. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  862. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  863. package/dist/phoenix/editor-server/editor-server.js +1 -1
  864. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  865. package/dist/phoenix/editor-server/spec-router.js +1 -1
  866. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  867. package/dist/phoenix/scripts/build-admin.js +1 -1
  868. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  869. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  870. package/dist/phoenix/services/index.d.ts +5 -0
  871. package/dist/phoenix/services/index.js +1 -1
  872. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  873. package/dist/phoenix/services/phoenix-application.js +1 -0
  874. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  875. package/dist/phoenix/services/phoenix-store.js +1 -0
  876. package/dist/phoenix/services/phx-banner-plugin.d.ts +32 -0
  877. package/dist/phoenix/services/phx-banner-plugin.js +1 -0
  878. package/dist/phoenix/services/phx-licenses-plugin.d.ts +55 -0
  879. package/dist/phoenix/services/phx-licenses-plugin.js +8 -0
  880. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  881. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  882. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  883. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  884. package/dist/phoenix/services/variant-file-session.js +1 -0
  885. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  886. package/dist/phoenix/services/variant-preview-service.js +1 -0
  887. package/dist/phoenix/services/vite-config.d.ts +2 -0
  888. package/dist/phoenix/services/vite-config.js +1 -1
  889. package/dist/phoenix/utils/git/index.d.ts +1 -0
  890. package/dist/phoenix/utils/git/index.js +1 -0
  891. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  892. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  893. package/dist/phoenix/utils/index.d.ts +2 -0
  894. package/dist/phoenix/utils/index.js +1 -1
  895. package/dist/phoenix/utils/read-git-commit.d.ts +14 -0
  896. package/dist/phoenix/utils/read-git-commit.js +1 -0
  897. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  898. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  899. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  900. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  901. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  902. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  903. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  904. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +52 -40
  905. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +12 -9
  906. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  907. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  908. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  909. package/dist/ui-sdk/theme/types.d.ts +4 -0
  910. package/dist/webhook/builders/common.d.ts +8 -0
  911. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  912. package/dist/webhook/builders/webhook-builder.js +1 -1
  913. package/package.json +5 -8
  914. package/schema/domain-spec.json +24 -0
  915. package/dist/application-spec/generate-application/code/templates/agents-md.d.ts +0 -1
  916. package/dist/application-spec/generate-application/code/templates/agents-md.js +0 -2
  917. package/dist/application-spec/generate-application/code/templates/common/sdk-content.js +0 -67
  918. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  919. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  920. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  921. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  922. package/dist/application-spec/generate-application/code/templates/phoenix-cli-skill.js +0 -1
  923. package/dist/application-spec/generate-application/code/templates/phoenix-create-configurator-skill.js +0 -112
  924. package/dist/application-spec/generate-application/code/templates/phoenix-feedback-skill.js +0 -31
  925. package/dist/application-spec/generate-application/code/templates/phoenix-skill.js +0 -1
  926. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  927. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  928. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  929. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  930. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  931. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  932. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  933. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  934. package/dist/configurator/assistant/browser-details.js +0 -1
  935. package/dist/configurator/assistant/graphql-tools.js +0 -1
  936. package/dist/configurator/assistant/index.d.ts +0 -1
  937. package/dist/configurator/assistant/index.js +0 -1
  938. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  939. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  940. package/dist/domain/application/element-registration.js +0 -1
  941. package/dist/domain/application/handler-registration.js +0 -1
  942. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  943. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  944. package/dist/domain/components/debug-state-component.js +0 -1
  945. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  946. package/dist/domain/components/domain-component-optic.js +0 -16
  947. package/dist/domain/components/drag-state-component.js +0 -1
  948. package/dist/domain/components/export-state-component.js +0 -1
  949. package/dist/domain/components/fullscreen-state-component.js +0 -1
  950. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  951. package/dist/domain/components/hover-state-component.js +0 -1
  952. package/dist/domain/components/index.d.ts +0 -2
  953. package/dist/domain/components/index.js +0 -1
  954. package/dist/domain/components/navigation-state-component.js +0 -1
  955. package/dist/domain/components/selection-state-component.js +0 -1
  956. package/dist/domain/components/system-component-builder.js +0 -1
  957. package/dist/domain/components/system-virtual-entity.js +0 -1
  958. package/dist/domain/components/tool-state-component.js +0 -1
  959. package/dist/domain/components/view-state-component.js +0 -1
  960. package/dist/domain/components/viewport-state-component.js +0 -1
  961. package/dist/domain/core/expression.d.ts +0 -50
  962. package/dist/domain/core/json-schema.js +0 -1
  963. package/dist/domain/core/migrations.js +0 -1
  964. package/dist/domain/core/reflection.js +0 -1
  965. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  966. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  967. package/dist/domain/expressions/constant-expressions.js +0 -1
  968. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  969. package/dist/domain/expressions/custom-expression.js +0 -1
  970. package/dist/domain/expressions/index.d.ts +0 -1
  971. package/dist/domain/expressions/index.js +0 -1
  972. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  973. package/dist/domain/invariants/custom-invariants.js +0 -1
  974. package/dist/domain/invariants/invariants.d.ts +0 -68
  975. package/dist/domain/invariants/invariants.js +0 -1
  976. package/dist/domain/invariants/violation-component.js +0 -1
  977. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  978. package/dist/domain/relations/all-of-type-relation.js +0 -1
  979. package/dist/domain/relations/component-factories.js +0 -1
  980. package/dist/domain/relations/composed-of.js +0 -1
  981. package/dist/domain/relations/direct-relation.d.ts +0 -29
  982. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  983. package/dist/domain/relations/indirect-relation.js +0 -1
  984. package/dist/domain/relations/reference-component.js +0 -1
  985. package/dist/domain/relations/relation-factory.d.ts +0 -19
  986. package/dist/domain/relations/relation-factory.js +0 -1
  987. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  988. package/dist/domain/system-components/angle-indicator.js +0 -1
  989. package/dist/domain/system-components/attribute-switch.js +0 -1
  990. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  991. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  992. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  993. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  994. package/dist/domain/system-components/canvas-config.js +0 -1
  995. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  996. package/dist/domain/system-components/canvas-padding.js +0 -1
  997. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  998. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  999. package/dist/domain/system-components/client-side-image.js +0 -1
  1000. package/dist/domain/system-components/color-value.js +0 -1
  1001. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1002. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1003. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1004. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1005. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1006. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1007. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1008. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1009. package/dist/domain/system-components/entity-header.js +0 -1
  1010. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1011. package/dist/domain/system-components/finalize-action.js +0 -1
  1012. package/dist/domain/system-components/finalize-component.js +0 -1
  1013. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1014. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1015. package/dist/domain/system-components/fixed-header.js +0 -1
  1016. package/dist/domain/system-components/floating-header.js +0 -1
  1017. package/dist/domain/system-components/hidden-header.js +0 -1
  1018. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1019. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1020. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1021. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1022. package/dist/domain/system-components/navigation-steps.js +0 -1
  1023. package/dist/domain/system-components/offset-anchors.js +0 -1
  1024. package/dist/domain/system-components/offset-indicator.js +0 -1
  1025. package/dist/domain/system-components/offset.js +0 -1
  1026. package/dist/domain/system-components/other-action.js +0 -1
  1027. package/dist/domain/system-components/property-page.js +0 -1
  1028. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1029. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1030. package/dist/domain/system-components/rotatable.js +0 -1
  1031. package/dist/domain/system-components/rotation-handle.js +0 -1
  1032. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1033. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1034. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1035. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1036. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1037. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1038. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1039. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1040. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1041. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1042. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1043. package/dist/domain/system-components/selectable-component.js +0 -1
  1044. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1045. package/dist/domain/system-components/simple-summary.js +0 -1
  1046. package/dist/domain/system-components/size.js +0 -1
  1047. package/dist/domain/system-components/sketching-draw.js +0 -1
  1048. package/dist/domain/system-components/sketching-edit.js +0 -1
  1049. package/dist/domain/system-components/summary-component.js +0 -1
  1050. package/dist/domain/system-components/text-value.js +0 -1
  1051. package/dist/domain/system-components/tool-controls.js +0 -1
  1052. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1053. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1054. package/dist/domain/system-components/view-controls.js +0 -1
  1055. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  1056. package/dist/extras/assistant/AssistantChat.js +0 -1
  1057. package/dist/extras/assistant/index.d.ts +0 -1
  1058. package/dist/extras/assistant/index.js +0 -1
  1059. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1060. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1061. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.d.ts +0 -0
  1062. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.js +0 -0
  1063. /package/dist/application-spec/generate-application/code/templates/{phoenix-cli-skill.d.ts → skills/phoenix-cli-skill.d.ts} +0 -0
  1064. /package/dist/application-spec/generate-application/code/templates/{phoenix-feedback-skill.d.ts → skills/phoenix-feedback-skill.d.ts} +0 -0
  1065. /package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.d.ts → skills/phoenix-review-skill.d.ts} +0 -0
  1066. /package/dist/application-spec/generate-application/code/templates/{phoenix-skill.d.ts → skills/phoenix-skill.d.ts} +0 -0
  1067. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  1068. /package/dist/domain/{core/enhanced-json-schema.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  1069. /package/dist/domain/core/{expression.js → action/action.js} +0 -0
  1070. /package/dist/domain/core/{schema-validator.js → component/component-reader-types.js} +0 -0
  1071. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1072. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1073. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1074. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1075. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  1076. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  1077. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1078. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1079. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  1080. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1081. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1082. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1083. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1084. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1085. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  1086. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1087. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1088. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1089. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1090. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1091. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1092. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1093. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1094. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1095. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1096. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1097. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1098. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1099. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1100. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  1101. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1102. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1103. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1104. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  1105. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1106. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1107. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1108. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1109. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1110. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1111. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1112. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1113. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1114. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1115. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  1116. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1117. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  1118. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  1119. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1120. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1121. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1122. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1123. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1124. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1125. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1126. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1127. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1128. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -116,28 +116,9 @@ After running `pnpm lingui:compile`, your custom translations will override the
116
116
  - Adapt translations for your target audience
117
117
  - Maintain consistency with your existing product language
118
118
 
119
- **Frontend integration**:
120
-
121
- ```typescript
122
- import { configuratorBuilder } from 'project-domain'
123
- import { createI18n } from 'project-i18n'
124
-
125
- const i18n = createI18n()
126
-
127
- export const config = configuratorBuilder
128
- .withComponentOptics(customComponents)
129
- .withPresets(presets)
130
- .withI18n(i18n) // Register i18n service with configurator
131
- .buildConfig({
132
- features: {
133
- availableLocales: ['en', 'de', 'cs'],
134
- },
135
- services: {
136
- logger,
137
- },
138
- // ... other configuration
139
- })
140
- ```
119
+ **Frontend integration**: the generated `.phoenix` code creates the i18n service from `.phoenix/i18n.ts` and registers
120
+ it with the application, so there is nothing to wire by hand. The languages come from `availableLocales` in
121
+ `spec/application.yaml`.
141
122
 
142
123
  ## Working with YAML Domain Specifications
143
124
 
@@ -18,6 +18,8 @@ Each version defines its own:
18
18
 
19
19
  This versioning allows you to track changes over time and ensure proper migration paths.
20
20
 
21
+ The version number is not written anywhere: `latest` is the highest numbered version plus one, so a model with only `latest` is version 1. Once a version has been deployed it cannot change, because saved configurations depend on it. `phoenix deploy` refuses a model that differs from the one deployed under the same version, before anything is uploaded. To change a deployed model, keep it unchanged as `v<N>`, make the change in `latest` and add the migration to version N+1. Development environments replace the deployed model instead, so `phoenix dev` accepts every change.
22
+
21
23
  ## Model File Structure
22
24
 
23
25
  It's recommended to split your model versions into separate files for better maintainability:
@@ -39,9 +41,11 @@ The CLI generates separate TypeScript types for each version, which helps ensure
39
41
 
40
42
  ```typescript
41
43
  // The Migration type ensures you handle all entity types
42
- type Migration<FromEntity, ToEntity> = (state: FromEntity[]) => ToEntity[]
44
+ type Migration<FromEntity, ToEntity> = (state: readonly FromEntity[]) => readonly ToEntity[]
43
45
  ```
44
46
 
47
+ The types of each version are generated as global namespaces: `ModelV1`, `ModelV2`, and so on. `ModelV1.AnyDomainEntity` is the union of all entities of version 1, and `ModelV1.<EntityType>` is one of them. The admin model has its own namespaces, `AdminV1`, `AdminV2`, and so on. A migration needs no import for them.
48
+
45
49
  ## Migration File Location
46
50
 
47
51
  Migration files are organized in the `src/migrations/` directory with a specific naming convention:
@@ -63,11 +67,16 @@ Each migration file should export a function named `migrateToVN` where N is the
63
67
 
64
68
  ```typescript
65
69
  // src/migrations/v2.ts
66
- export const migrateToV2: Migration<V1Entity, V2Entity> = state => {
70
+ import type { Migration } from '@salsita-ai/sdk/domain'
71
+
72
+ export const migrateToV2: Migration<ModelV1.AnyDomainEntity, ModelV2.AnyDomainEntity> = state => {
67
73
  // Transform entities from v1 to v2
74
+ return state
68
75
  }
69
76
  ```
70
77
 
78
+ Keep the `Migration<...>` type on the export, with its `readonly` arrays: the generated domain file passes each migration to the migration builder, and a function typed with mutable arrays does not type-check there.
79
+
71
80
  **Note:** Migrations start from version 2. There is no migration TO v1 since v1 is the initial version. The first migration you write will be `migrateToV2`.
72
81
 
73
82
  The `ts-pattern` library is recommended for implementing migrations as it provides type-safe pattern matching.
@@ -77,11 +86,15 @@ The `ts-pattern` library is recommended for implementing migrations as it provid
77
86
  Migrations are implemented as functions that transform entities from one version to another. Each migration handles the transition between consecutive versions:
78
87
 
79
88
  ```typescript
80
- export const migrateToV4: Migration<V3Entity, V4Entity> = state => {
89
+ import { match } from 'ts-pattern'
90
+
91
+ import type { Migration } from '@salsita-ai/sdk/domain'
92
+
93
+ export const migrateToV4: Migration<ModelV3.AnyDomainEntity, ModelV4.AnyDomainEntity> = state => {
81
94
  return state.map(entity => {
82
95
  return (
83
96
  match(entity)
84
- .returnType<V4Entity>()
97
+ .returnType<ModelV4.AnyDomainEntity>()
85
98
  .with({ type: 'Burner' }, value => ({ ...value, y: 0 }))
86
99
  .with({ type: 'Cabinet' }, value => ({ ...value, y: 0 }))
87
100
  // ... handle other entities
@@ -91,6 +104,33 @@ export const migrateToV4: Migration<V3Entity, V4Entity> = state => {
91
104
  }
92
105
  ```
93
106
 
107
+ ### Renaming an Entity Type
108
+
109
+ An entity id starts with its entity type, such as `Box-1`, and is typed per entity type (`DomainEntityId<'Box'>`). The runtime validates that an entity's id matches its type, so an entity that keeps its data under a new type name needs a new id, and every relation that points at it must be rewritten to that id. The id is built from a string, which TypeScript cannot check, so this is one place where a cast is needed:
110
+
111
+ ```typescript
112
+ import { parseDomainEntityId } from '@salsita-ai/sdk/domain'
113
+
114
+ const toTableId = (id: ModelV1.Box['id']) =>
115
+ // The id is rebuilt for the new type name; nothing narrower than a cast can type a template string as an id
116
+ `Table-${parseDomainEntityId(id).sequenceNumber}` as ModelV2.Table['id']
117
+ ```
118
+
119
+ ### Replacing the Model Entirely
120
+
121
+ When the new model has nothing in common with the deployed one, there is nothing to convert. This is the case when a project that was first deployed as the starter gets its real model: the starter's `Box` model is version 1 in production, and a deployed version cannot change. Keep the deployed model as `v1`, define the real model in `latest`, and let the migration return the starting state of the new model, the `initialDomainEntities` of its preset:
122
+
123
+ ```typescript
124
+ // src/migrations/v2.ts
125
+ import type { Migration } from '@salsita-ai/sdk/domain'
126
+
127
+ export const migrateToV2: Migration<ModelV1.AnyDomainEntity, ModelV2.AnyDomainEntity> = () => [
128
+ // the entities of the new model's preset
129
+ ]
130
+ ```
131
+
132
+ No entity of a type that the new version no longer has may stay in the returned state: the migrated state is validated against the latest model, and an unknown entity type fails the load.
133
+
94
134
  ## Migration Runtime
95
135
 
96
136
  Migrations are executed automatically every time the domain is loaded, both in the client application and in webhooks. During this process:
@@ -114,7 +154,7 @@ When implementing migrations:
114
154
 
115
155
  4. **Testing**: Thoroughly test migrations with real-world data to ensure they handle all edge cases, use existing configurations from previous versions.
116
156
 
117
- 5. **Version Bumping**: Consider bumping the model version for both breaking changes (removing fields, changing types) and additive changes where existing data needs proper defaults. If you add a new required field, existing configurations need a migration to set that field's default value.
157
+ 5. **Version Bumping**: Every change to a model that has been deployed needs a new version, whether it is breaking (removing fields, changing types) or additive. If you add a new required field, existing configurations need a migration to set that field's default value; a change that needs no conversion still needs a migration that returns the state unchanged.
118
158
 
119
159
  ## Admin Model Migrations
120
160
 
@@ -29,10 +29,11 @@ pnpm phoenix dev
29
29
 
30
30
  1. Refuses to run when a `spec/` folder already exists, so it never touches an existing project.
31
31
  2. Writes a `package.json` that depends on the CLI's SDK version when the folder has none. An existing `package.json` is kept, as long as it depends on the SDK.
32
- 3. Writes a starter spec (`spec/application.yaml`, `spec/configurator.yaml`) with one resizable, recolorable box, and switches `package.json` to the application-spec pipeline.
33
- 4. Writes `pnpm-workspace.yaml` with the pnpm settings the first install needs: the build scripts of the SDK's dependencies are allowed or denied, and `@salsita-ai/*` packages are exempt from pnpm's minimum release age. A project inside a pnpm monorepo gets no file; the workspace root holds these settings.
32
+ 3. Adds the `dev`, `build`, `deploy`, `check` and `fix` scripts to `package.json` (see [Project Scripts](#project-scripts)). A script the project already has under one of those names keeps its command.
33
+ 4. Writes a starter spec (`spec/application.yaml`, `spec/configurator.yaml`) with one resizable, recolorable box, and switches `package.json` to the application-spec pipeline.
34
+ 5. Writes `pnpm-workspace.yaml` with the pnpm settings the first install needs: the build scripts of the SDK's dependencies are allowed or denied, and `@salsita-ai/*` packages are exempt from pnpm's minimum release age. A project inside a pnpm monorepo gets no file; the workspace root holds these settings.
34
35
 
35
- It asks nothing, writes no `.env` and contacts no server. `phoenix sync` then generates every other project file, including `AGENTS.md` and the agent skills described in [Project Structure](?path=/docs/phoenix-project-structure--docs).
36
+ It asks nothing, writes no `.env` and contacts no server. `phoenix sync` then generates every other project file, including the agent skills described in [Project Structure](?path=/docs/phoenix-project-structure--docs). The `.gitignore` is among them only when the folder is inside a git repository, so run `git init` before the first sync, or sync again after it.
36
37
 
37
38
  ### Which project `phoenix dev` develops in
38
39
 
@@ -114,8 +115,6 @@ For quick local development without a server, use:
114
115
 
115
116
  ```bash
116
117
  phoenix dev --persistence local-storage
117
- # or use the shortcut script:
118
- pnpm dev:local
119
118
  ```
120
119
 
121
120
  **Important:** The server must be running before `deployment:prepare-local` when using `server` persistence mode.
@@ -158,27 +157,19 @@ spec/application.yaml → Server prepares environment → CLI writes .env.genera
158
157
 
159
158
  ### Project Scripts
160
159
 
161
- When you run `phoenix sync` or `phoenix clean`, the CLI auto-generates standardized scripts in your `package.json`. These scripts are enforced — they cannot be overridden by custom scripts with the same name.
162
-
163
- | Script | Command | Purpose |
164
- | -------------------------- | ------------------------------------------------------- | --------------------------------------------- |
165
- | `dev` | `phoenix dev` | Dev server with hot reload |
166
- | `dev:local` | `phoenix dev --persistence local-storage` | Dev without server dependency |
167
- | `build` | `phoenix build` | Production build |
168
- | `clean` | `phoenix clean` | Clean all artifacts and rebuild |
169
- | `sync` | `phoenix sync` | Sync generated code and dependencies |
170
- | `check` | `phoenix check` | Run all checks (TypeScript, ESLint, Prettier) |
171
- | `ts:check` | `phoenix check` | Alias for `check` |
172
- | `fix` | `phoenix fix` | Auto-fix lint and formatting issues |
173
- | `lint:fix` | `eslint src --fix` | ESLint fix only |
174
- | `prettify:fix` | `prettier --write .` | Prettier fix only |
175
- | `verify:fix` | `phoenix build && phoenix fix && phoenix check --types` | Build, fix, then type-check |
176
- | `test` | `vitest --passWithNoTests run` | Run tests |
177
- | `test:watch` | `vitest` | Tests in watch mode |
178
- | `prepare:ci` | `phoenix prepare:ci` | CI environment setup |
179
- | `deployment:prepare-local` | `phoenix deployment:prepare-local` | Prepare local environment |
180
-
181
- Custom scripts you add to `package.json` are preserved during sync. Deprecated scripts (like `environment:create`, `deployment:register`) are automatically removed.
160
+ `phoenix init` writes five scripts into `package.json`, each a shortcut for the CLI command of the same name:
161
+
162
+ | Script | Command | Purpose |
163
+ | -------- | ---------------- | --------------------------------------------- |
164
+ | `dev` | `phoenix dev` | Dev server with hot reload |
165
+ | `build` | `phoenix build` | Production build |
166
+ | `deploy` | `phoenix deploy` | Build and publish the project |
167
+ | `check` | `phoenix check` | Run all checks (TypeScript, ESLint, Prettier) |
168
+ | `fix` | `phoenix fix` | Auto-fix lint and formatting issues |
169
+
170
+ The scripts are yours: change, rename or delete them, and add your own. `phoenix sync` and `phoenix clean` leave the `scripts` section of `package.json` as it is, so they add no script, restore none you removed and remove none. Every CLI command also runs without a script, as `pnpm phoenix <command>`.
171
+
172
+ A project may have other scripts than these five, such as `sync`, `test` or `verify:fix`; they are its own and stay as they are. All of this holds for a project on the application-spec pipeline, which `phoenix init` selects. In a project on the legacy pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `phoenix sync` and `phoenix clean` write their own set of scripts into `package.json` on every run, over scripts of the same name.
182
173
 
183
174
  ### Server-Generated Variables
184
175
 
@@ -257,11 +248,14 @@ The frontend reads these at runtime from the generated config:
257
248
  | Variable | Required | Default |
258
249
  | -------------------------------- | -------- | ----------------------- |
259
250
  | `IS_DEV` | No | `false` (`true` in dev) |
251
+ | `ASSISTANT_STRICT_THREADS` | No | `false` |
260
252
  | `AWS_S3_PUBLIC_RESOURCES_BUCKET` | Yes | — |
261
253
  | `AWS_S3_RESOURCES_REGION` | Yes | — |
262
254
  | `DEPLOYMENT_RESOURCES_PATH` | No | `deployment-resources` |
263
255
  | Clerk vars (if enabled) | Yes | — |
264
256
 
257
+ A development environment keeps the AI assistant's conversation when the assistant setup (manifest, instructions, AI settings) changes, and applies the new setup from the next message on. Set `ASSISTANT_STRICT_THREADS=true` in `.env` to try the behavior of every other environment locally, where a changed setup locks the conversation and the next message continues it in a summarized one. The variable has no effect outside a development environment.
258
+
265
259
  ### Precedence
266
260
 
267
261
  Environment variables are resolved in this order (highest to lowest priority):
@@ -283,20 +277,20 @@ The Phoenix CLI auto-generates config files that read these variables:
283
277
 
284
278
  Starts the full development environment: Vite dev server, development webhook tunnel, domain-cli watcher, and editor WebSocket server.
285
279
 
286
- | Flag | Env Variable | Default | Description |
287
- | ---------------------- | ------------------ | -------------------- | ------------------------------------------------------------------------------- |
288
- | `--workspace` | — | from `.phoenix.json` | Override workspace mode |
289
- | `--editor` | `ENABLE_EDITOR` | `true` | Enable editor file generation |
290
- | `--editorWsPort` | `EDITOR_WS_PORT` | `3020` | Editor WebSocket port |
291
- | `--debug` | `DEBUG` | `false` | Verbose logging |
292
- | `--projectSlug` | `PROJECT_SLUG` | `local` | Project slug |
293
- | `--environmentSlug` | `ENVIRONMENT_SLUG` | package.json name | Environment slug |
294
- | `--withLingui` | `WITH_LINGUI` | `false` | Enable i18n extraction/compilation and watch i18n sources during dev |
295
- | `--persistence` | `PERSISTENCE_MODE` | `server` | Persistence mode |
296
- | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
297
- | `--serverUrl` | `SERVER_URL` | the region's server | Phoenix server URL |
298
- | `--region` | `PHOENIX_REGION` | `eu` | Region of the signed-in workspace, used when no server URL is set |
299
- | `--skipUpload` / `-su` | `SKIP_UPLOAD` | `false` | Skip the S3 asset upload when the development deployment is prepared at startup |
280
+ | Flag | Env Variable | Default | Description |
281
+ | ----------------------- | ------------------ | -------------------- | ------------------------------------------------------------------------------- |
282
+ | `--workspace` | — | from `.phoenix.json` | Override workspace mode |
283
+ | `--editor` | `ENABLE_EDITOR` | `true` | Enable editor file generation |
284
+ | `--editorWsPort` | `EDITOR_WS_PORT` | `3020` | Editor WebSocket port |
285
+ | `--debug` | `DEBUG` | `false` | Verbose logging |
286
+ | `--projectSlug` | `PROJECT_SLUG` | `local` | Project slug |
287
+ | `--environmentSlug` | `ENVIRONMENT_SLUG` | package.json name | Environment slug |
288
+ | `--withLingui` | `WITH_LINGUI` | `false` | Enable i18n extraction/compilation and watch i18n sources during dev |
289
+ | `--persistence` | `PERSISTENCE_MODE` | `server` | Persistence mode |
290
+ | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
291
+ | `--serverUrl` | `SERVER_URL` | the region's server | Phoenix server URL |
292
+ | `--region` | `PHOENIX_REGION` | `eu` | Region of the signed-in workspace, used when no server URL is set |
293
+ | `--skipUpload` / `--su` | `SKIP_UPLOAD` | `false` | Skip the S3 asset upload when the development deployment is prepared at startup |
300
294
 
301
295
  In `server` persistence mode the project comes from `--projectSlug`, `PROJECT_SLUG` or `project` in the spec, and the credential from `DEVELOPMENT_KEY` or the `phoenix login` sign-in; see [Starting a New Project](#starting-a-new-project). When signed in, the environment is always your own development environment and `--environmentSlug` is ignored.
302
296
 
@@ -327,15 +321,49 @@ as restart-required unless their feature documentation explicitly states live-up
327
321
 
328
322
  Builds the project for production deployment.
329
323
 
330
- | Flag | Env Variable | Default | Description |
331
- | ---------------- | --------------- | ------- | ------------------------------ |
332
- | `--onlyFrontend` | — | — | Build only the frontend bundle |
333
- | `--onlyWebhook` | — | — | Build only webhooks |
334
- | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
335
- | `--debug` | `DEBUG` | `false` | Verbose logging |
324
+ | Flag | Env Variable | Default | Description |
325
+ | ----------------- | --------------- | ------- | --------------------------------------------------- |
326
+ | `--onlyFrontend` | — | — | Build only the frontend bundle |
327
+ | `--onlyWebhook` | — | — | Build only webhooks |
328
+ | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
329
+ | `--banner <text>` | — | — | Replaces the application line of the banner comment |
330
+ | `--debug` | `DEBUG` | `false` | Verbose logging |
336
331
 
337
332
  The build target can also be controlled via `BUILD_TARGET` env (`frontend`, `webhook`, or `both`).
338
333
 
334
+ #### Banner comment
335
+
336
+ Every JavaScript file the frontend build emits (the configurator, admin and embedded bundles, and the editor's entry and lazy chunks) starts with a comment that identifies the build, so `head -n 5 <bundle.js>` tells two deployed bundles of nearly the same size apart:
337
+
338
+ ```js
339
+ /*!
340
+ * App version: 1.2.3; Commit: 9fd79ce0f4c1a2b3d4e5f60718293a4b5c6d7e8f
341
+ * Built with Salsita SDK 3.4.0. Copyright (c) Salsita s.r.o. All rights reserved.
342
+ * Third-party licences: THIRD-PARTY-LICENSES.txt
343
+ */
344
+ ```
345
+
346
+ The first line is the application's. By default it holds `applicationVersion` from `spec/application.yaml` and the commit checked out in the project, read with `git rev-parse HEAD`. Where git cannot read a commit for the project (no checkout, git missing or refusing the repository, or the project's `package.json` is not tracked by the repository around it), the line holds the version only and `--debug` logs it; this is the case for a platform build from uploaded sources.
347
+
348
+ `--banner <text>` replaces that line with your own text, for example when CI knows a release name the spec does not:
349
+
350
+ ```sh
351
+ pnpm phoenix build --banner "Release: ${RELEASE_NAME}; Commit: ${COMMIT_SHA}"
352
+ ```
353
+
354
+ The line is **public**: it ships in every bundle. The default publishes the application version and the commit SHA; pass `--banner ""` to leave the line out, and never put a secret or internal detail in your own text. The text is written as comment text only. Each line of a multi-line value (or each repeated `--banner`) becomes its own comment line and `*/` is written as `*\/`. There is no environment-variable fallback, and the option has no effect on webhook output or with `--onlyWebhook`. Lazy chunks keep their hashed file name when only the banner text changes.
355
+
356
+ The banner and the licences file below are produced by the application-spec pipeline; the legacy pipeline's build ignores `--banner`.
357
+
358
+ #### Third-party licences
359
+
360
+ The frontend build writes `.phoenix/dist/frontend/THIRD-PARTY-LICENSES.txt` next to the bundles and the banner comment points to it. It lists every third-party package whose code or styles are in any of the frontend bundles, once each, sorted by name and version, with the package's version, the licence declared in its `package.json` and the text of its licence file (`LICENSE*`, `LICENCE*` or `COPYING*`). A package that ships no licence file is listed without the text. Your project's own source is not listed.
361
+
362
+ Deploy the file together with the bundles, so the notices those licences ask for travel with every copy. The build lists licences; it does not judge whether a licence suits your product. Two kinds of package are not in the list, so add their notices yourself when you use them:
363
+
364
+ - packages used only inside a web worker, which are bundled separately;
365
+ - packages a stylesheet reaches on its own, through CSS `@import`, Sass `@use` or `url()`. A stylesheet imported from JavaScript or TypeScript (`import 'some-font/index.css'`) is listed.
366
+
339
367
  #### Bundle-size budgets
340
368
 
341
369
  Application-spec projects can set gzip-size limits for the standalone configurator and webhook bundles. Add the optional `budgets` section to a spec YAML file:
@@ -362,6 +390,8 @@ Removes all build artifacts (`.phoenix/`, `node_modules/`), reinstalls dependenc
362
390
 
363
391
  Syncs project dependencies and regenerates all project files without building Vite bundles or webhooks. Faster than `clean` — use this for routine updates after changing spec files or upgrading dependencies. Before installing, it adds the pnpm settings `phoenix init` writes to a standalone project's `pnpm-workspace.yaml` when they are missing; values you set there are kept.
364
392
 
393
+ With the application-spec pipeline (see [Current and legacy project tooling](#current-and-legacy-project-tooling)), `.gitignore` is written only when the project is inside a git repository: the project folder or one of its parent folders holds a `.git` entry. Outside a repository, sync neither creates the file nor changes one that is already there, and the same holds for `dev`, `build` and `clean`. Run `git init` before the first sync, or sync again after it, to get the file. The legacy pipeline writes `.gitignore` in every project.
394
+
365
395
  | Flag | Env Variable | Default | Description |
366
396
  | ---------------- | --------------- | ------- | ------------------------------ |
367
397
  | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
@@ -457,6 +487,85 @@ phoenix screenshot -o preview.png -w 1920 --height 1080
457
487
  | `--height` | `1080` | Image height in pixels |
458
488
  | `--format` / `-f` | `png` | Image format (`png` or `jpeg`) |
459
489
 
490
+ ### `phoenix variants`
491
+
492
+ Show several options over the configurator and wait for your pick. It is built for coding agents: when a decision is a matter of taste, such as the edge of a table top, how glossy a finish is or where a control sits, the agent writes one file per option, you choose in the browser, and the command hands your answer back to the agent.
493
+
494
+ ```bash
495
+ phoenix variants .phoenix/variants/table-edge --title 'Which edge suits the table?' --description 'Only the edge of the top differs.'
496
+ ```
497
+
498
+ Every `<id>.variant.js` script or `<id>.html` page in the folder is one option, shown in file-name order. Each script edits frontend project files on top of the same captured baseline. Original is always the first choice and restores that baseline. Switching options removes the previous option's edits and applies the selected script; the editor dialog has any number of choices on the left and your already loaded configurator on the right.
499
+
500
+ ```js
501
+ // .phoenix/variants/brand/blue.variant.js
502
+ export const title = 'Blue brand'
503
+ export const description = 'A blue primary colour with the current layout.'
504
+
505
+ export default ({ read, write, remove }) => {
506
+ const file = 'src/handlers/theme.ts'
507
+ write(file, read(file).replace("main: '#E93335'", "main: '#2364aa'"))
508
+ }
509
+ ```
510
+
511
+ `read(path)` always reads the baseline. `write(path, contents)` replaces or creates a file; `remove(path)` deletes it. Scripts run in the browser and collect edits; Phoenix validates and writes the batch locally. Supported files are YAML under `spec/` outside `spec/admin/`, and TypeScript under `src/components`, `transformers`, `handlers`, `elements` and `_`-prefixed shared folders. Expressions, actions and invariants also run on the server, so a script cannot edit them.
512
+
513
+ For standalone UI or branding proposals, write self-contained HTML files. Each page renders in its own iframe when selected; its `<title>` names the option and `<meta name="description" content="...">` describes it. HTML and scripts may share a set if their file names give distinct option ids.
514
+
515
+ ```html
516
+ <!-- .phoenix/variants/brand/blue.html -->
517
+ <!doctype html>
518
+ <title>Blue studio</title>
519
+ <meta name="description" content="A calm blue identity with generous spacing." />
520
+ <style>
521
+ body {
522
+ margin: 0;
523
+ padding: 40px;
524
+ background: #f0f5fa;
525
+ color: #163b66;
526
+ font-family: sans-serif;
527
+ }
528
+ </style>
529
+ <h1>Made for your everyday.</h1>
530
+ <button>Design your table</button>
531
+ ```
532
+
533
+ Scripts run once per selection. The completed file batch calls the existing rebuild queue directly, without a separate file-change event stream or a watcher that reapplies the option.
534
+
535
+ Use script options for controls, layout, brand, lights, visual effects, materials, positions, components, elements and transformers. Changes to the model, schemas, data or deployment settings are rejected before any files are written. Environment files, webhooks, their shared implementation dependencies, dependencies and uploaded assets cannot be overridden. Files connected through symbolic links are also excluded, so restoring the baseline preserves the original files. No server preparation or webhook rebuild runs for a variant transaction.
536
+
537
+ Picking a script keeps its exact implementation in the project. Picking an HTML page returns the selected proposal for the agent to implement; the page itself changes no project source files. Choosing Original keeps the captured baseline. Users finish by confirming Original or another option. Escape stays available to the configurator, and clicking the backdrop leaves the comparison open. The agent can use `--close` to restore the baseline source files without giving an answer. Phoenix records recovery information on disk and restores interrupted previews at the next `phoenix dev` start. It never overwrites a file edited outside the preview: switching options over such an edit is refused, and when the comparison ends, or is restored at the next start, that file is left as it is with a warning in the dev log while the others are restored. Other source changes made while a comparison is open are rebuilt once it ends.
538
+
539
+ Answers are held for four seconds with Undo and Send now.
540
+
541
+ The command prints the outcome as JSON. After `chosen` it removes the folder:
542
+
543
+ | `status` | Meaning |
544
+ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
545
+ | `chosen` | An option was picked: `choice` is its id, or `null` for Original; `label` is its name. |
546
+ | `waiting` | The wait ran out. The preview stays open: the same command attaches to it again, and an answer given in between is returned by the next run. |
547
+ | `closed` | The preview was closed without an answer, by `--close` or by another set of options taking its place. The folder is kept. |
548
+
549
+ | Flag | Default | Description |
550
+ | ---------------------- | ----------------------------- | --------------------------------------------------------- |
551
+ | `--title` / `-t` | `Which option do you prefer?` | Question shown above the options |
552
+ | `--description` / `-d` | — | A line saying what differs between the options |
553
+ | `--timeout` | `540` | Seconds to wait for the answer |
554
+ | `--keep` | `false` | Keep the folder after the answer |
555
+ | `--close` | `false` | Close the open preview without an answer; needs no folder |
556
+ | `--port` / `-p` | `3020` | Editor WebSocket port |
557
+
558
+ Known limits:
559
+
560
+ - Variant transactions start rebuilding immediately, bypassing the normal file-watcher debounce. Hot reload still needs to parse and apply the updated implementation. There is no wait for UI or scene loading to settle; allow a visible transition to finish before judging or choosing.
561
+ - Only one option is displayed at a time; simultaneous comparison is not supported.
562
+ - For script options and Original, the dialog moves the existing configurator into the preview and returns it on close, preserving the loaded scene, camera and UI state. Opening the dialog starts no second application or initial loading screen. Configuration interactions still change the current configuration; restoring source files does not undo them.
563
+ - Custom scripts are trusted project code. Their file API stages edits; scripts must not make network requests or other side effects.
564
+ - Binary assets, CSS files, locale catalog changes, dependency changes and edits requiring a full application restart are unsupported.
565
+ - Storybook `story-dev` has no variant previews. A project on the legacy pipeline has no variant previews; the command says so and exits.
566
+
567
+ Generated projects carry the `phoenix-variants` agent skill, which tells coding agents when to offer options, how to write each kind and what to do with your answer.
568
+
460
569
  ## SDK Development
461
570
 
462
571
  ### `phoenix link`
@@ -569,18 +678,20 @@ SDK-builder workspaces sign the CLI in with a personal API token instead of proj
569
678
 
570
679
  Signs the CLI in to the SDK-builder workspace `<customer>`:
571
680
 
572
- 1. Opens Studio, where you approve the sign-in (use `--no-open` to only print the link).
681
+ 1. Opens Studio, where you name the token and approve the sign-in (use `--no-open` to only print the link). Only a super admin of the workspace can open its Studio, so only a super admin can sign the CLI in. The page shows the workspace, your account, the computer the CLI runs on and how long the link still works. The CLI suggests the name `phoenix CLI on <computer>`; change it so you can tell your machines and agents apart later.
573
682
  2. Studio sends a one-time code back to the CLI on `127.0.0.1`.
574
- 3. The CLI exchanges the code for a token.
683
+ 3. The CLI exchanges the code for a token with the name you approved, and sends the browser back to Studio, which confirms the sign-in.
684
+
685
+ **Deny** in Studio stops the CLI at once: it exits with `The sign-in was denied in Studio` and no token is created. The link works for five minutes and only for the CLI that printed it; after that, Studio shows that it no longer works and the CLI gives up.
575
686
 
576
687
  The token is stored in `~/.phoenix/credentials.json`, readable only by you, per server, together with the Studio URL of the sign-in; `PHOENIX_CREDENTIALS_FILE` moves the file. The token works until you revoke it. Signing in again to the same server revokes the token it replaces; the CLI warns if the server could not revoke it.
577
688
 
578
- | Flag | Default | Description |
579
- | --------------------- | ------------------------------------ | ------------------------------------------------ |
580
- | `--region` | `eu` | Phoenix region of the workspace: `eu` or `us` |
581
- | `--serverUrl` / `-su` | the region's server | Phoenix server URL, for a local or custom server |
582
- | `--studioUrl` | the workspace's Studio in the region | Studio URL of the workspace |
583
- | `--open` | `true` | Open the approval page in your browser |
689
+ | Flag | Default | Description |
690
+ | ---------------------- | ------------------------------------ | ------------------------------------------------ |
691
+ | `--region` | `eu` | Phoenix region of the workspace: `eu` or `us` |
692
+ | `--serverUrl` / `--su` | the region's server | Phoenix server URL, for a local or custom server |
693
+ | `--studioUrl` | the workspace's Studio in the region | Studio URL of the workspace |
694
+ | `--open` | `true` | Open the approval page in your browser |
584
695
 
585
696
  The sign-in follows the region, not the `SERVER_URL` in a project's `.env`: that variable names the server of the project's own environment. The CLI prints the server it signs in to.
586
697
 
@@ -592,28 +703,32 @@ Revokes the token on the server and removes it from the credentials file. `--reg
592
703
 
593
704
  ### `phoenix deploy`
594
705
 
595
- Validates the spec, adds the pnpm settings `phoenix init` writes to `pnpm-workspace.yaml` when they are missing, packs and uploads the project, starts its build on the server and follows it until the configurator is live. Once the build starts it prints `Follow the build in Studio: <url>`, the build's page in the Studio you signed in through; a sign-in stored by an older CLI has no Studio URL, so sign in again to get the link. `--region` or `--serverUrl` selects the server, as for `login`; `--no-wait` returns as soon as the build starts.
706
+ Validates the spec, adds the pnpm settings `phoenix init` writes to `pnpm-workspace.yaml` when they are missing, packs and uploads the project, starts its build on the server and follows it until the configurator is live. Before the upload the server compares the domain model with the deployed one: a model that changed under an already deployed model version is refused with the reason, and needs a new model version and a [migration](?path=/docs/phoenix-migrations--docs). Once the build starts it prints `Follow the build in Studio: <url>`, the build's page in the Studio you signed in through; a sign-in stored by an older CLI has no Studio URL, so sign in again to get the link. After `Your configurator is live at <url>` it prints one line for coding agents, which tells them to offer the run evaluation of the `phoenix-feedback` skill once you have nothing more to build; you can ignore it when you run the command yourself. `--region` or `--serverUrl` selects the server, as for `login`; `--no-wait` returns as soon as the build starts.
596
707
 
597
- ### `phoenix feedback <message>`
708
+ ### `phoenix feedback [message]`
598
709
 
599
710
  Sends feedback about the SDK, the CLI, the documentation or Studio to the Phoenix team. It needs `phoenix login`: the server records the workspace, user and API token of the sign-in, so the message itself needs no introduction.
600
711
 
601
712
  ```bash
602
713
  phoenix feedback "phoenix build reports a missing entity when a module file is empty" --type bug
714
+ phoenix feedback --file report.txt --type bug
603
715
  ```
604
716
 
605
- | Flag | Env | Default | Description |
606
- | ---------------------- | -------------- | ----------------------------- | ---------------------------------------------------- |
607
- | `--type` | — | `other` | What the feedback is about: `bug`, `idea` or `other` |
608
- | `--contact` | — | — | How to reach you, when you want a reply |
609
- | `--agent` | — | — | Name of the coding agent that writes the feedback |
610
- | `--projectSlug` / `-p` | `PROJECT_SLUG` | `project` of the spec, if any | Workspace project the feedback is about |
611
- | `--region` | — | `eu` | Phoenix region of the workspace: `eu` or `us` |
612
- | `--serverUrl` / `-su` | — | the region's server | Phoenix server URL, for a local or custom server |
717
+ Pass the message as the argument for a short note, or `--file` for a longer report: the content of the file is the message, read as UTF-8, so quotes, backticks and new lines arrive unchanged. Giving both, or neither, is an error.
718
+
719
+ | Flag | Env | Default | Description |
720
+ | ---------------------- | -------------- | ----------------------------- | --------------------------------------------------------- |
721
+ | `--file` | — | — | Text file that holds the message, instead of the argument |
722
+ | `--type` | — | `other` | What the feedback is about: `bug`, `idea` or `other` |
723
+ | `--contact` | — | — | How to reach you, when you want a reply |
724
+ | `--agent` | — | — | Name of the coding agent that writes the feedback |
725
+ | `--projectSlug` / `-p` | `PROJECT_SLUG` | `project` of the spec, if any | Workspace project the feedback is about |
726
+ | `--region` | — | `eu` | Phoenix region of the workspace: `eu` or `us` |
727
+ | `--serverUrl` / `--su` | — | the region's server | Phoenix server URL, for a local or custom server |
613
728
 
614
- A message holds at most 5000 characters. Besides the message and the flags, the CLI sends only the SDK version, the operating system and the Node.js version; nothing of the project's files is attached. The project must belong to the signed-in workspace, otherwise the server refuses the feedback; without a project, the feedback is sent on its own.
729
+ A message holds at most 100,000 characters, from the argument or from the file. Besides the message and the flags, the CLI sends only the SDK version, the operating system and the Node.js version; no file of the project is attached, and the Phoenix team reads a build's sources through the build's page in Studio. The project must belong to the signed-in workspace, otherwise the server refuses the feedback; without a project, the feedback is sent on its own.
615
730
 
616
- Generated projects carry the `phoenix-feedback` agent skill. It tells coding agents when to draft feedback, to show you the draft and send it only after you approve it, and what must never go into it: secrets, customer data and the project's source. The command needs a server with API 1.40.0 or newer.
731
+ Generated projects carry the `phoenix-feedback` agent skill. It tells coding agents when to draft feedback, to show you the draft and send it only after you approve it, and how to write a report: the build id with its Studio page link, the live configurator link, what the agent was doing, what happened and what was expected, the exact error or output, the workaround and a condensed conversation log. When you say you are done, or a deploy went live and you confirm the run is finished, the agent asks you to evaluate the run, one question at a time: minutes spent, then a score from 0 to 10 for the agent's guidance, the configurator's functionality, its UX, the quality of the 3D, the UI visuals and the overall result, then your comments. It never picks a score for you and sends nothing when you decline. Secrets, credentials and personal data never go into a message; file paths, spec and code snippets and your own words may, once you approved the draft that contains them. The command needs a server with API 1.40.0 or newer; a message over 5000 characters needs API 1.43.0 or newer.
617
732
 
618
733
  ## Next Steps
619
734