@salsita-ai/sdk 0.50.0-develop.6d8967bc99 → 0.50.0-develop.70dc8d05b6

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 (670) hide show
  1. package/README.md +3 -3
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  4. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  5. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  6. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  7. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  8. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  9. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  10. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  11. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  12. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  13. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  14. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  15. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  16. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  17. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  18. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  19. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  20. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  21. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  22. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -7
  23. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  24. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  25. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  26. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +8 -2
  27. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -14
  28. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  29. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  30. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  31. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  32. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  33. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  34. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  35. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  36. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  37. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  38. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  39. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  40. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  41. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  42. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  43. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  44. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  45. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  46. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  47. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  48. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  49. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  50. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  51. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  52. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  53. package/dist/client/authorized-client.d.ts +3 -1
  54. package/dist/client/authorized-client.js +1 -1
  55. package/dist/client/contract.d.ts +34 -0
  56. package/dist/client/contract.js +1 -1
  57. package/dist/client/index.d.ts +2 -2
  58. package/dist/client/index.js +1 -1
  59. package/dist/client/local-authorized-client.d.ts +3 -1
  60. package/dist/client/local-authorized-client.js +1 -1
  61. package/dist/client/memory-authorized-client.d.ts +3 -1
  62. package/dist/client/memory-authorized-client.js +1 -1
  63. package/dist/client/phoenix-api.d.ts +215 -2
  64. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  65. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  66. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  67. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -3
  68. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  69. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  70. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +14 -4
  71. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  72. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  73. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  74. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  75. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  76. package/dist/configurator/common/configurator-interface.d.ts +5 -1
  77. package/dist/configurator/common/configurator-interface.js +1 -1
  78. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  79. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  80. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  81. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  82. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  83. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  84. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  85. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  86. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  87. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -75
  88. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  89. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  90. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.d.ts +92 -0
  91. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +16 -0
  92. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  93. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  94. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  95. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  96. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  97. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  98. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  99. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  100. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  101. package/dist/docs/index.json +11 -1
  102. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  103. package/dist/docs/layouts/custom-layout.mdx +981 -0
  104. package/dist/docs/other-features/side-effects.mdx +8 -11
  105. package/dist/docs/other-features/violation-messages.mdx +52 -56
  106. package/dist/docs/phoenix/configurator-interface.mdx +105 -65
  107. package/dist/docs/phoenix/deployments.mdx +1 -1
  108. package/dist/docs/phoenix/domain-model.mdx +4 -0
  109. package/dist/docs/phoenix/expression-context.mdx +11 -3
  110. package/dist/docs/phoenix/getting-started.mdx +1 -1
  111. package/dist/docs/phoenix/phoenix-cli.mdx +43 -47
  112. package/dist/docs/phoenix/project-structure.mdx +16 -10
  113. package/dist/docs/phoenix/quickstart.mdx +2 -2
  114. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  115. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  116. package/dist/docs/phoenix/webhooks.mdx +2 -2
  117. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  118. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  119. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  120. package/dist/domain/admin-domain/index.d.ts +8 -3
  121. package/dist/domain/admin-domain/index.js +1 -1
  122. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  123. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  124. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  125. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  126. package/dist/domain/application/application-config.d.ts +7 -26
  127. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  128. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  129. package/dist/domain/application/assistant/assistant-manifest.d.ts +11 -1
  130. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  131. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  132. package/dist/domain/application/assistant/assistant-value-type.js +1 -1
  133. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  134. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  135. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  136. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  137. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  138. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -11
  139. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  140. package/dist/domain/application/assistant/index.d.ts +6 -1
  141. package/dist/domain/application/assistant/index.js +1 -1
  142. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  143. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  144. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  145. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  146. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  147. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  148. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  149. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  150. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  151. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  152. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  153. package/dist/domain/application/assistant-mutations.js +1 -1
  154. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  155. package/dist/domain/application/configurator-builder.d.ts +2 -2
  156. package/dist/domain/application/configurator-builder.js +1 -1
  157. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  158. package/dist/domain/application/index.d.ts +2 -6
  159. package/dist/domain/application/index.js +1 -1
  160. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  161. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  162. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  163. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  164. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  165. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  166. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  167. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  168. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  169. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  170. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  171. package/dist/domain/available-system-components.js +1 -1
  172. package/dist/domain/core/action/action-factory.d.ts +11 -0
  173. package/dist/domain/core/{action.d.ts → action/action.d.ts} +21 -16
  174. package/dist/domain/core/action/index.d.ts +2 -0
  175. package/dist/domain/core/action/index.js +1 -0
  176. package/dist/domain/core/component/domain-component-optic.d.ts +29 -40
  177. package/dist/domain/core/component/domain-component-optic.js +2 -2
  178. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  179. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  180. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  181. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  182. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  183. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  184. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  185. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  186. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  187. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  188. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  189. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  190. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  191. package/dist/domain/core/data-schema/data-schema.js +1 -0
  192. package/dist/domain/core/data-schema/index.d.ts +7 -0
  193. package/dist/domain/core/data-schema/index.js +1 -0
  194. package/dist/domain/core/domain-factory.d.ts +1 -1
  195. package/dist/domain/core/domain.d.ts +2 -2
  196. package/dist/domain/core/emission/index.d.ts +8 -0
  197. package/dist/domain/core/emission/index.js +1 -0
  198. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  199. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  200. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  201. package/dist/domain/core/emission/state-emission.js +1 -0
  202. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  203. package/dist/domain/core/emission/state-update-emission.js +1 -0
  204. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  205. package/dist/domain/core/emission/state-validation-result.js +1 -0
  206. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  207. package/dist/domain/core/emission/transformation-log.js +1 -0
  208. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  209. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  210. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  211. package/dist/domain/core/emission/transformer-log.js +1 -0
  212. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  213. package/dist/domain/core/emission/transformer-phase.js +1 -0
  214. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  215. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  216. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  217. package/dist/domain/core/expression/constant-expressions.js +1 -1
  218. package/dist/domain/core/expression/custom-expression.d.ts +21 -8
  219. package/dist/domain/core/expression/custom-expression.js +1 -1
  220. package/dist/domain/core/expression/expression.d.ts +15 -17
  221. package/dist/domain/core/expression/index.d.ts +1 -2
  222. package/dist/domain/core/expression/index.js +1 -1
  223. package/dist/domain/core/index.d.ts +5 -1
  224. package/dist/domain/core/index.js +1 -1
  225. package/dist/domain/core/invariant/custom-invariants.d.ts +8 -16
  226. package/dist/domain/core/invariant/index.d.ts +1 -1
  227. package/dist/domain/core/invariant/index.js +1 -1
  228. package/dist/domain/core/invariant/invariants.d.ts +4 -70
  229. package/dist/domain/core/invariant/invariants.js +1 -1
  230. package/dist/domain/core/invariant/violation.d.ts +1 -1
  231. package/dist/domain/core/recipe/index.d.ts +1 -0
  232. package/dist/domain/core/recipe/index.js +1 -0
  233. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  234. package/dist/domain/core/recipe/recipes.js +1 -0
  235. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  236. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  237. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -1
  238. package/dist/domain/core/relation/component-factories.js +1 -0
  239. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  240. package/dist/domain/core/relation/composed-of.js +1 -0
  241. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  242. package/dist/domain/core/relation/index.d.ts +8 -0
  243. package/dist/domain/core/relation/index.js +1 -0
  244. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  245. package/dist/domain/core/relation/indirect-relation.js +1 -0
  246. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -3
  247. package/dist/domain/core/relation/reference-component.js +1 -0
  248. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  249. package/dist/domain/core/relation/reference-field.js +1 -0
  250. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  251. package/dist/domain/core/relation/relation-factory.js +1 -0
  252. package/dist/domain/core/state/migrations.d.ts +14 -45
  253. package/dist/domain/core/state/migrations.js +1 -1
  254. package/dist/domain/core/state/state.d.ts +1 -1
  255. package/dist/domain/domain-builder.d.ts +2 -5
  256. package/dist/domain/domain-builder.js +1 -1
  257. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  258. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  259. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  260. package/dist/domain/domain-context/action-system/index.js +1 -0
  261. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  262. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  263. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  264. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  265. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  266. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  267. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  268. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  269. package/dist/domain/domain-context/index.d.ts +8 -18
  270. package/dist/domain/domain-context/index.js +1 -1
  271. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  272. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  273. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  274. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  275. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  276. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  277. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  278. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -3
  279. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  280. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  281. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  282. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  283. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  284. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  285. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  286. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  287. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  288. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  289. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  290. package/dist/domain/domain-context/store-system/index.js +1 -0
  291. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  292. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  293. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  294. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  295. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  296. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  297. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  298. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  299. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  300. package/dist/domain/domain-context/transformers/context.js +1 -1
  301. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  302. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  303. package/dist/domain/domain-context/transformers/index.js +1 -1
  304. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  305. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  306. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  307. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  308. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  309. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  310. package/dist/domain/domain-runtime/access/types.js +1 -1
  311. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  312. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  313. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  314. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  315. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  316. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  317. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  318. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  319. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -23
  320. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  321. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  322. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  323. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  324. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  325. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  326. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  327. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  328. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  329. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  330. package/dist/domain/domain-runtime/errors/index.js +1 -0
  331. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  332. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  333. package/dist/domain/domain-runtime/index.d.ts +1 -0
  334. package/dist/domain/domain-runtime/index.js +1 -1
  335. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  336. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  337. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  338. package/dist/domain/domain-runtime/spec/index.js +1 -1
  339. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  340. package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  341. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  342. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  343. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  344. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  345. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  346. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  347. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  348. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  349. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  350. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  351. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  352. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  353. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  354. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  355. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  356. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  357. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  358. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  359. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  360. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  361. package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  362. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  363. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  364. package/dist/domain/domain-runtime/spec/types.d.ts +3 -2
  365. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +1 -1
  366. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  367. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  368. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  369. package/dist/domain/extensions/common/index.d.ts +4 -0
  370. package/dist/domain/extensions/common/index.js +1 -0
  371. package/dist/domain/{system-components → extensions}/custom-header.d.ts +1 -1
  372. package/dist/domain/extensions/custom-header.js +1 -0
  373. package/dist/domain/{system-components → extensions}/custom-price-footer.js +1 -1
  374. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +1 -1
  375. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  376. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +2 -1
  377. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  378. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +2 -1
  379. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  380. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +2 -1
  381. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  382. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +2 -1
  383. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  384. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  385. package/dist/domain/extensions/entity-header.js +1 -0
  386. package/dist/domain/{system-components → extensions}/finalize-component.js +1 -1
  387. package/dist/domain/extensions/index.d.ts +69 -0
  388. package/dist/domain/extensions/index.js +1 -0
  389. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +2 -1
  390. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  391. package/dist/domain/{system-components → extensions}/property-page.d.ts +1 -1
  392. package/dist/domain/extensions/property-page.js +1 -0
  393. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +1 -1
  394. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  395. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  396. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  397. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  398. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  399. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  400. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  401. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  402. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  403. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  404. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  405. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  406. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  407. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +1 -1
  408. package/dist/domain/extensions/sketching-edit.js +1 -0
  409. package/dist/domain/{system-components → extensions}/summary-component.js +1 -1
  410. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +1 -1
  411. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  412. package/dist/domain/{system-components → extensions}/toolbar.d.ts +1 -1
  413. package/dist/domain/extensions/toolbar.js +1 -0
  414. package/dist/domain/index.d.ts +2 -8
  415. package/dist/domain/index.js +1 -1
  416. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  417. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  418. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  419. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  420. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  421. package/dist/domain/mocks/create-mock-domain.js +1 -1
  422. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  423. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  424. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  425. package/dist/domain/projections/collision-projections.d.ts +1 -1
  426. package/dist/domain/projections/composition-projections.d.ts +1 -1
  427. package/dist/domain/projections/composition-projections.js +1 -1
  428. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  429. package/dist/domain/projections/index.d.ts +1 -1
  430. package/dist/domain/projections/position-projections.d.ts +1 -1
  431. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  432. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  433. package/dist/domain/projections/validation-projections.d.ts +3 -19
  434. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  435. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  436. package/dist/domain/system-components/common/index.d.ts +0 -4
  437. package/dist/domain/system-components/common/index.js +1 -1
  438. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  439. package/dist/domain/system-components/index.d.ts +0 -68
  440. package/dist/domain/system-components/index.js +1 -1
  441. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  442. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  443. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  444. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  445. package/dist/domain/utils/eval-cache.d.ts +1 -1
  446. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  447. package/dist/domain/utils/memo-eval.d.ts +2 -2
  448. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  449. package/dist/editor/mocks/EditorMockContext.js +1 -1
  450. package/dist/i18n/locales/cs/messages.js +1 -1
  451. package/dist/i18n/locales/da/messages.js +1 -1
  452. package/dist/i18n/locales/de/messages.js +1 -1
  453. package/dist/i18n/locales/de-AT/messages.js +1 -1
  454. package/dist/i18n/locales/en/messages.js +1 -1
  455. package/dist/i18n/locales/en-AU/messages.js +1 -1
  456. package/dist/i18n/locales/en-GB/messages.js +1 -1
  457. package/dist/i18n/locales/es/messages.js +1 -1
  458. package/dist/i18n/locales/fr/messages.js +1 -1
  459. package/dist/i18n/locales/hu/messages.js +1 -1
  460. package/dist/i18n/locales/it/messages.js +1 -1
  461. package/dist/i18n/locales/nl/messages.js +1 -1
  462. package/dist/i18n/locales/pl/messages.js +1 -1
  463. package/dist/i18n/locales/pt/messages.js +1 -1
  464. package/dist/i18n/locales/ro/messages.js +1 -1
  465. package/dist/i18n/locales/sk/messages.js +1 -1
  466. package/dist/i18n/locales/tr/messages.js +1 -1
  467. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  468. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  469. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  470. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  471. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  472. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  473. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  474. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  475. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  476. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  477. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  478. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  479. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  480. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  481. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  482. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  483. package/dist/phoenix/commands/init.d.ts +4 -4
  484. package/dist/phoenix/commands/init.js +1 -1
  485. package/dist/phoenix/commands/prettier.js +1 -1
  486. package/dist/phoenix/utils/git/index.d.ts +1 -0
  487. package/dist/phoenix/utils/git/index.js +1 -0
  488. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  489. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  490. package/dist/phoenix/utils/index.d.ts +1 -0
  491. package/dist/phoenix/utils/index.js +1 -1
  492. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  493. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  494. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  495. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  496. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  497. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  498. package/dist/react-sdk/domain-context/index.d.ts +1 -1
  499. package/dist/react-sdk/domain-context/index.js +1 -1
  500. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  501. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  502. package/dist/ui-sdk/theme/types.d.ts +1 -1
  503. package/dist/webhook/builders/common.d.ts +5 -0
  504. package/dist/webhook/builders/webhook-builder.js +1 -1
  505. package/package.json +3 -3
  506. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  507. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  508. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  509. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  510. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  511. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  512. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  513. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  514. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  515. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  516. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  517. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  518. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  519. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  520. package/dist/domain/actions/action-factory.d.ts +0 -10
  521. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  522. package/dist/domain/application/element-registration.js +0 -1
  523. package/dist/domain/application/handler-registration.js +0 -1
  524. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  525. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  526. package/dist/domain/application/resource-builder.d.ts +0 -13
  527. package/dist/domain/application/resource-builder.js +0 -1
  528. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -55
  529. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  530. package/dist/domain/project-modules/index.d.ts +0 -1
  531. package/dist/domain/project-modules/index.js +0 -1
  532. package/dist/domain/project-modules/project-modules.js +0 -1
  533. package/dist/domain/relations/all-of-type-relation.d.ts +0 -30
  534. package/dist/domain/relations/all-of-type-relation.js +0 -1
  535. package/dist/domain/relations/component-factories.js +0 -1
  536. package/dist/domain/relations/composed-of.js +0 -1
  537. package/dist/domain/relations/direct-relation.d.ts +0 -27
  538. package/dist/domain/relations/indirect-relation.d.ts +0 -78
  539. package/dist/domain/relations/indirect-relation.js +0 -1
  540. package/dist/domain/relations/reference-component.js +0 -1
  541. package/dist/domain/relations/relation-factory.d.ts +0 -17
  542. package/dist/domain/relations/relation-factory.js +0 -1
  543. package/dist/domain/relations/relation-implementation.d.ts +0 -5
  544. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  545. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  546. package/dist/domain/system-components/custom-header.js +0 -1
  547. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  548. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  549. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  550. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  551. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  552. package/dist/domain/system-components/entity-header.js +0 -1
  553. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  554. package/dist/domain/system-components/property-page.js +0 -1
  555. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  556. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  557. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  558. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  559. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  560. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  561. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  562. package/dist/domain/system-components/sketching-edit.js +0 -1
  563. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  564. package/dist/domain/system-components/toolbar.js +0 -1
  565. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  566. /package/dist/domain/core/{action.js → action/action.js} +0 -0
  567. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  568. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  569. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  570. /package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.js +0 -0
  571. /package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  572. /package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +0 -0
  573. /package/dist/domain/{system-components → extensions}/angle-indicator.js +0 -0
  574. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  575. /package/dist/domain/{system-components → extensions}/attribute-switch.js +0 -0
  576. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +0 -0
  577. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.js +0 -0
  578. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +0 -0
  579. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.js +0 -0
  580. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  581. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.js +0 -0
  582. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  583. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.js +0 -0
  584. /package/dist/domain/{system-components → extensions}/canvas-config.d.ts +0 -0
  585. /package/dist/domain/{system-components → extensions}/canvas-config.js +0 -0
  586. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  587. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.js +0 -0
  588. /package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +0 -0
  589. /package/dist/domain/{system-components → extensions}/canvas-padding.js +0 -0
  590. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +0 -0
  591. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.js +0 -0
  592. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  593. /package/dist/domain/{system-components → extensions}/client-side-image.js +0 -0
  594. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  595. /package/dist/domain/{system-components → extensions}/color-value.js +0 -0
  596. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +0 -0
  597. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
  598. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  599. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  600. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  601. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  602. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  603. /package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +0 -0
  604. /package/dist/domain/{system-components → extensions}/dimension-indicator.js +0 -0
  605. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +0 -0
  606. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.js +0 -0
  607. /package/dist/domain/{system-components → extensions}/finalize-action.d.ts +0 -0
  608. /package/dist/domain/{system-components → extensions}/finalize-action.js +0 -0
  609. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  610. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  611. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.js +0 -0
  612. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  613. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.js +0 -0
  614. /package/dist/domain/{system-components → extensions}/fixed-header.d.ts +0 -0
  615. /package/dist/domain/{system-components → extensions}/fixed-header.js +0 -0
  616. /package/dist/domain/{system-components → extensions}/floating-header.d.ts +0 -0
  617. /package/dist/domain/{system-components → extensions}/floating-header.js +0 -0
  618. /package/dist/domain/{system-components → extensions}/hidden-header.d.ts +0 -0
  619. /package/dist/domain/{system-components → extensions}/hidden-header.js +0 -0
  620. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +0 -0
  621. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.js +0 -0
  622. /package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +0 -0
  623. /package/dist/domain/{system-components → extensions}/horizontal-tabs.js +0 -0
  624. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  625. /package/dist/domain/{system-components → extensions}/multilingual-text-value.js +0 -0
  626. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  627. /package/dist/domain/{system-components → extensions}/navigation-steps.js +0 -0
  628. /package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +0 -0
  629. /package/dist/domain/{system-components → extensions}/offset-anchors.js +0 -0
  630. /package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +0 -0
  631. /package/dist/domain/{system-components → extensions}/offset-indicator.js +0 -0
  632. /package/dist/domain/{system-components → extensions}/offset.d.ts +0 -0
  633. /package/dist/domain/{system-components → extensions}/offset.js +0 -0
  634. /package/dist/domain/{system-components → extensions}/other-action.d.ts +0 -0
  635. /package/dist/domain/{system-components → extensions}/other-action.js +0 -0
  636. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +0 -0
  637. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.js +0 -0
  638. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  639. /package/dist/domain/{system-components → extensions}/rotatable.js +0 -0
  640. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  641. /package/dist/domain/{system-components → extensions}/rotation-handle.js +0 -0
  642. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  643. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.js +0 -0
  644. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  645. /package/dist/domain/{system-components → extensions}/scene-entity-animation.js +0 -0
  646. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  647. /package/dist/domain/{system-components → extensions}/scene-entity-control.js +0 -0
  648. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  649. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.js +0 -0
  650. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  651. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.js +0 -0
  652. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  653. /package/dist/domain/{system-components → extensions}/selectable-component.js +0 -0
  654. /package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +0 -0
  655. /package/dist/domain/{system-components → extensions}/sidebar-tabs.js +0 -0
  656. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  657. /package/dist/domain/{system-components → extensions}/simple-summary.js +0 -0
  658. /package/dist/domain/{system-components → extensions}/size.d.ts +0 -0
  659. /package/dist/domain/{system-components → extensions}/size.js +0 -0
  660. /package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +0 -0
  661. /package/dist/domain/{system-components → extensions}/sketching-draw.js +0 -0
  662. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  663. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  664. /package/dist/domain/{system-components → extensions}/text-value.js +0 -0
  665. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  666. /package/dist/domain/{system-components → extensions}/tool-controls.js +0 -0
  667. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +0 -0
  668. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.js +0 -0
  669. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
  670. /package/dist/domain/{system-components → extensions}/view-controls.js +0 -0
@@ -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
 
@@ -396,6 +390,8 @@ Removes all build artifacts (`.phoenix/`, `node_modules/`), reinstalls dependenc
396
390
 
397
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.
398
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
+
399
395
  | Flag | Env Variable | Default | Description |
400
396
  | ---------------- | --------------- | ------- | ------------------------------ |
401
397
  | `--force` / `-f` | `FORCE_REBUILD` | `false` | Force full rebuild, skip cache |
@@ -690,12 +686,12 @@ Signs the CLI in to the SDK-builder workspace `<customer>`:
690
686
 
691
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.
692
688
 
693
- | Flag | Default | Description |
694
- | --------------------- | ------------------------------------ | ------------------------------------------------ |
695
- | `--region` | `eu` | Phoenix region of the workspace: `eu` or `us` |
696
- | `--serverUrl` / `-su` | the region's server | Phoenix server URL, for a local or custom server |
697
- | `--studioUrl` | the workspace's Studio in the region | Studio URL of the workspace |
698
- | `--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 |
699
695
 
700
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.
701
697
 
@@ -728,7 +724,7 @@ Pass the message as the argument for a short note, or `--file` for a longer repo
728
724
  | `--agent` | — | — | Name of the coding agent that writes the feedback |
729
725
  | `--projectSlug` / `-p` | `PROJECT_SLUG` | `project` of the spec, if any | Workspace project the feedback is about |
730
726
  | `--region` | — | `eu` | Phoenix region of the workspace: `eu` or `us` |
731
- | `--serverUrl` / `-su` | — | the region's server | Phoenix server URL, for a local or custom server |
727
+ | `--serverUrl` / `--su` | — | the region's server | Phoenix server URL, for a local or custom server |
732
728
 
733
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.
734
730
 
@@ -178,25 +178,29 @@ type CustomMaterial = Phx['AdminModel']['CustomMaterial']
178
178
 
179
179
  | File | Auto-Generated? | Notes |
180
180
  | ------------------------------------------------------ | --------------- | -------------------------------------- |
181
- | `package.json` | Partially | Dependencies merged, scripts preserved |
181
+ | `package.json` | Partially | Dependencies merged, scripts untouched |
182
182
  | `tsconfig.json` | Yes | Managed by Phoenix |
183
183
  | `eslint.config.js` | Yes | Managed by Phoenix |
184
184
  | `prettier.config.js` | Yes | Managed by Phoenix |
185
- | `.prettierignore` | Yes | Managed by Phoenix |
185
+ | `.prettierignore` | No | Optional and your own; see below |
186
186
  | `.linguirc` | Yes | Managed by Phoenix |
187
187
  | `.nvmrc` | Yes | Managed by Phoenix |
188
- | `.gitignore` | Partially | User entries between markers preserved |
188
+ | `.gitignore` | Partially | Only in a git repository; see Markers |
189
189
  | `.env` | No | Git-ignored, local config |
190
190
  | `.env.example` | No | Template for env vars |
191
191
  | `.env.generated` | Yes | Auto-generated IDs, git-ignored |
192
192
  | `README.md` | No | Project documentation |
193
- | `AGENTS.md` | Once | Coding-agent instructions, yours after |
193
+ | `AGENTS.md` | No | Your own coding-agent instructions |
194
194
  | `.claude/skills/phoenix*/`, `.agents/skills/phoenix*/` | Yes | Phoenix agent skills |
195
195
 
196
+ Sync does not write `README.md`, `AGENTS.md`, `.env.example`, `.env.ci` or the `README.md` files in `assets/public/` and `assets/private/`. Earlier SDK versions wrote them once; a project that has them keeps them, and they are yours to edit.
197
+
198
+ With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), Phoenix does not write a `.prettierignore`, and a fresh clone or CI checkout of a project has none. `phoenix check` and `phoenix fix` do not read one: they skip `.phoenix/`, `dist/`, the compiled catalogs in `src/locales/`, `pnpm-lock.yaml` and `.linguirc` on their own. A project that runs Prettier directly, as `prettier --check .` or from an editor, can add its own `.prettierignore`. To commit it, add a `!.prettierignore` line after the Phoenix block of `.gitignore`, because that block lists the file. The legacy pipeline writes `.prettierignore` on every sync.
199
+
196
200
  ### DO NOT EDIT (Fully Auto-Generated)
197
201
 
198
202
  - **Everything in `.phoenix/`** - Completely regenerated on each build. The one exception is `.phoenix/variants/`, where a coding agent writes the option files for `phoenix variants`; a rebuild keeps it
199
- - `tsconfig.json`, `eslint.config.js`, `prettier.config.js`, `.prettierignore`
203
+ - `tsconfig.json`, `eslint.config.js`, `prettier.config.js`
200
204
  - `.linguirc`, `.nvmrc`
201
205
  - `src/locales/**/*.ts` - Compiled from `.po` catalogs
202
206
  - `.env.generated`
@@ -204,23 +208,25 @@ type CustomMaterial = Phx['AdminModel']['CustomMaterial']
204
208
 
205
209
  ### Agent Guidance
206
210
 
207
- Coding agents (Claude Code, Codex, Cursor) read `AGENTS.md` and the Phoenix agent skills. `AGENTS.md` is written once with the build commands, the do-not-edit list and a pointer to the skills; after that it is yours. The `phoenix`, `phoenix-cli`, `phoenix-feedback` and `phoenix-review` skills carry the SDK conventions, CLI tooling and review checklist, and the `phoenix-create-configurator` skill walks the agent from your product documents and assets to a reviewed configurator in five stages. The `phoenix-variants` skill has the agent show you several options over the dev preview when a decision is a matter of taste, and build the one you pick. Phoenix keeps them in step with the installed SDK, including the reference files inside a skill folder. During the internal beta, a project created from a canary build of the SDK gets one more section in the `phoenix` skill: once per conversation the agent checks for a newer canary and, after telling you, updates the project's SDK and runs `phoenix sync`. Other skill folders are never touched.
211
+ Coding agents (Claude Code, Codex, Cursor) read the Phoenix agent skills. An `AGENTS.md` is yours to add for your own instructions; sync does not write one. The `phoenix`, `phoenix-cli`, `phoenix-feedback` and `phoenix-review` skills carry the SDK conventions, CLI tooling and review checklist, and the `phoenix-create-configurator` skill walks the agent from your product documents and assets to a reviewed configurator in five stages. The `phoenix-variants` skill has the agent show you several options over the dev preview when a decision is a matter of taste, and build the one you pick. Phoenix keeps them in step with the installed SDK, including the reference files inside a skill folder. During the internal beta, a project created from a canary build of the SDK gets one more section in the `phoenix` skill: once per conversation the agent checks for a newer canary and, after telling you, updates the project's SDK and runs `phoenix sync`. Other skill folders are never touched.
208
212
 
209
213
  Projects created by earlier SDK versions had this guidance in `CLAUDE.md`, `.cursor/rules/phoenix.mdc` and `commands/review.md`. Sync removes the SDK block from the first two, keeps your own text around it, deletes a file that held nothing else, and deletes the review commands; use the `phoenix-review` skill instead of `/review`.
210
214
 
211
215
  ### Markers for Partial Auto-Generation
212
216
 
213
- `.gitignore` preserves custom entries between markers:
217
+ `.gitignore` holds the Phoenix entries between two marker lines. Sync rewrites that block and keeps everything outside it:
214
218
 
215
219
  ```gitignore
216
- # phoenix-start
220
+ # ===== BEGIN PHOENIX AUTO-GENERATED =====
217
221
  # ... Phoenix-managed ignores ...
218
- # phoenix-end
222
+ # ===== END PHOENIX AUTO-GENERATED =====
219
223
 
220
- # Your custom ignores below (preserved)
224
+ # Your custom ignores (preserved)
221
225
  my-custom-folder/
222
226
  ```
223
227
 
228
+ With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), sync writes `.gitignore` 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 it neither creates the file nor changes one that is already there. Run `git init` before the first sync, or sync again after it, to get the file. The legacy pipeline writes the file in every project.
229
+
224
230
  ### Safe to Edit
225
231
 
226
232
  - `src/` (except compiled `src/locales/**/*.ts` files)
@@ -104,10 +104,10 @@ pnpm install
104
104
  pnpm phoenix sync
105
105
  ```
106
106
 
107
- `phoenix sync` keeps `spec/` and `src/` as your authored inputs and generates the application shell, scripts, types, and `.phoenix/` implementation. Start the generated development script without a server:
107
+ `phoenix sync` keeps `spec/` and `src/` as your authored inputs and generates the application shell, types, and `.phoenix/` implementation. Start development without a server:
108
108
 
109
109
  ```sh
110
- pnpm dev:local
110
+ pnpm phoenix dev --persistence local-storage
111
111
  ```
112
112
 
113
113
  Open the URL printed by the command. The application shell loads with the default `<salsita-configurator>` element and an empty 3D scene.
@@ -22,7 +22,7 @@ pnpm install
22
22
  pnpm phoenix sync
23
23
  ```
24
24
 
25
- `phoenix init [folder]` writes the starter project: `package.json`, `pnpm-workspace.yaml` and the starter spec, `spec/application.yaml` and `spec/configurator.yaml`, which describe one box you can resize and recolour. The starter depends on the same SDK version as the CLI that created it. `phoenix sync` then adds the rest of the project: package scripts, webhooks, README and lint config.
25
+ `phoenix init [folder]` writes the starter project: `package.json`, `pnpm-workspace.yaml` and the starter spec, `spec/application.yaml` and `spec/configurator.yaml`, which describe one box you can resize and recolour. The starter depends on the same SDK version as the CLI that created it, and its `package.json` has the `dev`, `build`, `deploy`, `check` and `fix` scripts, which are yours to change. `phoenix sync` then adds the rest of the project: webhooks and lint config. It writes a `.gitignore` only when the folder is inside a git repository; run `git init` before the first sync, or sync again after it, to get the file.
26
26
 
27
27
  `init` only writes these files: it asks nothing and contacts no server. It refuses a folder that already has a `spec/` folder. A `package.json` already in the folder is kept, as long as it depends on the SDK.
28
28
 
@@ -44,12 +44,12 @@ The CLI stores the token in `~/.phoenix/credentials.json`, readable only by you,
44
44
 
45
45
  `login`, `logout` and `deploy` follow the region, not the `SERVER_URL` in the project's `.env`. `dev` follows the region too when `.env` has no `SERVER_URL`:
46
46
 
47
- | Flag | Default | Description |
48
- | --------------------- | ------------------------------------ | ------------------------------------------------ |
49
- | `--region` | `eu` | Phoenix region of the workspace: `eu` or `us` |
50
- | `--serverUrl` / `-su` | the region's server | Phoenix server URL, for a local or custom server |
51
- | `--studioUrl` | the workspace's Studio in the region | Studio URL of the workspace (`login`) |
52
- | `--open` | `true` | Open the approval page in your browser (`login`) |
47
+ | Flag | Default | Description |
48
+ | ---------------------- | ------------------------------------ | ------------------------------------------------ |
49
+ | `--region` | `eu` | Phoenix region of the workspace: `eu` or `us` |
50
+ | `--serverUrl` / `--su` | the region's server | Phoenix server URL, for a local or custom server |
51
+ | `--studioUrl` | the workspace's Studio in the region | Studio URL of the workspace (`login`) |
52
+ | `--open` | `true` | Open the approval page in your browser (`login`) |
53
53
 
54
54
  ## 3. Develop
55
55
 
@@ -61,7 +61,7 @@ Signed in, `phoenix dev` needs no `.env` and nothing set up in Studio. When it s
61
61
 
62
62
  Every user who signs the CLI in gets their own development environment, so a teammate (a super admin of the workspace, like you) who clones the project and signs in doesn't overwrite your schema or take over your webhooks. The development environment is separate from `production`: nothing you do in `phoenix dev` changes the live configurator.
63
63
 
64
- `pnpm dev:local` still runs the project without any server, with state kept in the browser.
64
+ `pnpm phoenix dev --persistence local-storage` still runs the project without any server, with state kept in the browser.
65
65
 
66
66
  Coding agents follow the generated `phoenix` skill: before their first change they start `phoenix dev` and open the preview in your browser, and after `phoenix deploy` starts a build they open its page in Studio.
67
67
 
@@ -4,21 +4,22 @@ Build component controls with React and browser SDKs without pulling them into t
4
4
 
5
5
  ## Choose Where Each File Runs
6
6
 
7
- | User file | Frontend | Webhook |
8
- | ------------------------------------------------- | -------- | ------- |
9
- | Component or admin component without a directive | Yes | No |
10
- | Component or admin component with `'use webhook'` | Yes | Yes |
11
- | Ordinary handler | Yes | No |
12
- | Published-data or validator handler | Yes | Yes |
13
- | Any other handler with `'use webhook'` | Yes | Yes |
14
- | File under `src/webhooks/` | No | Yes |
7
+ | User file | Frontend | Webhook |
8
+ | ---------------------------------------------------- | -------- | ------- |
9
+ | Component or admin component without a directive | Yes | No |
10
+ | Component or admin component with `'use webhook'` | Yes | Yes |
11
+ | Ordinary handler | Yes | No |
12
+ | Published-data, validator or assistant setup handler | Yes | Yes |
13
+ | Any other handler with `'use webhook'` | Yes | Yes |
14
+ | File under `src/webhooks/` | No | Yes |
15
15
 
16
- Published-data and validator handlers are detected when they register one of these APIs:
16
+ Published-data, validator and assistant setup handlers are detected when they register one of these APIs:
17
17
 
18
18
  - `createMapPublishedRevisionDataHandler`
19
19
  - `createMapPublishedChunkedDataHandler`
20
20
  - `createDataRowValidatorHandler`
21
21
  - `createSheetValidatorHandler`
22
+ - `phx.domain.createAssistantSetupHandler`
22
23
 
23
24
  ## Pin a Server-Safe Component
24
25
 
@@ -148,7 +148,7 @@ resources:
148
148
  s3Key: clientImage
149
149
  ```
150
150
 
151
- These resources are automatically made available as typed properties in task handlers via the `resources` parameter.
151
+ These resources are automatically made available as typed properties in task handlers via the `resources` parameter. Two static resources with the same name are an error: `phoenix check` and `phoenix build` report the second entry (`DUPLICATE_RESOURCE_NAME`).
152
152
 
153
153
  #### Task Payload
154
154
 
@@ -991,7 +991,7 @@ Save the same OAuth client ID, client secret, and base URL in the customer's **C
991
991
  JWT_SECRET_BASE64=<base64 of a long random key>
992
992
  ```
993
993
 
994
- For a deployment, run `pnpm phoenix deployment:prepare` followed by `pnpm phoenix deployment:finish`. For local development, run `pnpm deployment:prepare-local`. These current commands use the customer settings stored in Studio; the removed `environment:create` and `deployment:register` commands are not part of the setup flow.
994
+ For a deployment, run `pnpm phoenix deployment:prepare` followed by `pnpm phoenix deployment:finish`. For local development, run `pnpm phoenix deployment:prepare-local`. These current commands use the customer settings stored in Studio; the removed `environment:create` and `deployment:register` commands are not part of the setup flow.
995
995
 
996
996
  #### Clerk organization
997
997
 
@@ -13,6 +13,15 @@ Choose the control from how users understand the options.
13
13
  - Long labels or descriptions: list selector.
14
14
  - Many text options or tight space: select dropdown.
15
15
 
16
+ ## Adding, removing, and placing
17
+
18
+ The controls above choose a value for a property. A decision that changes which parts exist is a different kind of choice, and where its control lives is part of the decision.
19
+
20
+ - Put the control in the scene when position carries the meaning of the action: where the next part goes, what sits on top of this one, which part this removes. An add FAB stands at the place the new part will occupy, and a delete FAB sits on the part it removes.
21
+ - Put the control in the sidebar when the choice is a catalogue pick and position is incidental, or when the scene offers no obvious place for the control to stand.
22
+ - A product the user assembles or arranges is the first case. A sidebar list for it turns building into list-keeping and leaves the scene a picture of the result rather than the place the user works.
23
+ - Both forms offer the same recipes, so this chooses where the user acts, not what they can add.
24
+
16
25
  ## Common control guidance
17
26
 
18
27
  - Order properties in the sequence users naturally make the decisions.
@@ -31,3 +40,5 @@ Choose the control from how users understand the options.
31
40
  - [Select dropdown](?path=/docs/controls-select-attribute-select--docs)
32
41
  - [Text input](?path=/docs/design-system-inputs-textinput--docs)
33
42
  - [Color picker](?path=/docs/controls-color-picker-input--docs)
43
+ - [Scene add and delete FABs](?path=/docs/fabs-basic--docs)
44
+ - [Recipe panel in the sidebar](?path=/docs/recipes-delete-simple--docs)
@@ -1,4 +1,4 @@
1
- import type { DomainEntity, DomainState, ExpressionContext, Violation } from '../../core/index.js';
1
+ import type { DomainEntity, MigrateFunction, Violation } from '../../core/index.js';
2
2
  import type { ChildEntitySelectionOption } from '../../system-components/child-entity-selection.js';
3
3
  import type { RecipeListItem } from '../../system-components/index.js';
4
4
  import type { SwatchOptionMap } from '../../system-components/material-swatch.js';
@@ -17,11 +17,23 @@ export declare const commonAdminCustomExpressions: {
17
17
  readonly $isDraft: (self: PresetCategory) => boolean;
18
18
  };
19
19
  };
20
+ /**
21
+ * An expression of this file. It reads nothing of the entity or of the state, and of the context
22
+ * only `CONTEXT`, so it is written against that part alone: it fits every entity of every project
23
+ * whose expression context has that part, because the project's own entity view, state and context
24
+ * are assignable to these parameters.
25
+ */
26
+ type CommonAdminExpression<CONTEXT, T> = (self: unknown, state: unknown, ctx: CONTEXT) => T;
27
+ /** The part of the expression context a recipe expression reads. */
28
+ interface RecipeExpressionContext<PUBLISHED_DATA> {
29
+ readonly publishedData: PUBLISHED_DATA;
30
+ readonly migrate: MigrateFunction<DomainEntity<string>>;
31
+ }
20
32
  export declare const CommonAdminExpressionBuilder: {
21
- createConstantSwatchExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(swatches: SwatchOptionMap) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => SwatchOptionMap);
22
- createConstantRecipeExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(recipes: RecipeListItem[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => RecipeListItem[]);
23
- createConstantChildEntitySelectionExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(entities: ChildEntitySelectionOption[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => ChildEntitySelectionOption[]);
24
- createRecipeExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends CommonAdminPublishedData, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(collection: string, defaults: RecipeListItem[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => RecipeListItem[]);
33
+ createConstantSwatchExpression: (swatches: SwatchOptionMap) => (() => SwatchOptionMap);
34
+ createConstantRecipeExpression: (recipes: RecipeListItem[]) => (() => RecipeListItem[]);
35
+ createConstantChildEntitySelectionExpression: (entities: ChildEntitySelectionOption[]) => (() => ChildEntitySelectionOption[]);
36
+ createRecipeExpression: (collection: string, defaults: RecipeListItem[]) => CommonAdminExpression<RecipeExpressionContext<CommonAdminPublishedData>, RecipeListItem[]>;
25
37
  };
26
38
  /**
27
39
  * Expression helpers for projects with chunked published data.
@@ -30,13 +42,16 @@ export declare const CommonAdminExpressionBuilder: {
30
42
  * Use {@link CommonAdminExpressionBuilder} for projects with flat published data.
31
43
  */
32
44
  export declare const ChunkedCommonAdminExpressionBuilder: {
33
- createConstantSwatchExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(swatches: SwatchOptionMap) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => SwatchOptionMap);
34
- createConstantRecipeExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(recipes: RecipeListItem[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => RecipeListItem[]);
35
- createConstantChildEntitySelectionExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(entities: ChildEntitySelectionOption[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => ChildEntitySelectionOption[]);
36
- createRecipeExpression: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends {
45
+ createConstantSwatchExpression: (swatches: SwatchOptionMap) => (() => SwatchOptionMap);
46
+ createConstantRecipeExpression: (recipes: RecipeListItem[]) => (() => RecipeListItem[]);
47
+ createConstantChildEntitySelectionExpression: (entities: ChildEntitySelectionOption[]) => (() => ChildEntitySelectionOption[]);
48
+ createRecipeExpression: (collection: string, defaults: RecipeListItem[]) => CommonAdminExpression<RecipeExpressionContext<{
37
49
  readonly system?: CommonAdminPublishedData;
38
- }, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>(collection: string, defaults: RecipeListItem[]) => ((self: SELF, state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => RecipeListItem[]);
50
+ }>, RecipeListItem[]>;
39
51
  };
40
52
  export declare const createDataSwatchMap: (tableName: string, chunkKey?: string) => {
41
- bind: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, SELF extends ENTITIES>() => (_self: SELF, _state: DomainState<ENTITIES>, ctx: ExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>) => SwatchOptionMap;
53
+ bind: () => CommonAdminExpression<{
54
+ readonly publishedData: Record<string, unknown>;
55
+ }, SwatchOptionMap>;
42
56
  };
57
+ export {};
@@ -1,6 +1,5 @@
1
1
  import type { DomainEntity } from '../../core/index.js';
2
2
  import type { PublishedData } from '../__generated/application-types.js';
3
- import { type AnyDomainEntity } from '../__generated/model/index.js';
4
3
  export type CommonAdminPublishedData = PublishedData;
5
4
  export declare const CommonAdminPublishedDataSchema: {
6
5
  type: "object";
@@ -182,4 +181,4 @@ export declare const CommonAdminPublishedDataSchema: {
182
181
  additionalProperties: false;
183
182
  required: never[];
184
183
  };
185
- export declare const mapCommonAdminPublishedData: <ENTITIES extends DomainEntity<string>>(entities: ReadonlyArray<ENTITIES | AnyDomainEntity>) => CommonAdminPublishedData;
184
+ export declare const mapCommonAdminPublishedData: (entities: ReadonlyArray<DomainEntity<string>>) => CommonAdminPublishedData;
@@ -10,9 +10,14 @@ export * from './__generated/model/index.js';
10
10
  export * from './implementation/common-admin-expressions.js';
11
11
  export * from './implementation/common-admin-publish.js';
12
12
  export * from './schema/index.js';
13
- export declare const createCommonAdminRecipe: import("../domain-context/recipe-system/recipes.js").RecipeFactory<AnyDomainEntity>;
14
- export declare const attachCommonAdminDomainComponent: DomainComponentOpticBuilder<AnyDomainEntity, import("./index.js").Admin, $Map, PublishedData, SessionData, Record<string, unknown>, Aliases, never, never, never>;
15
- export declare const commonAdminComponents: import("../index.js").DomainComponentSimpleOptic<AnyDomainEntity, import("./index.js").Admin, PublishedData, SessionData, Record<string, unknown>, import("./index.js").Preset, import("../index.js").SystemComponentType<"attributeSelection", import("../index.js").AttributeSelectionComponentState, "value">>[];
13
+ export declare const createCommonAdminRecipe: import("../index.js").RecipeFactory<AnyDomainEntity>;
14
+ /**
15
+ * Closed with core's part of the expression context only: `admin-domain/` counts as core and may
16
+ * not import the runtime. A callback that needs the component reader or a projection is written
17
+ * through a builder closed with `RuntimeExpressionContext`.
18
+ */
19
+ export declare const attachCommonAdminDomainComponent: DomainComponentOpticBuilder<AnyDomainEntity, import("./index.js").Admin, $Map, PublishedData, SessionData, Record<string, unknown>, Aliases, never, never, never, unknown>;
20
+ export declare const commonAdminComponents: import("../index.js").DomainComponentSimpleOptic<AnyDomainEntity, import("./index.js").Admin, PublishedData, SessionData, Record<string, unknown>, import("./index.js").Preset, import("../index.js").SystemComponentType<"attributeSelection", import("../index.js").AttributeSelectionComponentState, "value">, unknown>[];
16
21
  /**
17
22
  * Type-level carrier for the common-admin builder shape consumed by `createAdminInterface`.
18
23
  *
@@ -1 +1 @@
1
- import{DomainComponentOpticBuilder as o}from"../core/index.js";import{RecipeFactoryBuilder as e}from"../domain-context/index.js";import{attributeSelectionComponent as n}from"../system-components/index.js";import{AnyDomainEntity as m,PresetCategory as t,aliases as i}from"./__generated/model/index.js";import{DraftId as a}from"./implementation/common-admin-expressions.js";export{migrateCommonAdminDomain}from"./implementation/common-admin-migrations.js";export*from"./__generated/model/index.js";export*from"./implementation/common-admin-expressions.js";export*from"./implementation/common-admin-publish.js";export*from"./schema/index.js";export const createCommonAdminRecipe=e.forAliases(i).forEntities(m.reflections).withDefaults({}).build();export const attachCommonAdminDomainComponent=o.from(i);export const commonAdminComponents=[attachCommonAdminDomainComponent.withEntity("Preset").withComponent(n,"category").attach((o,e)=>{let n=e.entities.filter(t.is);return null===o.categoryId?{value:a,options:n.map(o=>({value:o.id,label:o.name})).concat([{value:a,label:{$lang:{en:"Draft"}}}])}:{value:o.categoryId,options:n.map(o=>({value:o.id,label:o.name}))}},o=>({categoryId:o.value===a?null:o.value}))];export const configuratorBuilder=null;
1
+ import{DomainComponentOpticBuilder as o,createRecipeFactory as e}from"../core/index.js";import{attributeSelectionComponent as n}from"../system-components/index.js";import{AnyDomainEntity as m,PresetCategory as t,aliases as i}from"./__generated/model/index.js";import{DraftId as a}from"./implementation/common-admin-expressions.js";export{migrateCommonAdminDomain}from"./implementation/common-admin-migrations.js";export*from"./__generated/model/index.js";export*from"./implementation/common-admin-expressions.js";export*from"./implementation/common-admin-publish.js";export*from"./schema/index.js";export const createCommonAdminRecipe=e(i,m.reflections,{});export const attachCommonAdminDomainComponent=o.from(i);export const commonAdminComponents=[attachCommonAdminDomainComponent.withEntity("Preset").withComponent(n,"category").attach((o,e)=>{let n=e.entities.filter(t.is);return null===o.categoryId?{value:a,options:n.map(o=>({value:o.id,label:o.name})).concat([{value:a,label:{$lang:{en:"Draft"}}}])}:{value:o.categoryId,options:n.map(o=>({value:o.id,label:o.name}))}},o=>({categoryId:o.value===a?null:o.value}))];export const configuratorBuilder=null;
@@ -1,7 +1,7 @@
1
1
  import type { ComponentType } from 'react';
2
2
  import type { $DomainEntity, DomainEntity } from '../core/index.js';
3
+ import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from '../domain-runtime/index.js';
3
4
  import type { ApplicationConfig } from './application-config.js';
4
- import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from './handler-registration.js';
5
5
  export declare const createGetApplicationWrapperHandler: (fn: (ctx: ApplicationConfig<any, any, any, any, any, any, never, any, any, any, any, any, any, any, any, any>) => ComponentType) => SystemPhoenixHandlerRegistration<ApplicationConfig<any, any, any, any, any, any, never, any, any, any, any, any, any, any, any, any>, ComponentType>;
6
- export type CreateGetApplicationWrapperHandler<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, CHAT_CONTEXT extends Record<string, unknown>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ADMIN_ENTITIES extends DomainEntity<string>, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>>, ADMIN_NAVIGATION_STATES extends string, ADMIN_VIEW_STATES extends string> = (fn: (ctx: ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>) => ComponentType) => SystemPhoenixHandlerRegistration<ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>, ComponentType>;
6
+ export type CreateGetApplicationWrapperHandler = typeof createGetApplicationWrapperHandler;
7
7
  export declare const isGetApplicationWrapperHandler: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, CHAT_CONTEXT extends Record<string, unknown>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ADMIN_ENTITIES extends DomainEntity<string>, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>>, ADMIN_NAVIGATION_STATES extends string, ADMIN_VIEW_STATES extends string>(handler: HandlerRegistration<ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>, ComponentType>) => handler is SystemPhoenixHandlerRegistration<ApplicationConfig<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, CHAT_CONTEXT, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES>, ComponentType>;
@@ -1,5 +1,5 @@
1
1
  import type { ThemeOptions } from '@mui/material';
2
- import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from './handler-registration.js';
2
+ import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from '../domain-runtime/index.js';
3
3
  export declare const GetThemeHandlerName = "GetThemeHandler";
4
4
  export declare const createGetThemeHandler: (fn: () => ThemeOptions) => SystemPhoenixHandlerRegistration<void, ThemeOptions>;
5
5
  export type CreateGetThemeHandler = (fn: () => ThemeOptions) => SystemPhoenixHandlerRegistration<void, ThemeOptions>;
@@ -1,5 +1,5 @@
1
+ import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from '../domain-runtime/index.js';
1
2
  import type { WebComponentOptions } from './application-config.js';
2
- import type { HandlerRegistration, SystemPhoenixHandlerRegistration } from './handler-registration.js';
3
3
  export declare const createGetWebComponentOptionsHandler: (fn: () => WebComponentOptions) => SystemPhoenixHandlerRegistration<undefined, WebComponentOptions>;
4
4
  export type CreateGetWebComponentOptionsHandler = (fn: () => WebComponentOptions) => SystemPhoenixHandlerRegistration<undefined, WebComponentOptions>;
5
5
  export declare const isGetWebComponentOptionsHandler: (handler: HandlerRegistration<any, any>) => handler is SystemPhoenixHandlerRegistration<undefined, WebComponentOptions>;
@@ -1,7 +1,6 @@
1
- import type { DomainEntityId } from '../core/index.js';
1
+ import type { DataCellValue, DataSchema, DomainEntityId } from '../core/index.js';
2
2
  import type { AttributeSelectionComponentState } from '../system-components/attribute-selection.js';
3
3
  import type { NavigationListItem, NestedNavigationListItem } from '../system-components/navigation-panel-list.js';
4
- import type { DataCellValue, DataSchema } from './application-config.js';
5
4
  interface PresetPagesConfig {
6
5
  readonly categoryNavigationState: string;
7
6
  readonly presetNavigationState: string;
@@ -6,16 +6,17 @@ import type { Logger } from '@salsita-ai/common/utils';
6
6
  import type { SessionRole, SessionTokenPayload } from '@salsita-ai/contracts/api';
7
7
  import type { CellValue } from '@salsita-ai/contracts/webhook';
8
8
  import type { AdminIntegrationService } from '#package/react-sdk';
9
- import type { $DomainEntity, DomainEntity, DomainFactory, ProductPreset } from '../core/index.js';
10
- import type { AnalyticsSystem, TransformerFactory } from '../domain-context/index.js';
11
- import type { RegistrableTransformer } from '../domain-context/transformers/index.js';
12
- import type { ProjectModule } from '../project-modules/index.js';
9
+ import type { $DomainEntity, DataCellValue, DataSchema, DomainEntity, DomainFactory, ProductPreset } from '../core/index.js';
10
+ import type { AnalyticsSystem, RegistrableTransformer, TransformerFactory } from '../domain-context/index.js';
11
+ import type { ProjectModule } from '../domain-runtime/index.js';
13
12
  import type { AssistantResolvedManifest } from './assistant/index.js';
14
13
  import type { WebComponentEventDescriptor } from './web-component-event.js';
15
14
  import type { WebComponentPropertyDescriptor } from './web-component-property.js';
16
- export type ImportedTransformer<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> = {
15
+ type TransformerExport = ReturnType<TransformerFactory<any, any, any, any, any, any, any>> | RegistrableTransformer<any, any, any, any, any, any, any>;
16
+ /** The transformers one `src/transformers/` file exports, under the name of the file. */
17
+ export type ImportedTransformer = {
17
18
  name: string;
18
- transformer: ReturnType<TransformerFactory<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>> | RegistrableTransformer<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES> | ReadonlyArray<ReturnType<TransformerFactory<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>> | RegistrableTransformer<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>>;
19
+ transformer: TransformerExport | ReadonlyArray<TransformerExport>;
19
20
  };
20
21
  export type SpecTransformer = {
21
22
  name: string;
@@ -32,26 +33,6 @@ export interface TransformersConfig {
32
33
  readonly importedTransformers: readonly ProjectModule[];
33
34
  readonly specTransformers: readonly SpecTransformer[];
34
35
  }
35
- export interface DataSchemaPrimitiveField {
36
- readonly type: 'string' | 'number' | 'integer' | 'boolean';
37
- readonly enum?: ReadonlyArray<string | number>;
38
- readonly description?: string;
39
- }
40
- export interface DataSchemaLocalizedField {
41
- readonly type: 'localized';
42
- readonly description?: string;
43
- }
44
- export interface DataSchemaArrayField {
45
- readonly type: 'array';
46
- readonly items: 'string' | 'number' | 'boolean';
47
- readonly description?: string;
48
- }
49
- export type DataSchemaFieldObject = DataSchemaPrimitiveField | DataSchemaLocalizedField | DataSchemaArrayField;
50
- export type DataSchemaField = 'string' | 'number' | 'boolean' | readonly ['string', 'null'] | readonly ['number', 'null'] | readonly ['boolean', 'null'] | DataSchemaFieldObject;
51
- export type DataSchema = Record<string, DataSchemaField>;
52
- export type DataCellValue = CellValue | null | {
53
- readonly $lang: Record<string, string>;
54
- } | readonly CellValue[];
55
36
  export type DataSpecEntry = {
56
37
  readonly definition: DataSchema;
57
38
  readonly chunk?: string;
@@ -0,0 +1,12 @@
1
+ import type { AssistantDeclaredField, AssistantResolvedField } from './assistant-resolved-manifest.js';
2
+ /** Combines the effective description with allowed string values. */
3
+ export declare const describeAssistantValues: (description: string | undefined, values: readonly string[] | undefined) => string | undefined;
4
+ /** Applies GraphQL field inheritance identically at parse time and after session narrowing. */
5
+ export declare const mergeAssistantFields: (inherited: ReadonlyArray<readonly AssistantDeclaredField[]>, own: readonly AssistantDeclaredField[], ownEnumValues: (source: string) => readonly string[] | undefined, conflict: (name: string, first: string, second: string) => void) => readonly AssistantDeclaredField[];
6
+ /**
7
+ * The serializable form of a merged field of one alias or type. Merging keeps the inherited entry of
8
+ * a field declared twice, so the lens tags are taken from `own`, the declarations of that alias or
9
+ * type itself: each lens condition then comes from its own declaration, at parse time and after
10
+ * session narrowing alike.
11
+ */
12
+ export declare const resolveAssistantField: (field: AssistantDeclaredField, own: readonly AssistantDeclaredField[]) => AssistantResolvedField;
@@ -0,0 +1 @@
1
+ export const describeAssistantValues=(e,s)=>{if(!s?.length)return e;let t=`One of: ${s.map(e=>`"${e}"`).join(", ")}.`;return e?`${e}${/[.!?]$/.test(e)?"":"."} ${t}`:t};export const mergeAssistantFields=(e,s,t,n)=>{let r=new Map,i=new Set(s);for(let t of[...e.flat(),...s]){let e=r.get(t.name);e?e.source!==t.source?n(t.name,e.source,t.source):r.set(t.name,{...e,...i.has(t)&&t.describedByManifest?{description:t.description,describedByManifest:!0,valueDescription:t.valueDescription}:{}}):r.set(t.name,t)}return[...r.values()].map(e=>{let s=e.enumValues&&t(e.source);return s?{...e,enumValues:s,description:describeAssistantValues(e.valueDescription,s)}:e})};export const resolveAssistantField=(e,s)=>{let t=s.find(s=>s.name===e.name&&s.source===e.source)?.lenses;return{name:e.name,source:e.source,localized:e.localized,type:e.type,...void 0===e.description?{}:{description:e.description},...t?.length?{lenses:t}:{}}};