@salsita-ai/sdk 0.50.0-develop.68d6fe1d1b → 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 (1012) 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/common/index.d.ts +1 -0
  8. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  9. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  10. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  11. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  12. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  13. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  14. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  15. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  16. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  17. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  18. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  19. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  20. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  21. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  22. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  24. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  27. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  29. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  30. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  31. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  32. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  33. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  34. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  35. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  36. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  37. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -7
  38. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  40. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  41. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  42. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  43. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +27 -11
  44. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +18 -6
  45. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  46. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  47. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  48. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  49. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  50. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  51. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  52. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  53. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  54. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  55. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  56. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  57. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  58. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  59. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  60. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  61. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  62. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  63. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  64. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  65. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  66. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  67. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  68. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  69. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  70. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  71. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  72. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  73. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  74. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  75. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  76. package/dist/client/authorized-client.d.ts +3 -1
  77. package/dist/client/authorized-client.js +1 -1
  78. package/dist/client/contract.d.ts +34 -0
  79. package/dist/client/contract.js +1 -1
  80. package/dist/client/index.d.ts +2 -2
  81. package/dist/client/index.js +1 -1
  82. package/dist/client/local-authorized-client.d.ts +3 -1
  83. package/dist/client/local-authorized-client.js +1 -1
  84. package/dist/client/memory-authorized-client.d.ts +3 -1
  85. package/dist/client/memory-authorized-client.js +1 -1
  86. package/dist/client/phoenix-api.d.ts +271 -30
  87. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  88. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  89. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  90. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +107 -6
  91. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  92. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  93. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +14 -4
  94. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  95. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  96. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  97. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  98. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  99. package/dist/configurator/common/configurator-interface.d.ts +5 -1
  100. package/dist/configurator/common/configurator-interface.js +1 -1
  101. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  102. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  103. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  104. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  105. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  106. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  107. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  108. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  109. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  110. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  111. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  112. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  113. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -75
  114. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  115. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  116. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.d.ts +92 -0
  117. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +16 -0
  118. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  119. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  120. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  121. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  122. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  123. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  124. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  125. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  126. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  127. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  128. package/dist/docs/index.json +11 -1
  129. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  130. package/dist/docs/layouts/custom-layout.mdx +981 -0
  131. package/dist/docs/layouts/custom-price.mdx +14 -16
  132. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  133. package/dist/docs/other-features/domain-actions.mdx +1 -1
  134. package/dist/docs/other-features/side-effects.mdx +50 -45
  135. package/dist/docs/other-features/transformers.mdx +1 -1
  136. package/dist/docs/other-features/violation-messages.mdx +52 -56
  137. package/dist/docs/phoenix/admin.mdx +9 -24
  138. package/dist/docs/phoenix/configurator-interface.mdx +105 -65
  139. package/dist/docs/phoenix/deployments.mdx +1 -1
  140. package/dist/docs/phoenix/domain-model.mdx +4 -0
  141. package/dist/docs/phoenix/expression-context.mdx +11 -3
  142. package/dist/docs/phoenix/getting-started.mdx +1 -1
  143. package/dist/docs/phoenix/localization.mdx +3 -22
  144. package/dist/docs/phoenix/phoenix-cli.mdx +44 -48
  145. package/dist/docs/phoenix/project-structure.mdx +22 -10
  146. package/dist/docs/phoenix/quickstart.mdx +2 -2
  147. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -11
  148. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  149. package/dist/docs/phoenix/webhooks.mdx +2 -2
  150. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  151. package/dist/docs/relations/hierarchy.mdx +13 -2
  152. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  153. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  154. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  155. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  156. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  157. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  158. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  159. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  160. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  161. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  162. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  163. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  164. package/dist/domain/admin-domain/index.d.ts +9 -5
  165. package/dist/domain/admin-domain/index.js +1 -1
  166. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  167. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  168. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  169. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  170. package/dist/domain/application/application-config.d.ts +28 -97
  171. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  172. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  173. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  174. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  175. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  176. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  177. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  178. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  179. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  180. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  181. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  182. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  183. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  184. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  185. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  186. package/dist/domain/application/assistant/index.d.ts +9 -0
  187. package/dist/domain/application/assistant/index.js +1 -0
  188. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  189. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  190. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  191. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  192. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  193. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  194. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  195. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  196. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  197. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  198. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  199. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  200. package/dist/domain/application/assistant-mutations.js +1 -1
  201. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  202. package/dist/domain/application/configurator-builder.d.ts +33 -18
  203. package/dist/domain/application/configurator-builder.js +1 -1
  204. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  205. package/dist/domain/application/index.d.ts +3 -6
  206. package/dist/domain/application/index.js +1 -1
  207. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  208. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  209. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  210. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  211. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  212. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  213. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  214. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  215. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  216. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  217. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  218. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  219. package/dist/domain/available-system-components.js +1 -1
  220. package/dist/domain/core/action/action-factory.d.ts +11 -0
  221. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  222. package/dist/domain/core/action/index.d.ts +2 -0
  223. package/dist/domain/core/action/index.js +1 -0
  224. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  225. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  226. package/dist/domain/core/component/debug-state-component.js +1 -0
  227. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  228. package/dist/domain/core/component/domain-component-optic.js +16 -0
  229. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  230. package/dist/domain/core/component/drag-state-component.js +1 -0
  231. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  232. package/dist/domain/core/component/export-state-component.js +1 -0
  233. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  234. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  235. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  236. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  237. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  238. package/dist/domain/core/component/hover-state-component.js +1 -0
  239. package/dist/domain/core/component/index.d.ts +18 -0
  240. package/dist/domain/core/component/index.js +1 -0
  241. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  242. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  243. package/dist/domain/core/component/navigation-state-component.js +1 -0
  244. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  245. package/dist/domain/core/component/selection-state-component.js +1 -0
  246. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  247. package/dist/domain/core/component/system-component-builder.js +1 -0
  248. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  249. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  250. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  251. package/dist/domain/core/component/tool-state-component.js +1 -0
  252. package/dist/domain/{components → core/component}/updates.d.ts +1 -2
  253. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  254. package/dist/domain/core/component/view-state-component.js +1 -0
  255. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  256. package/dist/domain/core/component/viewport-state-component.js +1 -0
  257. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  258. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  259. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  260. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  261. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  262. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  263. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  264. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  265. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  266. package/dist/domain/core/data-schema/data-schema.js +1 -0
  267. package/dist/domain/core/data-schema/index.d.ts +7 -0
  268. package/dist/domain/core/data-schema/index.js +1 -0
  269. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  270. package/dist/domain/core/decoder/create-decoder.js +1 -0
  271. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  272. package/dist/domain/core/decoder/decoder.js +1 -0
  273. package/dist/domain/core/decoder/index.d.ts +2 -0
  274. package/dist/domain/core/decoder/index.js +1 -0
  275. package/dist/domain/core/domain-factory.d.ts +4 -5
  276. package/dist/domain/core/domain-factory.js +1 -1
  277. package/dist/domain/core/domain.d.ts +4 -5
  278. package/dist/domain/core/domain.js +1 -1
  279. package/dist/domain/core/emission/index.d.ts +8 -0
  280. package/dist/domain/core/emission/index.js +1 -0
  281. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  282. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  283. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  284. package/dist/domain/core/emission/state-emission.js +1 -0
  285. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  286. package/dist/domain/core/emission/state-update-emission.js +1 -0
  287. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  288. package/dist/domain/core/emission/state-validation-result.js +1 -0
  289. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  290. package/dist/domain/core/emission/transformation-log.js +1 -0
  291. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  292. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  293. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  294. package/dist/domain/core/emission/transformer-log.js +1 -0
  295. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  296. package/dist/domain/core/emission/transformer-phase.js +1 -0
  297. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  298. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  299. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  300. package/dist/domain/core/expression/constant-expressions.js +1 -0
  301. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  302. package/dist/domain/core/expression/custom-expression.js +1 -0
  303. package/dist/domain/core/expression/expression.d.ts +46 -0
  304. package/dist/domain/core/expression/expression.js +1 -0
  305. package/dist/domain/core/expression/index.d.ts +4 -0
  306. package/dist/domain/core/expression/index.js +1 -0
  307. package/dist/domain/core/index.d.ts +13 -17
  308. package/dist/domain/core/index.js +1 -1
  309. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  310. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  311. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  312. package/dist/domain/core/invariant/index.d.ts +5 -0
  313. package/dist/domain/core/invariant/index.js +1 -0
  314. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  315. package/dist/domain/core/invariant/invariants.js +1 -0
  316. package/dist/domain/core/invariant/violation-component.js +1 -0
  317. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  318. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  319. package/dist/domain/core/model/index.d.ts +6 -0
  320. package/dist/domain/core/model/index.js +1 -0
  321. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  322. package/dist/domain/core/model/reflection.js +1 -0
  323. package/dist/domain/core/recipe/index.d.ts +1 -0
  324. package/dist/domain/core/recipe/index.js +1 -0
  325. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  326. package/dist/domain/core/recipe/recipes.js +1 -0
  327. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  328. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  329. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  330. package/dist/domain/core/relation/component-factories.js +1 -0
  331. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  332. package/dist/domain/core/relation/composed-of.js +1 -0
  333. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  334. package/dist/domain/core/relation/index.d.ts +8 -0
  335. package/dist/domain/core/relation/index.js +1 -0
  336. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  337. package/dist/domain/core/relation/indirect-relation.js +1 -0
  338. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  339. package/dist/domain/core/relation/reference-component.js +1 -0
  340. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  341. package/dist/domain/core/relation/reference-field.js +1 -0
  342. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  343. package/dist/domain/core/relation/relation-factory.js +1 -0
  344. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  345. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  346. package/dist/domain/core/schema/index.d.ts +3 -0
  347. package/dist/domain/core/schema/index.js +1 -0
  348. package/dist/domain/core/schema/schema-validator.js +1 -0
  349. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  350. package/dist/domain/core/state/id-sequence.js +1 -0
  351. package/dist/domain/core/state/index.d.ts +3 -0
  352. package/dist/domain/core/state/index.js +1 -0
  353. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  354. package/dist/domain/core/state/migrations.js +1 -0
  355. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  356. package/dist/domain/domain-builder.d.ts +11 -11
  357. package/dist/domain/domain-builder.js +1 -1
  358. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  359. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  360. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  361. package/dist/domain/domain-context/action-system/index.js +1 -0
  362. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  363. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  364. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  365. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  366. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  367. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  368. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  369. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  370. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  371. package/dist/domain/domain-context/index.d.ts +8 -18
  372. package/dist/domain/domain-context/index.js +1 -1
  373. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  374. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  375. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  376. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  377. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  378. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  379. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  380. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  381. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  382. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  383. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  384. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  385. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  386. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  387. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  388. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  389. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  390. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  391. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  392. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  393. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  394. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  395. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  396. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  397. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  398. package/dist/domain/domain-context/store-system/index.js +1 -0
  399. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  400. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  401. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  402. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  403. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  404. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  405. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  406. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  407. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  408. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  409. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  410. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  411. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  412. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  413. package/dist/domain/domain-context/transformers/context.js +1 -1
  414. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  415. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  416. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  417. package/dist/domain/domain-context/transformers/index.js +1 -1
  418. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  419. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  420. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  421. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  422. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  423. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  424. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  425. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  426. package/dist/domain/domain-runtime/access/types.js +1 -1
  427. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  428. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  429. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  430. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  431. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  432. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  433. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  434. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  435. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  436. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  437. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  438. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  439. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  440. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  441. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  442. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  443. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  444. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  445. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  446. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  447. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  448. package/dist/domain/domain-runtime/errors/index.js +1 -0
  449. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  450. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  451. package/dist/domain/domain-runtime/index.d.ts +1 -0
  452. package/dist/domain/domain-runtime/index.js +1 -1
  453. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  454. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  455. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  456. package/dist/domain/domain-runtime/spec/index.js +1 -1
  457. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  458. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  459. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  460. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  461. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  462. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  463. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  464. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  465. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  466. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  467. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  468. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  469. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  470. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  471. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  472. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  473. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  474. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  475. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  476. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  477. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  478. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  479. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  480. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  481. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  482. package/dist/domain/domain-runtime/spec/types.d.ts +6 -6
  483. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  484. package/dist/domain/extensions/angle-indicator.js +1 -0
  485. package/dist/domain/extensions/attribute-switch.js +1 -0
  486. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  487. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  488. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  489. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  490. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  491. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  492. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  493. package/dist/domain/extensions/canvas-config.js +1 -0
  494. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  495. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  496. package/dist/domain/extensions/canvas-padding.js +1 -0
  497. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  498. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  499. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  500. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  501. package/dist/domain/extensions/client-side-image.js +1 -0
  502. package/dist/domain/extensions/color-value.js +1 -0
  503. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  504. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  505. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  506. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  507. package/dist/domain/extensions/common/index.d.ts +4 -0
  508. package/dist/domain/extensions/common/index.js +1 -0
  509. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  510. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  511. package/dist/domain/extensions/custom-price-footer.js +1 -0
  512. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  513. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  514. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  515. package/dist/domain/extensions/dimension-indicator.js +1 -0
  516. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  517. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  518. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  519. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  520. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  521. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  522. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  523. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  524. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  525. package/dist/domain/extensions/entity-header.js +1 -0
  526. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  527. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  528. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  529. package/dist/domain/extensions/finalize-action.js +1 -0
  530. package/dist/domain/extensions/finalize-component.js +1 -0
  531. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  532. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  533. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  534. package/dist/domain/extensions/fixed-header.js +1 -0
  535. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  536. package/dist/domain/extensions/floating-header.js +1 -0
  537. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  538. package/dist/domain/extensions/hidden-header.js +1 -0
  539. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  540. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  541. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  542. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  543. package/dist/domain/extensions/index.d.ts +69 -0
  544. package/dist/domain/extensions/index.js +1 -0
  545. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  546. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  547. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  548. package/dist/domain/extensions/navigation-steps.js +1 -0
  549. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  550. package/dist/domain/extensions/offset-anchors.js +1 -0
  551. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  552. package/dist/domain/extensions/offset-indicator.js +1 -0
  553. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  554. package/dist/domain/extensions/offset.js +1 -0
  555. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  556. package/dist/domain/extensions/other-action.js +1 -0
  557. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  558. package/dist/domain/extensions/property-page.js +1 -0
  559. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  560. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  561. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  562. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  563. package/dist/domain/extensions/rotatable.js +1 -0
  564. package/dist/domain/extensions/rotation-handle.js +1 -0
  565. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  566. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  567. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  568. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  569. package/dist/domain/extensions/scene-entity-control.js +1 -0
  570. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  571. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  572. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  573. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  574. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  575. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  576. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  577. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  578. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  579. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  580. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  581. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  582. package/dist/domain/extensions/selectable-component.js +1 -0
  583. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  584. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  585. package/dist/domain/extensions/simple-summary.js +1 -0
  586. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  587. package/dist/domain/extensions/size.js +1 -0
  588. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  589. package/dist/domain/extensions/sketching-draw.js +1 -0
  590. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  591. package/dist/domain/extensions/sketching-edit.js +1 -0
  592. package/dist/domain/extensions/summary-component.js +1 -0
  593. package/dist/domain/extensions/text-value.js +1 -0
  594. package/dist/domain/extensions/tool-controls.js +1 -0
  595. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  596. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  597. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  598. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  599. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  600. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  601. package/dist/domain/extensions/view-controls.js +1 -0
  602. package/dist/domain/index.d.ts +2 -32
  603. package/dist/domain/index.js +1 -1
  604. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  605. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  606. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  607. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  608. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  609. package/dist/domain/mocks/create-mock-domain.js +1 -1
  610. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  611. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  612. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  613. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  614. package/dist/domain/projections/collision-projections.d.ts +1 -1
  615. package/dist/domain/projections/composition-projections.d.ts +1 -1
  616. package/dist/domain/projections/composition-projections.js +1 -1
  617. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  618. package/dist/domain/projections/index.d.ts +1 -1
  619. package/dist/domain/projections/position-projections.d.ts +1 -1
  620. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  621. package/dist/domain/projections/snap-matching.d.ts +1 -2
  622. package/dist/domain/projections/snap-utils.d.ts +1 -2
  623. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  624. package/dist/domain/projections/validation-projections.d.ts +3 -20
  625. package/dist/domain/projections/validation-projections.js +1 -1
  626. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  627. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  628. package/dist/domain/system-components/admin-sidebar.js +1 -1
  629. package/dist/domain/system-components/angle-dimension.js +1 -1
  630. package/dist/domain/system-components/application-config.d.ts +1 -1
  631. package/dist/domain/system-components/application-config.js +1 -1
  632. package/dist/domain/system-components/attribute-selection.js +1 -1
  633. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  634. package/dist/domain/system-components/bounding-box-component.js +1 -1
  635. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  636. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  637. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  638. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  639. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  640. package/dist/domain/system-components/child-entity-selection.js +1 -1
  641. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  642. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  643. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  644. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  645. package/dist/domain/system-components/collision-geometry.js +1 -1
  646. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  647. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  648. package/dist/domain/system-components/common/index.d.ts +0 -4
  649. package/dist/domain/system-components/common/index.js +1 -1
  650. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  651. package/dist/domain/system-components/constraint.d.ts +1 -1
  652. package/dist/domain/system-components/constraint.js +1 -1
  653. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  654. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  655. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  656. package/dist/domain/system-components/detail.js +1 -1
  657. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  658. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  659. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  660. package/dist/domain/system-components/distance-dimension.js +1 -1
  661. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  662. package/dist/domain/system-components/drag-handle.js +1 -1
  663. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  664. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  665. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  666. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  667. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  668. package/dist/domain/system-components/generic-dimension.js +1 -1
  669. package/dist/domain/system-components/hidden-entity.js +1 -1
  670. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  671. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  672. package/dist/domain/system-components/index.d.ts +0 -68
  673. package/dist/domain/system-components/index.js +1 -1
  674. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  675. package/dist/domain/system-components/material-override-transformer.js +1 -1
  676. package/dist/domain/system-components/material-swatch.js +1 -1
  677. package/dist/domain/system-components/navigation-page.js +1 -1
  678. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  679. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  680. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  681. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  682. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  683. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  684. package/dist/domain/system-components/pivot-point.js +1 -1
  685. package/dist/domain/system-components/price.js +1 -1
  686. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  687. package/dist/domain/system-components/projected-entities.js +1 -1
  688. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  689. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  690. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  691. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  692. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  693. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  694. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  695. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  696. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  697. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  698. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  699. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  700. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  701. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  702. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  703. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  704. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  705. package/dist/domain/system-components/scene-entity-object.js +1 -1
  706. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  707. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  708. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  709. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  710. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  711. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  712. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  713. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  714. package/dist/domain/system-components/sketching-line.js +1 -1
  715. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  716. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  717. package/dist/domain/system-components/sketching.d.ts +1 -1
  718. package/dist/domain/system-components/sketching.js +1 -1
  719. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  720. package/dist/domain/system-components/snap-axis.js +1 -1
  721. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  722. package/dist/domain/system-components/snap-edge.js +1 -1
  723. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  724. package/dist/domain/system-components/snap-plane.js +1 -1
  725. package/dist/domain/system-components/snap-point.d.ts +1 -1
  726. package/dist/domain/system-components/snap-point.js +1 -1
  727. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  728. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  729. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  730. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  731. package/dist/domain/utils/eval-cache.d.ts +2 -3
  732. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  733. package/dist/domain/utils/memo-eval.d.ts +2 -4
  734. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  735. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  736. package/dist/editor/mocks/EditorMockContext.js +1 -1
  737. package/dist/i18n/locales/cs/messages.js +1 -1
  738. package/dist/i18n/locales/da/messages.js +1 -1
  739. package/dist/i18n/locales/de/messages.js +1 -1
  740. package/dist/i18n/locales/de-AT/messages.js +1 -1
  741. package/dist/i18n/locales/en/messages.js +1 -1
  742. package/dist/i18n/locales/en-AU/messages.js +1 -1
  743. package/dist/i18n/locales/en-GB/messages.js +1 -1
  744. package/dist/i18n/locales/es/messages.js +1 -1
  745. package/dist/i18n/locales/fr/messages.js +1 -1
  746. package/dist/i18n/locales/hu/messages.js +1 -1
  747. package/dist/i18n/locales/it/messages.js +1 -1
  748. package/dist/i18n/locales/nl/messages.js +1 -1
  749. package/dist/i18n/locales/pl/messages.js +1 -1
  750. package/dist/i18n/locales/pt/messages.js +1 -1
  751. package/dist/i18n/locales/ro/messages.js +1 -1
  752. package/dist/i18n/locales/sk/messages.js +1 -1
  753. package/dist/i18n/locales/tr/messages.js +1 -1
  754. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  755. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  756. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  757. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  758. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  759. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  760. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  761. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  762. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  763. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  764. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  765. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  766. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  767. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  768. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  769. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  770. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  771. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  772. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  773. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  774. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  775. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  776. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  777. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  778. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  779. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  780. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  781. package/dist/phoenix/commands/init.d.ts +4 -4
  782. package/dist/phoenix/commands/init.js +1 -1
  783. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  784. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  785. package/dist/phoenix/commands/prettier.js +1 -1
  786. package/dist/phoenix/scripts/build-admin.js +1 -1
  787. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  788. package/dist/phoenix/services/variant-file-session.js +1 -1
  789. package/dist/phoenix/utils/git/index.d.ts +1 -0
  790. package/dist/phoenix/utils/git/index.js +1 -0
  791. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  792. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  793. package/dist/phoenix/utils/index.d.ts +1 -0
  794. package/dist/phoenix/utils/index.js +1 -1
  795. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  796. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  797. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  798. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  799. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  800. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  801. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  802. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  803. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  804. package/dist/react-sdk/domain-context/index.d.ts +1 -1
  805. package/dist/react-sdk/domain-context/index.js +1 -1
  806. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  807. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  808. package/dist/ui-sdk/theme/types.d.ts +1 -1
  809. package/dist/webhook/builders/common.d.ts +8 -0
  810. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  811. package/dist/webhook/builders/webhook-builder.js +1 -1
  812. package/package.json +3 -3
  813. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  814. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  815. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  816. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  817. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  818. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  819. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  820. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  821. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  822. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  823. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  824. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  825. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  826. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  827. package/dist/domain/actions/action-factory.d.ts +0 -10
  828. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  829. package/dist/domain/application/element-registration.js +0 -1
  830. package/dist/domain/application/handler-registration.js +0 -1
  831. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  832. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  833. package/dist/domain/application/resource-builder.d.ts +0 -13
  834. package/dist/domain/application/resource-builder.js +0 -1
  835. package/dist/domain/components/debug-state-component.js +0 -1
  836. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  837. package/dist/domain/components/domain-component-optic.js +0 -16
  838. package/dist/domain/components/drag-state-component.js +0 -1
  839. package/dist/domain/components/export-state-component.js +0 -1
  840. package/dist/domain/components/fullscreen-state-component.js +0 -1
  841. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  842. package/dist/domain/components/hover-state-component.js +0 -1
  843. package/dist/domain/components/index.d.ts +0 -2
  844. package/dist/domain/components/index.js +0 -1
  845. package/dist/domain/components/navigation-state-component.js +0 -1
  846. package/dist/domain/components/selection-state-component.js +0 -1
  847. package/dist/domain/components/system-component-builder.js +0 -1
  848. package/dist/domain/components/system-virtual-entity.js +0 -1
  849. package/dist/domain/components/tool-state-component.js +0 -1
  850. package/dist/domain/components/view-state-component.js +0 -1
  851. package/dist/domain/components/viewport-state-component.js +0 -1
  852. package/dist/domain/core/expression.d.ts +0 -50
  853. package/dist/domain/core/json-schema.js +0 -1
  854. package/dist/domain/core/migrations.js +0 -1
  855. package/dist/domain/core/reflection.js +0 -1
  856. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  857. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  858. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  859. package/dist/domain/expressions/constant-expressions.js +0 -1
  860. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  861. package/dist/domain/expressions/custom-expression.js +0 -1
  862. package/dist/domain/expressions/index.d.ts +0 -1
  863. package/dist/domain/expressions/index.js +0 -1
  864. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  865. package/dist/domain/invariants/custom-invariants.js +0 -1
  866. package/dist/domain/invariants/invariants.d.ts +0 -68
  867. package/dist/domain/invariants/invariants.js +0 -1
  868. package/dist/domain/invariants/violation-component.js +0 -1
  869. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  870. package/dist/domain/relations/all-of-type-relation.js +0 -1
  871. package/dist/domain/relations/component-factories.js +0 -1
  872. package/dist/domain/relations/composed-of.js +0 -1
  873. package/dist/domain/relations/direct-relation.d.ts +0 -29
  874. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  875. package/dist/domain/relations/indirect-relation.js +0 -1
  876. package/dist/domain/relations/reference-component.js +0 -1
  877. package/dist/domain/relations/relation-factory.d.ts +0 -19
  878. package/dist/domain/relations/relation-factory.js +0 -1
  879. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  880. package/dist/domain/system-components/angle-indicator.js +0 -1
  881. package/dist/domain/system-components/attribute-switch.js +0 -1
  882. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  883. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  884. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  885. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  886. package/dist/domain/system-components/canvas-config.js +0 -1
  887. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  888. package/dist/domain/system-components/canvas-padding.js +0 -1
  889. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  890. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  891. package/dist/domain/system-components/client-side-image.js +0 -1
  892. package/dist/domain/system-components/color-value.js +0 -1
  893. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  894. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  895. package/dist/domain/system-components/custom-price-footer.js +0 -1
  896. package/dist/domain/system-components/dimension-indicator.js +0 -1
  897. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  898. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  899. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  900. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  901. package/dist/domain/system-components/entity-header.js +0 -1
  902. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  903. package/dist/domain/system-components/finalize-action.js +0 -1
  904. package/dist/domain/system-components/finalize-component.js +0 -1
  905. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  906. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  907. package/dist/domain/system-components/fixed-header.js +0 -1
  908. package/dist/domain/system-components/floating-header.js +0 -1
  909. package/dist/domain/system-components/hidden-header.js +0 -1
  910. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  911. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  912. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  913. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  914. package/dist/domain/system-components/navigation-steps.js +0 -1
  915. package/dist/domain/system-components/offset-anchors.js +0 -1
  916. package/dist/domain/system-components/offset-indicator.js +0 -1
  917. package/dist/domain/system-components/offset.js +0 -1
  918. package/dist/domain/system-components/other-action.js +0 -1
  919. package/dist/domain/system-components/property-page.js +0 -1
  920. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  921. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  922. package/dist/domain/system-components/rotatable.js +0 -1
  923. package/dist/domain/system-components/rotation-handle.js +0 -1
  924. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  925. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  926. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  927. package/dist/domain/system-components/scene-entity-control.js +0 -1
  928. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  929. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  930. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  931. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  932. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  933. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  934. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  935. package/dist/domain/system-components/selectable-component.js +0 -1
  936. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  937. package/dist/domain/system-components/simple-summary.js +0 -1
  938. package/dist/domain/system-components/size.js +0 -1
  939. package/dist/domain/system-components/sketching-draw.js +0 -1
  940. package/dist/domain/system-components/sketching-edit.js +0 -1
  941. package/dist/domain/system-components/summary-component.js +0 -1
  942. package/dist/domain/system-components/text-value.js +0 -1
  943. package/dist/domain/system-components/tool-controls.js +0 -1
  944. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  945. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  946. package/dist/domain/system-components/view-controls.js +0 -1
  947. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -13
  948. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  949. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  950. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  951. /package/dist/domain/core/{action.js → action/action.js} +0 -0
  952. /package/dist/domain/core/{enhanced-json-schema.js → component/component-reader-types.js} +0 -0
  953. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  954. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  955. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  956. /package/dist/domain/{components → core/component}/updates.js +0 -0
  957. /package/dist/domain/core/{expression.js → data-schema/data-cell-value.js} +0 -0
  958. /package/dist/domain/core/{schema-validator.js → data-schema/data-schema-array-field.js} +0 -0
  959. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-field-object.js} +0 -0
  960. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field.js} +0 -0
  961. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  962. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  963. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  964. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  965. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  966. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  967. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  968. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  969. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  970. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  971. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  972. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  973. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  974. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  975. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  976. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  977. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  978. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  979. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  980. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  981. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  982. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  983. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  984. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  985. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  986. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  987. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  988. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  989. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  990. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  991. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  992. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  993. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  994. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  995. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  996. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  997. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  998. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  999. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  1000. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1001. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  1002. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  1003. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1004. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1005. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1006. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1007. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1008. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1009. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1010. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1011. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1012. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -2,39 +2,39 @@ import{fileHeader as n}from"./file-header.js";import{generateImports as i,getImp
2
2
  ${n.join(",\n ")}
3
3
  )`,a=(n,i)=>{if(0===n.length)return"{}";let o=n.map((n,o)=>{let t=e(n);return null===t?null:` ${t}: ${i[o]}`}).filter(n=>null!==n);return 0===o.length?"{}":`{
4
4
  ${o.join(",\n")}
5
- }`};export const generateIndexDomainFile=(s={})=>{let{includeMigrations:r=!0,includeI18n:m=!0,expressionsFiles:d=[],invariantsFiles:l=[],adminExpressionsFiles:p=[],adminInvariantsFiles:c=[],migrationsFiles:u=[],adminMigrationsFiles:g=[]}=s,x=(n,i)=>`${i?"adminMigrateToV":"migrateToV"}${e(n)}`,$=u.map(n=>{let i=e(n),o=n.replace(/\.ts$/,""),t=`../src/${o}.js`;return`import { migrateToV${i} } from '${t}'`}).join("\n"),f=g.map(n=>{let i=e(n),o=n.replace(/\.ts$/,""),t=`../src/${o}.js`;return`import { migrateToV${i} as adminMigrateToV${i} } from '${t}'`}).join("\n"),h=u.map(n=>x(n,!1)),A=g.map(n=>x(n,!0)),E=u.length>0,j=g.length>0,y=i(d,"expressions"),D=i(l,"invariants"),V=i(p,"adminExpressions"),v=i(c,"adminInvariants"),M=o(d,"expressions"),B=o(l,"invariants"),I=o(p,"adminExpressions"),F=o(c,"adminInvariants"),w=t(B),b=t(M),R=t(F),T=t(I),C=[y,D,V,v].filter(Boolean).join("\n"),P=[$,f].filter(Boolean).join("\n"),S=d.length>1||l.length>1||p.length>1||c.length>1,k=a(u,h),q=a(g,A),z=E?`
5
+ }`};export const generateIndexDomainFile=(s={})=>{let{includeMigrations:r=!0,includeI18n:m=!0,expressionsFiles:d=[],invariantsFiles:l=[],adminExpressionsFiles:p=[],adminInvariantsFiles:c=[],migrationsFiles:x=[],adminMigrationsFiles:g=[]}=s,u=(n,i)=>`${i?"adminMigrateToV":"migrateToV"}${e(n)}`,$=x.map(n=>{let i=e(n),o=n.replace(/\.ts$/,""),t=`../src/${o}.js`;return`import { migrateToV${i} } from '${t}'`}).join("\n"),A=g.map(n=>{let i=e(n),o=n.replace(/\.ts$/,""),t=`../src/${o}.js`;return`import { migrateToV${i} as adminMigrateToV${i} } from '${t}'`}).join("\n"),h=x.map(n=>u(n,!1)),f=g.map(n=>u(n,!0)),E=x.length>0,j=g.length>0,y=i(d,"expressions"),D=i(l,"invariants"),V=i(p,"adminExpressions"),M=i(c,"adminInvariants"),F=o(d,"expressions"),I=o(l,"invariants"),v=o(p,"adminExpressions"),w=o(c,"adminInvariants"),B=t(I),R=t(F),b=t(w),T=t(v),C=[y,D,V,M].filter(Boolean).join("\n"),P=[$,A].filter(Boolean).join("\n"),S=d.length>1||l.length>1||p.length>1||c.length>1,k=a(x,h),q=a(g,f),z=E?`
6
6
  const migrations = ${k}
7
7
 
8
- const migrate = MigrateFunctionBuilder.fromVersions(modelVersions).to(modelVersion).using(migrations).build()`:"",G=j?`
8
+ const migrate = createMigrateFunction(modelVersions, modelVersion, migrations)`:"",G=j?`
9
9
  const adminMigrations = ${q}
10
10
 
11
- const migrateAdmin = MigrateFunctionBuilder.fromVersions(adminModelVersions).to(adminModelVersion).using(adminMigrations).build()`:"";return`${n}
11
+ const migrateAdmin = createMigrateFunction(adminModelVersions, adminModelVersion, adminMigrations)`:"";return`${n}
12
12
  ${S?"import merge from 'lodash-es/merge.js'\n":""}
13
- import { type AliasedExpressions${r&&(E||j)?", MigrateFunctionBuilder":""} } from '@salsita-ai/sdk/domain'
13
+ import { type AliasedExpressions${r&&(E||j)?", createMigrateFunction":""}, createViolationExpressions } from '@salsita-ai/sdk/domain'
14
14
 
15
15
  ${m?"import { createI18n } from './i18n.js'":""}
16
- import { adminDomainBuilder, adminInvariantBuilder } from './domain/admin-implementation.js'
16
+ import { adminDomainBuilder, commonAdminInvariants } from './domain/admin-implementation.js'
17
17
  import type {
18
18
  Aliases as AdminAliases,
19
19
  AnyDomainEntity as AdminAnyDomainEntity,
20
20
  RootEntity as AdminRootEntity,
21
21
  } from './domain/admin-model/index.js'
22
- ${j?"import { modelVersion as adminModelVersion, modelVersions as adminModelVersions } from './domain/admin-model/index.js'\n":""}
22
+ import { aliases as adminAliases${j?", modelVersion as adminModelVersion, modelVersions as adminModelVersions":""} } from './domain/admin-model/index.js'
23
23
  import type { FrontendData, PublishedData, SessionData } from './domain/application-types.js'
24
24
  import {
25
25
  generatedConfiguratorBuilder,
26
26
  } from './domain/configurator-builder.js'
27
- import { domainBuilder, invariantBuilder } from './domain/implementation.js'
27
+ import { domainBuilder } from './domain/implementation.js'
28
28
  import type { Aliases, AnyDomainEntity, RootEntity } from './domain/model/index.js'
29
- ${E?"import { modelVersion, modelVersions } from './domain/model/index.js'\n":""}
29
+ import { aliases${E?", modelVersion, modelVersions":""} } from './domain/model/index.js'
30
30
  ${C?`
31
31
  ${C}`:""}
32
32
  ${P?`
33
33
  ${P}`:""}${z}${G}
34
34
 
35
- const customInvariants = ${w}
35
+ const customInvariants = ${B}
36
36
 
37
- const violationExpressions = invariantBuilder.withInvariants(customInvariants).buildViolationExpressions()
37
+ const violationExpressions = createViolationExpressions(aliases, [{ origin: '.phoenix/domain.ts', exports: customInvariants }])
38
38
 
39
39
  const customExpressions: AliasedExpressions<
40
40
  AnyDomainEntity,
@@ -43,18 +43,20 @@ const customExpressions: AliasedExpressions<
43
43
  SessionData,
44
44
  FrontendData,
45
45
  Aliases
46
- > = ${b}
46
+ > = ${R}
47
47
 
48
48
  const domainFactory = domainBuilder
49
49
  .withExpressions(violationExpressions)
50
50
  .withExpressions(customExpressions)${r&&E?"\n .withMigrate(migrate)":""}
51
51
  .build()
52
52
 
53
- const customAdminInvariants = ${R}
53
+ const customAdminInvariants = ${b}
54
54
 
55
- const adminViolationExpressions = adminInvariantBuilder
56
- .withInvariants(customAdminInvariants)
57
- .buildViolationExpressions()
55
+ const adminViolationExpressions = createViolationExpressions(
56
+ adminAliases,
57
+ [{ origin: '.phoenix/domain.ts', exports: customAdminInvariants }],
58
+ commonAdminInvariants
59
+ )
58
60
 
59
61
  const customAdminExpressions: AliasedExpressions<
60
62
  AdminAnyDomainEntity,
@@ -1 +1 @@
1
- export declare const envExampleFile = "# This file documents developer-supplied Phoenix variables. Copy the values you\n# need into an untracked .env; never commit .env.\n# phoenix dev, deployment:prepare-dev, and deployment:prepare-local write\n# server-generated values to .env.generated; do not maintain them here.\n\n# ============================================================================\n# Development environment (phoenix dev and deployment:prepare-dev)\n# ============================================================================\n# Create a development environment in PHX Studio and paste its block here.\n#\n# SERVER_URL=http://localhost:3000\n# PROJECT_SLUG=<project-slug>\n# ENVIRONMENT_SLUG=<development-environment-slug>\n# DEVELOPMENT_KEY=<development-key>\n\n# ============================================================================\n# Shared-server access (deployment:prepare-local and CI commands only)\n# ============================================================================\n# Ask DevOps for these values when using the legacy prepare-local or CI flows.\n# SERVER_URL=https://phoenix.example.com\n# ENVIRONMENT_API_KEY=<shared-server-api-key>\n# PROJECT_KEY=<shared-server-project-key>\n# PROJECT_SLUG=<project-slug>\n# ENVIRONMENT_SLUG=<environment-slug>\n# LAMBDA_URL=http://localhost:8080\n\n# ============================================================================\n# Dev Configuration (phoenix dev)\n# ============================================================================\n# Override these to run multiple projects simultaneously.\n# Ports auto-increment if occupied, but setting explicit values avoids surprises.\n#\n# EDITOR_WS_PORT=3020\n# ENABLE_EDITOR=true\n# Enable Lingui extraction and compilation during dev. Phoenix warns when this is disabled.\n# WITH_LINGUI=false\n# DEBUG=false\n# FORCE_REBUILD=false\n# USE_APPLICATION_SPEC=false\n# IS_DEV=true\n#\n# Persistence mode controls how configurator state is stored.\n# Options: 'server' (default), 'local-storage', 'memory'\n# PERSISTENCE_MODE=server\n\n# deployment:prepare-dev and deployment:prepare-local output and behavior overrides:\n# OUT_FILE=.env.generated\n# SKIP_UPLOAD also applies to the deployment phoenix dev prepares at startup.\n# SKIP_UPLOAD=false\n# OVERRIDE_SCHEMA=true\n\n# ============================================================================\n# Project-Specific Environment Variables\n# ============================================================================\n# Additional environment variables can be defined in spec/application.yaml\n# under the 'env.frontend' and 'env.webhook' sections.\n#\n# These are useful for project-specific needs such as:\n# - Third-party API keys (e.g., salesforce)\n# - External service URLs\n# - Feature flags\n# - Custom configuration values\n#\n# Example in spec/application.yaml:\n# env:\n# frontend:\n# SALESFORCE_CLIENT_ID:\n# type: str\n# devDefault: pk_test_xxx\n# webhook:\n# SALESFORCE_CLIENT_SECRET:\n# type: str\n# SALESFORCE_REDIRECT_URI:\n# type: str\n#\n# These will be automatically validated and available in your code via\n# the generated frontend.config.ts and webhooks.config.ts files.\n#\n# IMPORTANT: If you add required custom environment variables (without defaults),\n# remember to also add them to .env.ci with mock values so CI builds can succeed.\n\n# ============================================================================\n# Generated environment\n# ============================================================================\n# Deployment variables (DEPLOYMENT_ID, RESOURCES_URL, and related values)\n# are auto-generated by the PHX server and written to .env.generated when you run\n# phoenix dev, deployment:prepare-dev, or deployment:prepare-local. Development\n# environment settings can be managed via PHX Studio.\n";
1
+ export declare const envExampleFile = "# This file documents developer-supplied Phoenix variables. Copy the values you\n# need into an untracked .env; never commit .env.\n# phoenix dev, deployment:prepare-dev, and deployment:prepare-local write\n# server-generated values to .env.generated; do not maintain them here.\n\n# ============================================================================\n# Development environment (phoenix dev and deployment:prepare-dev)\n# ============================================================================\n# Create a development environment in PHX Studio and paste its block here.\n#\n# SERVER_URL=http://localhost:3000\n# PROJECT_SLUG=<project-slug>\n# ENVIRONMENT_SLUG=<development-environment-slug>\n# DEVELOPMENT_KEY=<development-key>\n\n# ============================================================================\n# Shared-server access (deployment:prepare-local and CI commands only)\n# ============================================================================\n# Ask DevOps for these values when using the legacy prepare-local or CI flows.\n# SERVER_URL=https://phoenix.example.com\n# ENVIRONMENT_API_KEY=<shared-server-api-key>\n# PROJECT_KEY=<shared-server-project-key>\n# PROJECT_SLUG=<project-slug>\n# ENVIRONMENT_SLUG=<environment-slug>\n# LAMBDA_URL=http://localhost:8080\n\n# ============================================================================\n# Dev Configuration (phoenix dev)\n# ============================================================================\n# Override these to run multiple projects simultaneously.\n# Ports auto-increment if occupied, but setting explicit values avoids surprises.\n#\n# EDITOR_WS_PORT=3020\n# ENABLE_EDITOR=true\n# Enable Lingui extraction and compilation during dev. Phoenix warns when this is disabled.\n# WITH_LINGUI=false\n# DEBUG=false\n# FORCE_REBUILD=false\n# USE_APPLICATION_SPEC=false\n# IS_DEV=true\n# A development environment keeps the assistant thread when the assistant setup\n# (manifest, instructions, AI settings) changes. Set to true to lock the thread\n# on a setup change, as every other environment does.\n# ASSISTANT_STRICT_THREADS=false\n#\n# Persistence mode controls how configurator state is stored.\n# Options: 'server' (default), 'local-storage', 'memory'\n# PERSISTENCE_MODE=server\n\n# deployment:prepare-dev and deployment:prepare-local output and behavior overrides:\n# OUT_FILE=.env.generated\n# SKIP_UPLOAD also applies to the deployment phoenix dev prepares at startup.\n# SKIP_UPLOAD=false\n# OVERRIDE_SCHEMA=true\n\n# ============================================================================\n# Project-Specific Environment Variables\n# ============================================================================\n# Additional environment variables can be defined in spec/application.yaml\n# under the 'env.frontend' and 'env.webhook' sections.\n#\n# These are useful for project-specific needs such as:\n# - Third-party API keys (e.g., salesforce)\n# - External service URLs\n# - Feature flags\n# - Custom configuration values\n#\n# Example in spec/application.yaml:\n# env:\n# frontend:\n# SALESFORCE_CLIENT_ID:\n# type: str\n# devDefault: pk_test_xxx\n# webhook:\n# SALESFORCE_CLIENT_SECRET:\n# type: str\n# SALESFORCE_REDIRECT_URI:\n# type: str\n#\n# These will be automatically validated and available in your code via\n# the generated frontend.config.ts and webhooks.config.ts files.\n#\n# IMPORTANT: If you add required custom environment variables (without defaults),\n# remember to also add them to .env.ci with mock values so CI builds can succeed.\n\n# ============================================================================\n# Generated environment\n# ============================================================================\n# Deployment variables (DEPLOYMENT_ID, RESOURCES_URL, and related values)\n# are auto-generated by the PHX server and written to .env.generated when you run\n# phoenix dev, deployment:prepare-dev, or deployment:prepare-local. Development\n# environment settings can be managed via PHX Studio.\n";
@@ -38,6 +38,10 @@ export const envExampleFile=`# This file documents developer-supplied Phoenix va
38
38
  # FORCE_REBUILD=false
39
39
  # USE_APPLICATION_SPEC=false
40
40
  # IS_DEV=true
41
+ # A development environment keeps the assistant thread when the assistant setup
42
+ # (manifest, instructions, AI settings) changes. Set to true to lock the thread
43
+ # on a setup change, as every other environment does.
44
+ # ASSISTANT_STRICT_THREADS=false
41
45
  #
42
46
  # Persistence mode controls how configurator state is stored.
43
47
  # Options: 'server' (default), 'local-storage', 'memory'
@@ -1,38 +1,37 @@
1
- import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as n,generateDomainTypeImports as i,generateFlattenCall as t,generateImports as o,generateThemeCode as a,generateTransformerMap as m,generateTransformerRegistration as r,generateTransformerTypeImports as s,getImportNames as p}from"./generator-shared.js";export const generateFrontendAdminFile=(d=[],c=[],$=[],l=[],f=[],g=[],h=[],u,A,F)=>{let S=o(d,"components"),C=t(p(d,"components")),j=o(c,"adminComponents"),w=t(p(c,"adminComponents")),P=o(f,"handlers"),I=t(p(f,"handlers")),b=o(g,"elements"),E=p(g,"elements"),k=o(h,"adminElements"),B=t([...E,...p(h,"adminElements")]),O=m($,l),x=r(l),y=a(u,A),H=l.length>0,q=s(H),v=i(H),z=F?`
1
+ import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as n,generateImports as i,generateModuleEntries as t,generateModuleList as o,generateThemeCode as a,generateTransformerMap as m,generateTransformerRegistration as r,generateTransformerTypeImports as s}from"./generator-shared.js";export const generateFrontendAdminFile=(p=[],d=[],c=[],l=[],$=[],f=[],g=[],h,u,A)=>{let F=i(p,"components"),S=o(t(p,"components")),C=i(d,"adminComponents"),j=o(t(d,"adminComponents")),w=i($,"handlers"),P=o(t($,"handlers")),I=i(f,"elements"),b=i(g,"adminElements"),x=o([...t(f,"elements"),...t(g,"adminElements")]),E=m(c,l),k=r(l),y=a(h,u),B=s(l.length>0),O=A?`
2
2
  import { createAdminPagesFromSpec } from '@salsita-ai/sdk/admin'
3
- import { $adminPagesSpec, $dataSpec } from './domain/application-types.js'`:"",D=F?`
3
+ import { $adminPagesSpec, $dataSpec } from './domain/application-types.js'`:"",H=A?`
4
4
  const { components: specAdminComponents, pages: specAdminPages } = createAdminPagesFromSpec($adminPagesSpec, $dataSpec)
5
- `:"",G=F?`[...specAdminComponents, ...${w}]`:w;return`// prettier-ignore-file
5
+ `:"",q=A?`[{ origin: '.phoenix/domain/application-types.ts', exports: specAdminComponents }, ...${j}]`:j;return`// prettier-ignore-file
6
6
 
7
7
  ${e}
8
- ${q?`${q}
8
+ ${B?`${B}
9
9
  `:""}
10
10
  import * as interfaceFile from './configurator-interface.js'
11
11
  import * as adminInterfaceFile from './admin-interface.js'
12
12
 
13
13
  import { mountStandaloneAdminApplication } from '@salsita-ai/sdk/application'
14
14
 
15
- import { configuratorBuilder } from './domain.js'${v?`
16
- ${v}`:""}${z}
17
- ${S?`
18
- ${S}`:""}${j?`
19
- ${j}`:""}${P?`
20
- ${P}`:""}${b?`
21
- ${b}`:""}${k?`
22
- ${k}`:""}${y.imports?`
23
- ${y.imports}`:""}${O}
24
- ${D}
15
+ import { configuratorBuilder } from './domain.js'${O}
16
+ ${F?`
17
+ ${F}`:""}${C?`
18
+ ${C}`:""}${w?`
19
+ ${w}`:""}${I?`
20
+ ${I}`:""}${b?`
21
+ ${b}`:""}${y.imports?`
22
+ ${y.imports}`:""}${E}
23
+ ${H}
25
24
  let builder = configuratorBuilder
26
25
  .withInterface(interfaceFile)
27
26
  .withInterface(adminInterfaceFile)
28
- .withComponentOptics(${C})
29
- .withAdminComponentOptics(${G})
30
- .withHandlers(${I})
31
- .withElements(${B})
27
+ .withComponentOptics(${S})
28
+ .withAdminComponentOptics(${q})
29
+ .withHandlers(${P})
30
+ .withElements(${x})
32
31
  ${n}${y.code?`
33
32
  ${y.code}`:""}
34
33
 
35
- ${x}
34
+ ${k}
36
35
 
37
36
  const config = builder.buildConfig()
38
37
 
@@ -1,27 +1,26 @@
1
- import{fileHeader as o}from"./file-header.js";import{defaultEnvsCode as e,generateDomainTypeImports as r,generateFlattenCall as t,generateImports as i,generateThemeCode as n,generateTransformerMap as a,generateTransformerRegistration as s,generateTransformerTypeImports as $,getImportNames as c}from"./generator-shared.js";export const generateFrontendConfiguratorFile=(l=[],f=[],m=[],p=[],d=[],g,u,h=!0,C=!1)=>{let j=i(l,"components"),w=t(c(l,"components")),F=i(p,"handlers"),b=t(c(p,"handlers")),x=i(d,"elements"),A=t(c(d,"elements")),B=a(f,m),k=s(m),E=n(g,u),H=m.length>0,I=$(H),O=r(H);return`// prettier-ignore-file
1
+ import{fileHeader as o}from"./file-header.js";import{defaultEnvsCode as e,generateImports as r,generateModuleEntries as t,generateModuleList as i,generateThemeCode as n,generateTransformerMap as a,generateTransformerRegistration as s,generateTransformerTypeImports as c}from"./generator-shared.js";export const generateFrontendConfiguratorFile=(l=[],$=[],f=[],m=[],p=[],d,g,u=!0,h=!1)=>{let C=r(l,"components"),j=i(t(l,"components")),w=r(m,"handlers"),F=i(t(m,"handlers")),b=r(p,"elements"),x=i(t(p,"elements")),A=a($,f),B=s(f),k=n(d,g),E=c(f.length>0);return`// prettier-ignore-file
2
2
  ${o}
3
- ${C?"":"import { mountConfiguratorApplication } from '@salsita-ai/sdk/application'\n"}${I?`${I}
3
+ ${h?"":"import { mountConfiguratorApplication } from '@salsita-ai/sdk/application'\n"}${E?`${E}
4
4
  `:""}
5
5
  import * as interfaceFile from './configurator-interface.js'
6
6
 
7
- import { configuratorBuilder } from './domain.js'${O?`
8
- ${O}`:""}
9
- ${j?`
10
- ${j}`:""}${F?`
11
- ${F}`:""}${x?`
12
- ${x}`:""}${E.imports?`
13
- ${E.imports}`:""}${B}
7
+ import { configuratorBuilder } from './domain.js'
8
+ ${C?`
9
+ ${C}`:""}${w?`
10
+ ${w}`:""}${b?`
11
+ ${b}`:""}${k.imports?`
12
+ ${k.imports}`:""}${A}
14
13
 
15
14
  const builder = configuratorBuilder
16
15
  .withInterface(interfaceFile)
17
- .withComponentOptics(${w})
18
- .withHandlers(${b})
19
- .withElements(${A})
20
- ${h?e:""}${E.code?`
21
- ${E.code}`:""}${k}
16
+ .withComponentOptics(${j})
17
+ .withHandlers(${F})
18
+ .withElements(${x})
19
+ ${u?e:""}${k.code?`
20
+ ${k.code}`:""}${B}
22
21
 
23
22
 
24
- ${C?"export const config = ":"const config = "}builder.buildConfig()
23
+ ${h?"export const config = ":"const config = "}builder.buildConfig()
25
24
 
26
- ${C?"":"mountConfiguratorApplication(config)"}
25
+ ${h?"":"mountConfiguratorApplication(config)"}
27
26
  `};
@@ -1,45 +1,44 @@
1
- import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as n,generateDomainTypeImports as i,generateFlattenCall as t,generateImports as o,generateThemeCode as m,generateTransformerMap as a,generateTransformerRegistration as r,generateTransformerTypeImports as d,getImportNames as s}from"./generator-shared.js";export const getFrontendEmbeddedAdminFile=(p,c,$=[],l=[],f=[],g=[],u=[],h=[],A=[],F,C,b)=>{let j=o($,"components"),w=t(s($,"components")),E=o(l,"adminComponents"),S=t(s(l,"adminComponents")),P=o(u,"handlers"),I=t(s(u,"handlers")),k=o(h,"elements"),x=s(h,"elements"),B=o(A,"adminElements"),O=t([...x,...s(A,"adminElements")]),y=a(f,g),H=r(g),q=m(F,C),v=g.length>0,z=d(v),D=i(v),G=b?`
1
+ import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as i,generateImports as n,generateModuleEntries as t,generateModuleList as o,generateThemeCode as m,generateTransformerMap as a,generateTransformerRegistration as r,generateTransformerTypeImports as s}from"./generator-shared.js";export const getFrontendEmbeddedAdminFile=(d,p,c=[],$=[],l=[],f=[],g=[],u=[],h=[],A,F,C)=>{let b=n(c,"components"),j=o(t(c,"components")),w=n($,"adminComponents"),E=o(t($,"adminComponents")),S=n(g,"handlers"),P=o(t(g,"handlers")),x=n(u,"elements"),I=n(h,"adminElements"),k=o([...t(u,"elements"),...t(h,"adminElements")]),y=a(l,f),B=r(f),O=m(A,F),H=s(f.length>0),q=C?`
2
2
  import { createAdminPagesFromSpec } from '@salsita-ai/sdk/admin'
3
- import { $adminPagesSpec, $dataSpec } from './domain/application-types.js'`:"",J=b?`
3
+ import { $adminPagesSpec, $dataSpec } from './domain/application-types.js'`:"",v=C?`
4
4
  const { components: specAdminComponents, pages: specAdminPages } = createAdminPagesFromSpec($adminPagesSpec, $dataSpec)
5
- `:"",K=b?`[...specAdminComponents, ...${S}]`:S;return`// prettier-ignore-file
5
+ `:"",z=C?`[{ origin: '.phoenix/domain/application-types.ts', exports: specAdminComponents }, ...${E}]`:E;return`// prettier-ignore-file
6
6
 
7
7
  ${e}
8
- ${z?`${z}
8
+ ${H?`${H}
9
9
  `:""}
10
10
  import * as interfaceFile from './configurator-interface.js'
11
11
  import * as adminInterfaceFile from './admin-interface.js'
12
12
 
13
13
  import { mountEmbeddedAdminApplication } from '@salsita-ai/sdk/application'
14
14
 
15
- import { configuratorBuilder } from './domain.js'${D?`
16
- ${D}`:""}${G}
17
- ${j?`
18
- ${j}`:""}${E?`
19
- ${E}`:""}${P?`
20
- ${P}`:""}${k?`
21
- ${k}`:""}${B?`
22
- ${B}`:""}${q.imports?`
23
- ${q.imports}`:""}${y}
24
- ${J}
15
+ import { configuratorBuilder } from './domain.js'${q}
16
+ ${b?`
17
+ ${b}`:""}${w?`
18
+ ${w}`:""}${S?`
19
+ ${S}`:""}${x?`
20
+ ${x}`:""}${I?`
21
+ ${I}`:""}${O.imports?`
22
+ ${O.imports}`:""}${y}
23
+ ${v}
25
24
  let builder = configuratorBuilder
26
25
  .withInterface(interfaceFile)
27
26
  .withInterface(adminInterfaceFile)
28
- .withComponentOptics(${w})
29
- .withAdminComponentOptics(${K})
30
- .withHandlers(${I})
31
- .withElements(${O})
32
- ${n}${q.code?`
33
- ${q.code}`:""}
27
+ .withComponentOptics(${j})
28
+ .withAdminComponentOptics(${z})
29
+ .withHandlers(${P})
30
+ .withElements(${k})
31
+ ${i}${O.code?`
32
+ ${O.code}`:""}
34
33
 
35
- ${H}
34
+ ${B}
36
35
 
37
36
  const config = builder.buildConfig()
38
37
 
39
38
  export default {
40
39
  mount: () => {
41
- mountEmbeddedAdminApplication(config, '${p}', '${c}')
42
- return 'salsita-admin-${p}-${c}'
40
+ mountEmbeddedAdminApplication(config, '${d}', '${p}')
41
+ return 'salsita-admin-${d}-${p}'
43
42
  },
44
43
  config,
45
44
  }
@@ -1,35 +1,34 @@
1
- import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as o,generateDomainTypeImports as t,generateFlattenCall as r,generateImports as i,generateThemeCode as n,generateTransformerMap as a,generateTransformerRegistration as d,generateTransformerTypeImports as m,getImportNames as s}from"./generator-shared.js";export const getFrontendEmbeddedConfiguratorFile=($,l,f=[],c=[],p=[],u=[],g=[],h,b)=>{let C=i(f,"components"),j=r(s(f,"components")),w=i(u,"handlers"),E=r(s(u,"handlers")),F=i(g,"elements"),x=r(s(g,"elements")),A=a(c,p),B=d(p),k=n(h,b),H=p.length>0,I=m(H),O=t(H);return`// prettier-ignore-file
1
+ import{fileHeader as e}from"./file-header.js";import{defaultEnvsCode as o,generateImports as t,generateModuleEntries as r,generateModuleList as i,generateThemeCode as n,generateTransformerMap as a,generateTransformerRegistration as d,generateTransformerTypeImports as m}from"./generator-shared.js";export const getFrontendEmbeddedConfiguratorFile=(s,l,f=[],$=[],c=[],p=[],u=[],g,h)=>{let b=t(f,"components"),C=i(r(f,"components")),j=t(p,"handlers"),w=i(r(p,"handlers")),E=t(u,"elements"),F=i(r(u,"elements")),x=a($,c),A=d(c),B=n(g,h),k=m(c.length>0);return`// prettier-ignore-file
2
2
 
3
3
  ${e}
4
- ${I?`${I}
4
+ ${k?`${k}
5
5
  `:""}
6
6
  import * as interfaceFile from './configurator-interface.js'
7
7
 
8
8
  import { mountEmbeddedConfiguratorApplication } from '@salsita-ai/sdk/application'
9
9
 
10
- import { configuratorBuilder } from './domain.js'${O?`
11
- ${O}`:""}
12
- ${C?`
13
- ${C}`:""}${w?`
14
- ${w}`:""}${F?`
15
- ${F}`:""}${k.imports?`
16
- ${k.imports}`:""}${A}
10
+ import { configuratorBuilder } from './domain.js'
11
+ ${b?`
12
+ ${b}`:""}${j?`
13
+ ${j}`:""}${E?`
14
+ ${E}`:""}${B.imports?`
15
+ ${B.imports}`:""}${x}
17
16
 
18
17
  const builder = configuratorBuilder
19
18
  .withInterface(interfaceFile)
20
- .withComponentOptics(${j})
21
- .withHandlers(${E})
22
- .withElements(${x})
23
- ${o}${k.code?`
24
- ${k.code}`:""}${B}
19
+ .withComponentOptics(${C})
20
+ .withHandlers(${w})
21
+ .withElements(${F})
22
+ ${o}${B.code?`
23
+ ${B.code}`:""}${A}
25
24
 
26
25
 
27
26
  const config = builder.buildConfig()
28
27
 
29
28
  export default {
30
29
  mount: () => {
31
- mountEmbeddedConfiguratorApplication(config, '${$}', '${l}')
32
- return 'salsita-configurator-${$}-${l}'
30
+ mountEmbeddedConfiguratorApplication(config, '${s}', '${l}')
31
+ return 'salsita-configurator-${s}-${l}'
33
32
  },
34
33
  config,
35
34
  }
@@ -4,9 +4,14 @@
4
4
  */
5
5
  export declare const getImportNames: (files: readonly string[], prefix: string) => readonly string[];
6
6
  export declare const generateImports: (files: readonly string[], prefix: string) => string;
7
- export declare const generateFlattenCall: (importNames: readonly string[]) => string;
7
+ /**
8
+ * The entries of a project-module list for one category of files: each default export paired with its project
9
+ * path. The generated file passes them to the configurator builder unchecked; the SDK validates each export
10
+ * against its folder's contract and names the file when it does not match.
11
+ */
12
+ export declare const generateModuleEntries: (files: readonly string[], prefix: string) => readonly string[];
13
+ export declare const generateModuleList: (entries: readonly string[]) => string;
8
14
  export declare const generateTransformerTypeImports: (hasTransformers: boolean) => string;
9
- export declare const generateDomainTypeImports: (hasTransformers: boolean) => string;
10
15
  export declare const generateTransformerMap: (transformersFiles: readonly string[], transformers: Array<{
11
16
  name: string;
12
17
  priority?: number;
@@ -1,17 +1,13 @@
1
- import{basename as e,extname as r}from"path";export const getImportNames=(e,r)=>e.map((e,t)=>`${r}${t}`);export const generateImports=(e,r)=>{if(0===e.length)return"";let t=getImportNames(e,r);return e.map((e,r)=>{let n=`../src/${e.replace(/\.tsx?$/,"")}.js`;return`import ${t[r]} from '${n}'`}).join("\n")};export const generateFlattenCall=e=>{if(0===e.length)return"[]";let r=e.map(e=>`Array.isArray(${e}) ? ${e} : [${e}]`).join(",\n ");return 1===e.length?`Array.isArray(${e[0]}) ? ${e[0]} : [${e[0]}]`:`[
2
- ${r}
3
- ].flat()`};export const generateTransformerTypeImports=e=>e?"import type { ImportedTransformer, SpecTransformer } from '@salsita-ai/sdk/domain'":"";export const generateDomainTypeImports=e=>e?`import type { AnyDomainEntity, RootEntity } from './domain/model/index.js'
4
- import type { NavigationState, ViewState, ToolState, ExportState } from './domain/application-types.js'
5
- import type { $Map } from './domain/enhanced-model.js'`:"";export const generateTransformerMap=(t,n)=>{if(0===n.length)return"";if(0===t.length)throw Error(`Transformers specified in spec but no transformer files found in transformers/ folder. Expected transformers: ${n.map(e=>e.name).join(", ")}`);let o=getImportNames(t,"transformers"),a=[];t.forEach((e,r)=>{let t=o[r];a.push(`import ${t} from '../src/${e.replace(/\.tsx?$/,".js")}'`)});let s=`const allImportedTransformers: ReadonlyArray<ImportedTransformer<AnyDomainEntity, RootEntity, $Map, NavigationState, ViewState, ToolState, ExportState>> = [
6
- ${t.map((t,n)=>{let a=o[n],s=e(t,r(t));return` { name: '${s}', transformer: ${a} }`}).join(",\n")}
7
- ]`,m=n.map(e=>` { name: '${e.name}', priority: ${e.priority??"Infinity"} }`).join(",\n"),i=`const specTransformers: SpecTransformer[] = [
8
- ${m}
9
- ]`;return`${a.length>0?`
10
- ${a.join("\n")}`:""}
11
-
1
+ export const getImportNames=(e,r)=>e.map((e,t)=>`${r}${t}`);export const generateImports=(e,r)=>{if(0===e.length)return"";let t=getImportNames(e,r);return e.map((e,r)=>{let n=`../src/${e.replace(/\.tsx?$/,"")}.js`;return`import ${t[r]} from '${n}'`}).join("\n")};export const generateModuleEntries=(e,r)=>{let t=getImportNames(e,r);return e.map((e,r)=>`{ origin: 'src/${e}', exports: ${t[r]} }`)};export const generateModuleList=e=>0===e.length?"[]":`[
2
+ ${e.join(",\n ")}
3
+ ]`;export const generateTransformerTypeImports=e=>e?"import type { ProjectModule, SpecTransformer } from '@salsita-ai/sdk/domain'":"";export const generateTransformerMap=(e,r)=>{if(0===r.length)return"";if(0===e.length)throw Error(`Transformers specified in spec but no transformer files found in transformers/ folder. Expected transformers: ${r.map(e=>e.name).join(", ")}`);let t=getImportNames(e,"transformers"),n=[];e.forEach((e,r)=>{let o=t[r];n.push(`import ${o} from '../src/${e.replace(/\.tsx?$/,".js")}'`)});let o=`const allImportedTransformers: readonly ProjectModule[] = ${generateModuleList(generateModuleEntries(e,"transformers"))}`,s=r.map(e=>` { name: '${e.name}', priority: ${e.priority??"Infinity"} }`).join(",\n"),a=`const specTransformers: SpecTransformer[] = [
12
4
  ${s}
5
+ ]`;return`${n.length>0?`
6
+ ${n.join("\n")}`:""}
7
+
8
+ ${o}
13
9
 
14
- ${i}`};export const generateTransformerRegistration=e=>0===e.length?"":".withTransformers(allImportedTransformers, specTransformers)";export const generateThemeCode=(e,r)=>e?{imports:"import { getPhoenixThemes } from '@salsita-ai/sdk/ui'",code:` .withTheme(getPhoenixThemes().${e})`}:r?{imports:"import { createScaledPhoenixTheme } from '@salsita-ai/sdk/ui'",code:` .withTheme(createScaledPhoenixTheme(${JSON.stringify(r,null,2)}))`}:{imports:"",code:""};export const defaultEnvsCode=` .withDefaultEnvs({
10
+ ${a}`};export const generateTransformerRegistration=e=>0===e.length?"":".withTransformers(allImportedTransformers, specTransformers)";export const generateThemeCode=(e,r)=>e?{imports:"import { getPhoenixThemes } from '@salsita-ai/sdk/ui'",code:` .withTheme(getPhoenixThemes().${e})`}:r?{imports:"import { createScaledPhoenixTheme } from '@salsita-ai/sdk/ui'",code:` .withTheme(createScaledPhoenixTheme(${JSON.stringify(r,null,2)}))`}:{imports:"",code:""};export const defaultEnvsCode=` .withDefaultEnvs({
15
11
  isDev: phx.frontendEnv.IS_DEV,
16
12
  deploymentId: phx.frontendEnv.DEPLOYMENT_ID,
17
13
  datadogEnabled: phx.frontendEnv.DATADOG_ENABLED,
@@ -13,7 +13,7 @@ export { generateFrontendAdminFile } from './frontend-admin.js';
13
13
  export { generateFrontendConfiguratorFile } from './frontend-configurator.js';
14
14
  export { getFrontendEmbeddedAdminFile } from './frontend-embedded-admin.js';
15
15
  export { getFrontendEmbeddedConfiguratorFile } from './frontend-embedded-configurator.js';
16
- export { defaultEnvsCode, generateDomainTypeImports, generateFlattenCall, generateThemeCode, generateTransformerMap, generateTransformerRegistration, generateTransformerTypeImports, } from './generator-shared.js';
16
+ export { defaultEnvsCode, generateModuleEntries, generateModuleList, generateThemeCode, generateTransformerMap, generateTransformerRegistration, generateTransformerTypeImports, } from './generator-shared.js';
17
17
  export { GITIGNORE_END_MARKER, GITIGNORE_START_MARKER, gitignoreFile, mergeGitignoreContent } from './gitignore.js';
18
18
  export { claudeMdFile, cursorRulesFile, mergeClaudeMdContent, mergeCursorRulesContent, mergeMarkerContent, reviewCommandFile, SDK_END_MARKER, SDK_START_MARKER, } from './agents/index.js';
19
19
  export { globalTsFile } from './globals.js';
@@ -1 +1 @@
1
- export{adminInterfaceFile}from"./admin-interface.js";export{privateAssetsReadme,publicAssetsReadme}from"./assets-readme.js";export{configuratorInterfaceFile}from"./configurator-interface.js";export{generateIndexDomainFile}from"./domain-index.js";export{generateEditorFile}from"./editor.js";export{envCiFile}from"./env-ci.js";export{generateFrontendConfig,generateWebhookConfig}from"./env-config.js";export{envExampleFile}from"./env-example.js";export{eslintFile}from"./eslint.js";export{faviconBase64}from"./favicon.js";export{fileHeader}from"./file-header.js";export{generateFrontendAdminFile}from"./frontend-admin.js";export{generateFrontendConfiguratorFile}from"./frontend-configurator.js";export{getFrontendEmbeddedAdminFile}from"./frontend-embedded-admin.js";export{getFrontendEmbeddedConfiguratorFile}from"./frontend-embedded-configurator.js";export{defaultEnvsCode,generateDomainTypeImports,generateFlattenCall,generateThemeCode,generateTransformerMap,generateTransformerRegistration,generateTransformerTypeImports}from"./generator-shared.js";export{GITIGNORE_END_MARKER,GITIGNORE_START_MARKER,gitignoreFile,mergeGitignoreContent}from"./gitignore.js";export{claudeMdFile,cursorRulesFile,mergeClaudeMdContent,mergeCursorRulesContent,mergeMarkerContent,reviewCommandFile,SDK_END_MARKER,SDK_START_MARKER}from"./agents/index.js";export{globalTsFile}from"./globals.js";export{htmlAdminIndexFile}from"./html-admin-index.js";export{generateHtmlIndexFile}from"./html-index.js";export{generateI18nIndexFile}from"./i18n-index.js";export{getLinguiRcFile}from"./lingui-rc.js";export{generateNvmrc,generatePackageJson}from"./package-json.js";export{generatePhoenixConfigFile}from"./phoenix-config.js";export{prettierFile}from"./prettier.js";export{prettierignoreFile}from"./prettierignore.js";export{generateReadme}from"./readme.js";export{robotsTxtContent}from"./robots-txt.js";export{generateApplicationYaml,generateModelYaml}from"./spec-application.js";export{tsconfigFile}from"./tsconfig.js";export{generateWebhookBuildersFile}from"./webhook-builders.js";export{webhookImplementationFile}from"./webhook-implementation.js";export{webhookIndexFile}from"./webhook.index.js";
1
+ export{adminInterfaceFile}from"./admin-interface.js";export{privateAssetsReadme,publicAssetsReadme}from"./assets-readme.js";export{configuratorInterfaceFile}from"./configurator-interface.js";export{generateIndexDomainFile}from"./domain-index.js";export{generateEditorFile}from"./editor.js";export{envCiFile}from"./env-ci.js";export{generateFrontendConfig,generateWebhookConfig}from"./env-config.js";export{envExampleFile}from"./env-example.js";export{eslintFile}from"./eslint.js";export{faviconBase64}from"./favicon.js";export{fileHeader}from"./file-header.js";export{generateFrontendAdminFile}from"./frontend-admin.js";export{generateFrontendConfiguratorFile}from"./frontend-configurator.js";export{getFrontendEmbeddedAdminFile}from"./frontend-embedded-admin.js";export{getFrontendEmbeddedConfiguratorFile}from"./frontend-embedded-configurator.js";export{defaultEnvsCode,generateModuleEntries,generateModuleList,generateThemeCode,generateTransformerMap,generateTransformerRegistration,generateTransformerTypeImports}from"./generator-shared.js";export{GITIGNORE_END_MARKER,GITIGNORE_START_MARKER,gitignoreFile,mergeGitignoreContent}from"./gitignore.js";export{claudeMdFile,cursorRulesFile,mergeClaudeMdContent,mergeCursorRulesContent,mergeMarkerContent,reviewCommandFile,SDK_END_MARKER,SDK_START_MARKER}from"./agents/index.js";export{globalTsFile}from"./globals.js";export{htmlAdminIndexFile}from"./html-admin-index.js";export{generateHtmlIndexFile}from"./html-index.js";export{generateI18nIndexFile}from"./i18n-index.js";export{getLinguiRcFile}from"./lingui-rc.js";export{generateNvmrc,generatePackageJson}from"./package-json.js";export{generatePhoenixConfigFile}from"./phoenix-config.js";export{prettierFile}from"./prettier.js";export{prettierignoreFile}from"./prettierignore.js";export{generateReadme}from"./readme.js";export{robotsTxtContent}from"./robots-txt.js";export{generateApplicationYaml,generateModelYaml}from"./spec-application.js";export{tsconfigFile}from"./tsconfig.js";export{generateWebhookBuildersFile}from"./webhook-builders.js";export{webhookImplementationFile}from"./webhook-implementation.js";export{webhookIndexFile}from"./webhook.index.js";
@@ -1,23 +1,23 @@
1
- import{fileHeader as e}from"./file-header.js";import{generateFlattenCall as o,getImportNames as r}from"./generator-shared.js";export const generateWebhookBuildersFile=(i,t=[])=>{let a=i.useClerk?` clerk: {
1
+ import{fileHeader as e}from"./file-header.js";import{generateModuleEntries as o,generateModuleList as r,getImportNames as i}from"./generator-shared.js";export const generateWebhookBuildersFile=(a,t=[])=>{let l=a.useClerk?` clerk: {
2
2
  apiKey: phx.webhooksEnv.CLERK_API_KEY,
3
3
  authorizedParties: [phx.webhooksEnv.FRONTEND_URL, phx.webhooksEnv.RESOURCES_URL],
4
4
  jwtSecret: phx.webhooksEnv.JWT_SECRET_BASE64,
5
5
  oauthClientId: phx.webhooksEnv.OAUTH_PROVIDER_CLIENT_ID,
6
6
  oauthClientSecret: phx.webhooksEnv.OAUTH_PROVIDER_CLIENT_SECRET,
7
7
  oauthProviderBaseUrl: phx.webhooksEnv.OAUTH_PROVIDER_BASE_URL,
8
- },`:"",l=r(t,"handlers"),h=t.map((e,o)=>{let r=e.replace(/\.tsx?$/,"");return`import ${l[o]} from '../../src/${r}.js'`}).join("\n"),n=t.length>0,s=o(l),u=n?`
9
- .withHandlers(${s})`:"";return`${e}
8
+ },`:"",h=i(t,"handlers"),n=t.map((e,o)=>{let r=e.replace(/\.tsx?$/,"");return`import ${h[o]} from '../../src/${r}.js'`}).join("\n"),s=t.length>0,u=r(o(t,"handlers")),d=s?`
9
+ .withHandlers(${u})`:"";return`${e}
10
10
  import { createDomainWebhook } from '@salsita-ai/sdk/webhook'
11
11
 
12
12
  import { configuratorBuilder } from '../domain.js'
13
13
  import { createI18n } from '../i18n.js'
14
- ${h?`
15
- ${h}
14
+ ${n?`
15
+ ${n}
16
16
  `:""}
17
17
  const webhookConfiguratorBuilder = configuratorBuilder
18
18
  .withDefaultEnvs({
19
19
  isDev: phx.webhooksEnv.IS_DEV,
20
- })${u}
20
+ })${d}
21
21
 
22
22
  export const {
23
23
  authHandlerBuilder,
@@ -30,7 +30,7 @@ export const {
30
30
  } = createDomainWebhook({
31
31
  configuratorBuilder: webhookConfiguratorBuilder,
32
32
  createI18n,
33
- ${a}
33
+ ${l}
34
34
  })
35
35
 
36
36
  // @ts-ignore - Initialize the globals
@@ -1 +1 @@
1
- import{existsSync as e,lstatSync as i,readFileSync as t,readdirSync as r,rmSync as o,unlinkSync as s}from"fs";import{join as n}from"path";import{format as a}from"prettier";import{prettierrc as l}from"@salsita-ai/common/prettier";import{GeneratedApplication as c,GeneratedApplicationFile as p,RuntimeReferenceStore as g,buildPhoenixDefinitions as f,createContentDiffTracker as h,generateApplicationCode as m,parseApplicationFiles as d}from"#package/application-spec";import{getAllPhxDefinitions as u}from"#package/domain";import{compileWithSwc as S}from"../services/swc.js";import{syncChangedFiles as b}from"../utils/index.js";import{readApplicationFiles as w}from"./application-spec-file-reader.js";import{cleanStaleAgentSkills as j,removeProjectFiles as v}from"./clean-project-files.js";import{swcEvalExpressionParser as D,swcModuleAnalyzer as F}from"./swc-module-analyzer.js";let x=".phoenix",y=`${x}/`,P=async e=>{if(e.binary||!1===e.format)return e;try{let i=await a(e.content,{...l,filepath:e.path});return p(e.path,i,{binary:e.binary,format:e.format})}catch{return e}},k=async e=>{let[i,t,r]=await Promise.all([Promise.all(e.generatedProjectFiles.map(P)),Promise.all(e.initialProjectFiles.map(P)),Promise.all(e.prettierFiles.map(P))]);return c({files:e.files,generatedProjectFiles:i,initialProjectFiles:t,prettierFiles:r,removedProjectFiles:e.removedProjectFiles})};export class ApplicationSpecBuilder{contentDiff;referenceStore;config;logger;phxDefinitions;constructor(e){this.config=e,this.logger=e.logger,this.referenceStore=new g,this.contentDiff=h({readDiskContent:this.readDiskContent}),this.phxDefinitions=f(u())}async build(e){let i=e?.parsingContext,t=e?.compile??!0;e?.force&&this.referenceStore.clear();let r=i?.startSpan("readFiles","build","application-spec-builder.ts"),o=e?.rawProjectFiles??await w({envs:{}});r?.();let s=d({rawProjectFiles:o,phxDefinitions:this.phxDefinitions},{analyzer:F,evalExpressionParser:D,referenceStore:this.referenceStore,logger:this.logger,parsingContext:i});if(!s.ok)return{ok:!1,rawProjectFiles:o,errors:s.errors,diagnostics:s.diagnostics,metrics:s.metrics,counts:s.counts};let{applicationSpec:n,categorizedFiles:a,rawMockTemplates:l}=s.value,c=i?.startSpan("generateCode","build","application-spec-builder.ts"),p=m({applicationSpec:n,categorizedFiles:a,phxDefinitions:this.phxDefinitions,sdkVersion:this.config.sdkVersion,cliUseWorkspace:this.config.cliUseWorkspace,name:this.config.name,description:this.config.description,projectSlug:this.config.projectSlug,environmentSlug:this.config.environmentSlug,enableEditor:this.config.enableEditor,inlineTemplates:this.config.inlineTemplates,rawMockTemplates:l});c?.();let g=i?.startSpan("cleanStaleFiles","build","application-spec-builder.ts"),f=new Set(p.files.map(e=>e.path));this.cleanStaleGeneratedFiles(f),v(p.removedProjectFiles,{logger:this.logger}),j(new Set(p.generatedProjectFiles.map(e=>e.path)),{logger:this.logger}),g?.();let h=i?.startSpan("contentDiff","build","application-spec-builder.ts"),u=await k(p),S=this.contentDiff.getChangedApplicationFiles(u,{generatedFilesPathPrefix:y,force:e?.force}),x=S.changedGeneratedFiles;h?.(),x.length>0?this.logger.info(` ${x.length}/${p.files.length} generated files changed`):this.logger.info(" No generated files changed");let P=S.filesToWrite.length-x.length;P>0&&this.logger.info(` ${P} project files changed`);let C=i?.startSpan("writeFiles","build","application-spec-builder.ts");return await b(S.filesToWrite,{logger:this.logger,skipChecksum:!0}),C?.(),t&&await this.compile(i),{ok:!0,application:s.value,changedFiles:x,diagnostics:s.diagnostics,metrics:s.metrics,counts:s.counts}}async compile(e){let i=e?.startSpan("swcCompile(src)","build","application-spec-builder.ts");await S({sourceDir:"src",outDir:`./${x}/.swc/src`},{logger:this.logger}),i?.();let t=e?.startSpan("swcCompile(.phoenix)","build","application-spec-builder.ts");await S({sourceDir:x,outDir:`./${x}/.swc/${x}`},{logger:this.logger}),t?.()}readDiskContent=i=>{try{if(e(i))return t(i,"utf-8")}catch{}};cleanStaleGeneratedFiles(t){let a=new Set(["public",".swc","dist","phoenix-dev.log","phoenix-dev.log.1","phoenix-dev.log.2","variants","variant-recovery.json"]);try{if(!e(x))return;for(let e of r(x)){if(a.has(e)||t.has(e))continue;let r=n(x,e);try{let e=i(r);if(e.isSymbolicLink())continue;e.isDirectory()?o(r,{recursive:!0}):s(r),this.logger.debug(` Removed stale: ${r}`)}catch{}}}catch{}}}
1
+ import{existsSync as e,lstatSync as i,readFileSync as t,readdirSync as r,rmSync as o,unlinkSync as s}from"fs";import{join as n}from"path";import{format as a}from"prettier";import{prettierrc as l}from"@salsita-ai/common/prettier";import{GeneratedApplication as c,GeneratedApplicationFile as p,RuntimeReferenceStore as g,buildPhoenixDefinitions as f,createContentDiffTracker as h,generateApplicationCode as d,parseApplicationFiles as m}from"#package/application-spec";import{getAllPhxDefinitions as u}from"#package/domain";import{compileWithSwc as w}from"../services/swc.js";import{isInsideGitRepository as b,syncChangedFiles as S}from"../utils/index.js";import{readApplicationFiles as j}from"./application-spec-file-reader.js";import{cleanStaleAgentSkills as v,removeProjectFiles as D}from"./clean-project-files.js";import{swcEvalExpressionParser as F,swcModuleAnalyzer as x}from"./swc-module-analyzer.js";let y=".phoenix",P=`${y}/`,k=async e=>{if(e.binary||!1===e.format)return e;try{let i=await a(e.content,{...l,filepath:e.path});return p(e.path,i,{binary:e.binary,format:e.format})}catch{return e}},C=async e=>{let[i,t,r]=await Promise.all([Promise.all(e.generatedProjectFiles.map(k)),Promise.all(e.initialProjectFiles.map(k)),Promise.all(e.prettierFiles.map(k))]);return c({files:e.files,generatedProjectFiles:i,initialProjectFiles:t,prettierFiles:r,removedProjectFiles:e.removedProjectFiles})};export class ApplicationSpecBuilder{contentDiff;referenceStore;config;logger;phxDefinitions;constructor(e){this.config=e,this.logger=e.logger,this.referenceStore=new g,this.contentDiff=h({readDiskContent:this.readDiskContent}),this.phxDefinitions=f(u())}async build(e){let i=e?.parsingContext,t=e?.compile??!0;e?.force&&this.referenceStore.clear();let r=i?.startSpan("readFiles","build","application-spec-builder.ts"),o=e?.rawProjectFiles??await j({envs:{}});r?.();let s=m({rawProjectFiles:o,phxDefinitions:this.phxDefinitions},{analyzer:x,evalExpressionParser:F,referenceStore:this.referenceStore,logger:this.logger,parsingContext:i});if(!s.ok)return{ok:!1,rawProjectFiles:o,errors:s.errors,diagnostics:s.diagnostics,metrics:s.metrics,counts:s.counts};let{applicationSpec:n,categorizedFiles:a,rawMockTemplates:l}=s.value,c=i?.startSpan("generateCode","build","application-spec-builder.ts"),p=b(process.cwd());p||this.logger.debug(" Not inside a git repository, .gitignore is not written");let g=d({applicationSpec:n,categorizedFiles:a,phxDefinitions:this.phxDefinitions,sdkVersion:this.config.sdkVersion,projectInGitRepository:p,cliUseWorkspace:this.config.cliUseWorkspace,name:this.config.name,description:this.config.description,projectSlug:this.config.projectSlug,environmentSlug:this.config.environmentSlug,enableEditor:this.config.enableEditor,inlineTemplates:this.config.inlineTemplates,rawMockTemplates:l});c?.();let f=i?.startSpan("cleanStaleFiles","build","application-spec-builder.ts"),h=new Set(g.files.map(e=>e.path));this.cleanStaleGeneratedFiles(h),D(g.removedProjectFiles,{logger:this.logger}),v(new Set(g.generatedProjectFiles.map(e=>e.path)),{logger:this.logger}),f?.();let u=i?.startSpan("contentDiff","build","application-spec-builder.ts"),w=await C(g),y=this.contentDiff.getChangedApplicationFiles(w,{generatedFilesPathPrefix:P,force:e?.force}),k=y.changedGeneratedFiles;u?.(),k.length>0?this.logger.info(` ${k.length}/${g.files.length} generated files changed`):this.logger.info(" No generated files changed");let $=y.filesToWrite.length-k.length;$>0&&this.logger.info(` ${$} project files changed`);let T=i?.startSpan("writeFiles","build","application-spec-builder.ts");return await S(y.filesToWrite,{logger:this.logger,skipChecksum:!0}),T?.(),t&&await this.compile(i),{ok:!0,application:s.value,changedFiles:k,diagnostics:s.diagnostics,metrics:s.metrics,counts:s.counts}}async compile(e){let i=e?.startSpan("swcCompile(src)","build","application-spec-builder.ts");await w({sourceDir:"src",outDir:`./${y}/.swc/src`},{logger:this.logger}),i?.();let t=e?.startSpan("swcCompile(.phoenix)","build","application-spec-builder.ts");await w({sourceDir:y,outDir:`./${y}/.swc/${y}`},{logger:this.logger}),t?.()}readDiskContent=i=>{try{if(e(i))return t(i,"utf-8")}catch{}};cleanStaleGeneratedFiles(t){let a=new Set(["public",".swc","dist","phoenix-dev.log","phoenix-dev.log.1","phoenix-dev.log.2","variants","variant-recovery.json"]);try{if(!e(y))return;for(let e of r(y)){if(a.has(e)||t.has(e))continue;let r=n(y,e);try{let e=i(r);if(e.isSymbolicLink())continue;e.isDirectory()?o(r,{recursive:!0}):s(r),this.logger.debug(` Removed stale: ${r}`)}catch{}}}catch{}}}
@@ -17,10 +17,11 @@ interface DeploymentData {
17
17
  readonly embeddings: undefined;
18
18
  readonly chat: undefined;
19
19
  /**
20
- * What the deployment registers for the experimental assistant: the GraphQL SDL and prompt generated
21
- * from the `assistant` spec section, with its instructions and AI settings. `undefined` without one.
20
+ * Whether the deployment webhook supplies assistant setup from the resolved spec.
22
21
  */
23
- readonly assistant: DeploymentAssistant | undefined;
22
+ readonly assistant: boolean;
23
+ /** Generated locally for prepare-command diagnostics; never sent to the server. */
24
+ readonly assistantSetup: DeploymentAssistant | undefined;
24
25
  readonly assets: {
25
26
  readonly privateFilePaths: readonly string[];
26
27
  readonly publicFilePaths: readonly string[];
@@ -1,2 +1,2 @@
1
- import{RuntimeReferenceStore as e,buildPhoenixDefinitions as a,parseApplicationFiles as s}from"#package/application-spec";import{getAllPhxDefinitions as i}from"#package/domain";import{readApplicationFiles as t}from"./application-spec-file-reader.js";import{generateAssistantPrompt as o}from"./generate-assistant-prompt.js";import{readProjectAssets as r}from"./read-project-assets.js";import{swcEvalExpressionParser as p,swcModuleAnalyzer as n}from"./swc-module-analyzer.js";export const resolveApplicationSpecDeploymentData=async l=>{let{skipUpload:c,logger:m}=l,d=s({rawProjectFiles:await t({envs:{}}),phxDefinitions:a(i())},{analyzer:n,evalExpressionParser:p,referenceStore:new e,logger:m});if(!d.ok)throw Error(`Failed to parse application spec:
2
- ${d.errors.map(e=>` [${e.code}] ${e.message}`).join("\n")}`);let{configurator:h,admin:u}=d.value.applicationSpec,{configurationSchema:v}=h,f=u.configurationSchema,g=await r(),S=[],F=[],b=[],j=[];c||(S=g.privateAssetFiles,F=g.publicAssetFiles,b=g.privateAssetFilesFullPaths,j=g.publicAssetFilesFullPaths,m.debug(`Scanned assets: ${S.length} private files, ${F.length} public files`));let{appMetadata:A,infra:w}=d.value.applicationSpec,{assistant:k,assistantServerSettings:D}=h;return{schema:{...v.schema},schemaVersion:v.version,adminSchema:{...f.schema},adminSchemaVersion:f.version,applicationVersion:A.applicationVersion,publishedDataHash:h.dataSchemas.publishedDataHash,useAuthHook:A.useAuthHook,aclCanCreate:w.acl.canCreate,embeddings:void 0,chat:void 0,assistant:k&&D?{sdl:k.sdl,prompt:o(k),instructions:D.instructions??void 0,ai:D.ai}:void 0,assets:{privateFilePaths:S,publicFilePaths:F,privateFilesFullPaths:b,publicFilesFullPaths:j}}};
1
+ import{RuntimeReferenceStore as e,buildPhoenixDefinitions as a,parseApplicationFiles as s}from"#package/application-spec";import{generateAssistantPrompt as i,getAllPhxDefinitions as t}from"#package/domain";import{readApplicationFiles as o}from"./application-spec-file-reader.js";import{readProjectAssets as r}from"./read-project-assets.js";import{swcEvalExpressionParser as n,swcModuleAnalyzer as l}from"./swc-module-analyzer.js";export const resolveApplicationSpecDeploymentData=async p=>{let{skipUpload:c,logger:m}=p,u=s({rawProjectFiles:await o({envs:{}}),phxDefinitions:a(t())},{analyzer:l,evalExpressionParser:n,referenceStore:new e,logger:m});if(!u.ok)throw Error(`Failed to parse application spec:
2
+ ${u.errors.map(e=>` [${e.code}] ${e.message}`).join("\n")}`);let{configurator:d,admin:h}=u.value.applicationSpec,{configurationSchema:v}=d,f=h.configurationSchema,S=await r(),g=[],F=[],b=[],A=[];c||(g=S.privateAssetFiles,F=S.publicAssetFiles,b=S.privateAssetFilesFullPaths,A=S.publicAssetFilesFullPaths,m.debug(`Scanned assets: ${g.length} private files, ${F.length} public files`));let{appMetadata:j,infra:w}=u.value.applicationSpec,{assistant:k,assistantServerSettings:D}=d;return{schema:{...v.schema},schemaVersion:v.version,adminSchema:{...f.schema},adminSchemaVersion:f.version,applicationVersion:j.applicationVersion,publishedDataHash:d.dataSchemas.publishedDataHash,useAuthHook:j.useAuthHook,aclCanCreate:w.acl.canCreate,embeddings:void 0,chat:void 0,assistant:null!==k&&null!==D,assistantSetup:k&&D?{sdl:k.sdl,prompt:i(k),instructions:D.instructions??void 0,ai:D.ai}:void 0,assets:{privateFilePaths:g,publicFilePaths:F,privateFilesFullPaths:b,publicFilesFullPaths:A}}};
@@ -6,10 +6,10 @@ export interface InitCommandProps {
6
6
  }
7
7
  /**
8
8
  * Starts a Phoenix project: writes a `package.json` that depends on this CLI's SDK version when the folder has none,
9
- * the starter spec and the pnpm settings the first install needs, and switches the project to the application-spec
10
- * pipeline. It touches no server and asks
11
- * nothing: the starter spec names the default project of whichever workspace the developer signs in to, and
12
- * everything else is generated by sync or the build.
9
+ * the starter spec and the pnpm settings the first install needs, adds the `dev`, `build`, `deploy`, `check` and `fix`
10
+ * scripts the project does not have yet, and switches the project to the application-spec pipeline. It touches no
11
+ * server and asks nothing: the starter spec names the default project of whichever workspace the developer signs in
12
+ * to, and everything else is generated by sync or the build.
13
13
  *
14
14
  * Refuses when a `spec/` folder exists, and when an existing `package.json` does not depend on the SDK.
15
15
  */
@@ -1 +1 @@
1
- import{existsSync as e}from"fs";import{mkdir as n,readFile as t,writeFile as i}from"fs/promises";import{basename as o,dirname as r,join as p}from"path";import{ensureWorkspaceInstallSettings as a}from"../utils/index.js";import{starterSpecFiles as s}from"./init-starter-spec.js";let c="@salsita-ai/sdk",l=async e=>{let n=`Install the SDK first (\`pnpm add ${c}\`), then rerun \`pnpm phoenix init\`.`,i=JSON.parse(await t(e,"utf-8"));if("object"!=typeof i||null===i||Array.isArray(i))throw Error(`phoenix init could not read package.json because it is not a JSON object. ${n}`);if(!["dependencies","devDependencies"].some(e=>{let n=Reflect.get(i,e);return"object"==typeof n&&null!==n&&c in n}))throw Error(`phoenix init found no ${c} dependency in package.json. ${n}`);return{...i}},d=async e=>{for(let t of s){let o=p(e,t.path);await n(r(o),{recursive:!0}),await i(o,t.content)}},m=async(e,n)=>{let t=n.phoenix;await i(e,JSON.stringify({...n,phoenix:{..."object"==typeof t&&null!==t?t:{},applicationFlow:!0}},null,2)+"\n")};export const runInitCommand=async(t,{logger:i})=>{var r,s;let f,u=t.projectRoot??process.cwd(),h=p(u,"package.json");if(e(p(u,"spec")))throw Error("phoenix init found an existing spec/ folder. init only starts new projects, and writing a starter spec would overwrite or mix with the existing one. To update an existing project, run `pnpm phoenix sync`; to start over, run init in an empty project folder.");let w=e(h)?await l(h):(r=u,s=t.sdkVersion,{name:(f=o(r).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[._-]+|[-]+$/g,"")).length>0?f:"phoenix-configurator",private:!0,type:"module",dependencies:{[c]:s},devDependencies:{"@lingui/cli":"5.9.5","@lingui/swc-plugin":"5.11.0"}});i.step(`Writing the starter project to ${u}`),await n(u,{recursive:!0}),await d(u),await m(h,w),a(u),i.success(`Phoenix project created in ${u}.`),i.info("\nNext steps, in the project folder:\n pnpm install\n pnpm phoenix sync\n pnpm phoenix login <workspace>\n pnpm phoenix dev\n pnpm phoenix deploy\n\nDeveloping against a Studio development environment instead? Paste its .env block into .env before phoenix dev.")};
1
+ import{existsSync as e}from"fs";import{mkdir as n,readFile as t,writeFile as i}from"fs/promises";import{basename as o,dirname as r,join as p}from"path";import{ensureWorkspaceInstallSettings as s}from"../utils/index.js";import{starterSpecFiles as a}from"./init-starter-spec.js";let c="@salsita-ai/sdk",l={dev:"phoenix dev",build:"phoenix build",deploy:"phoenix deploy",check:"phoenix check",fix:"phoenix fix"},d=async e=>{let n=`Install the SDK first (\`pnpm add ${c}\`), then rerun \`pnpm phoenix init\`.`,i=JSON.parse(await t(e,"utf-8"));if("object"!=typeof i||null===i||Array.isArray(i))throw Error(`phoenix init could not read package.json because it is not a JSON object. ${n}`);if(!["dependencies","devDependencies"].some(e=>{let n=Reflect.get(i,e);return"object"==typeof n&&null!==n&&c in n}))throw Error(`phoenix init found no ${c} dependency in package.json. ${n}`);return{...i}},h=async e=>{for(let t of a){let o=p(e,t.path);await n(r(o),{recursive:!0}),await i(o,t.content)}},f=async(e,n)=>{let t=n.phoenix,o=n.scripts,r="object"==typeof o&&null!==o?o:{},p=Object.fromEntries(Object.entries(l).filter(([e])=>!(e in r)));await i(e,JSON.stringify({...n,scripts:{...r,...p},phoenix:{..."object"==typeof t&&null!==t?t:{},applicationFlow:!0}},null,2)+"\n")};export const runInitCommand=async(t,{logger:i})=>{var r,a;let u,m=t.projectRoot??process.cwd(),x=p(m,"package.json");if(e(p(m,"spec")))throw Error("phoenix init found an existing spec/ folder. init only starts new projects, and writing a starter spec would overwrite or mix with the existing one. To update an existing project, run `pnpm phoenix sync`; to start over, run init in an empty project folder.");let w=e(x)?await d(x):(r=m,a=t.sdkVersion,{name:(u=o(r).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[._-]+|[-]+$/g,"")).length>0?u:"phoenix-configurator",private:!0,type:"module",scripts:l,dependencies:{[c]:a},devDependencies:{"@lingui/cli":"5.9.5","@lingui/swc-plugin":"5.11.0"}});i.step(`Writing the starter project to ${m}`),await n(m,{recursive:!0}),await h(m),await f(x,w),s(m),i.success(`Phoenix project created in ${m}.`),i.info("\nNext steps, in the project folder:\n pnpm install\n pnpm phoenix sync\n pnpm phoenix login <workspace>\n pnpm phoenix dev\n pnpm phoenix deploy\n\nDeveloping against a Studio development environment instead? Paste its .env block into .env before phoenix dev.")};
@@ -1,2 +1,2 @@
1
- import{writeFile as e}from"fs/promises";import{createApiBaseClient as a}from"#package/client";import{resolveApplicationSpecDeploymentData as r}from"../application-spec/index.js";import{formatEnvContent as t,formatEnvLine as i}from"../utils/index.js";export const runPrepareDeploymentCommand=async(s,n)=>{let{logger:o}=n;try{o.step("Preparing deployment");let{apiKey:n,projectKey:l,projectSlug:p,projectRef:c,projectSha:m,environmentSlug:d,outFile:h,skipUpload:u,overrideSchema:f,uploadLinksFile:g,serverUrl:v}=s;o.info(`Preparing deployment for project "${p}", environment "${d}"`);let b=a(v);o.debug(`Using server URL: ${v}`);let y=await r({skipUpload:u,logger:o});if(y.assistant){let{sdl:e,prompt:a,instructions:r}=y.assistant,t=a.length+e.length+(r?.length??0);o.info(`Assistant GraphQL schema:
2
- ${e}`),o.info(`Assistant prompt of this deployment (generated prompt, schema and instructions): ${t} characters`)}o.info("Preparing deployment on server...");let{data:w,error:F}=await b.POST("/environments/prepare",{body:{projectSlug:p,environmentSlug:d,applicationVersion:y.applicationVersion,projectRef:c,projectSha:m,publishedDataHash:y.publishedDataHash,useAuthHook:y.useAuthHook,overrideSchema:f,configurationSchema:{version:y.schemaVersion,schema:y.schema},adminConfigurationSchema:y.adminSchema?{schema:y.adminSchema,version:y.adminSchemaVersion}:void 0,chat:y.chat,embeddings:y.embeddings,assistant:y.assistant,acl:{canCreate:y.aclCanCreate},privateFiles:[...y.assets.privateFilePaths],publicFiles:[...y.assets.publicFilePaths]},headers:{"x-api-key":n,"x-project-key":l,"x-project-slug":p}});if(F)throw Error(`Failed to prepare deployment with server: ${F.message}`);if(!w)throw Error("No data returned from server");o.debug("Deployment prepared on server");let{baseDomain:S,isCustomDomain:P}=w,U=w.environmentVariables,k=w.privateUploadUrls,$=w.publicUploadUrls;if(!U||!k||!$)throw Error("Incomplete data returned from server");try{let a=[t(U),i("BASE_DOMAIN",String(S)),i("IS_CUSTOM_DOMAIN",String(P))].join("\n");await e(h,a+"\n"),o.debug(`Environment variables written to ${h}`)}catch(e){throw Error("Failed to write environment variables to file")}try{if(u)await e(g,JSON.stringify({privateFiles:[],publicFiles:[]},null,2)),o.debug("Upload links file cleared (upload was skipped)");else{let a={privateFiles:[...y.assets.privateFilesFullPaths].map(e=>({localPath:e,uploadUrl:k[e.replace(/^assets\/private\//,"")]})),publicFiles:[...y.assets.publicFilesFullPaths].map(e=>({localPath:e,uploadUrl:$[e.replace(/^assets\/public\//,"")]}))};await e(g,JSON.stringify(a,null,2)),o.debug(`Upload links written to ${g}`),o.info('Run "finish" command to upload files and activate the deployment')}}catch(e){throw Error("Failed to write upload links to file")}o.success("Deployment prepared successfully!")}catch(e){o.error(`Deployment preparation failed: ${e instanceof Error?e.message:String(e)}`,e),process.exit(1)}};
1
+ import{writeFile as e}from"fs/promises";import{createApiBaseClient as t}from"#package/client";import{resolveApplicationSpecDeploymentData as a}from"../application-spec/index.js";import{formatEnvContent as r,formatEnvLine as i}from"../utils/index.js";export const runPrepareDeploymentCommand=async(s,n)=>{let{logger:o}=n;try{o.step("Preparing deployment");let{apiKey:n,projectKey:l,projectSlug:p,projectRef:c,projectSha:m,environmentSlug:d,outFile:h,skipUpload:u,overrideSchema:f,uploadLinksFile:g,serverUrl:v}=s;o.info(`Preparing deployment for project "${p}", environment "${d}"`);let b=t(v);o.debug(`Using server URL: ${v}`);let y=await a({skipUpload:u,logger:o});if(y.assistantSetup){let{sdl:e,prompt:t,instructions:a}=y.assistantSetup,r=t.length+e.length+(a?.length??0);o.info(`Assistant GraphQL schema:
2
+ ${e}`),o.info(`Assistant prompt of this deployment (generated prompt, schema and instructions): ${r} characters`)}o.info("Preparing deployment on server...");let{data:w,error:S}=await b.POST("/environments/prepare",{body:{projectSlug:p,environmentSlug:d,applicationVersion:y.applicationVersion,projectRef:c,projectSha:m,publishedDataHash:y.publishedDataHash,useAuthHook:y.useAuthHook,overrideSchema:f,configurationSchema:{version:y.schemaVersion,schema:y.schema},adminConfigurationSchema:y.adminSchema?{schema:y.adminSchema,version:y.adminSchemaVersion}:void 0,chat:y.chat,embeddings:y.embeddings,...y.assistant?{assistant:!0}:{},acl:{canCreate:y.aclCanCreate},privateFiles:[...y.assets.privateFilePaths],publicFiles:[...y.assets.publicFilePaths]},headers:{"x-api-key":n,"x-project-key":l,"x-project-slug":p}});if(S)throw Error(`Failed to prepare deployment with server: ${S.message}`);if(!w)throw Error("No data returned from server");o.debug("Deployment prepared on server");let{baseDomain:F,isCustomDomain:P}=w,U=w.environmentVariables,k=w.privateUploadUrls,$=w.publicUploadUrls;if(!U||!k||!$)throw Error("Incomplete data returned from server");try{let t=[r(U),i("BASE_DOMAIN",String(F)),i("IS_CUSTOM_DOMAIN",String(P))].join("\n");await e(h,t+"\n"),o.debug(`Environment variables written to ${h}`)}catch(e){throw Error("Failed to write environment variables to file")}try{if(u)await e(g,JSON.stringify({privateFiles:[],publicFiles:[]},null,2)),o.debug("Upload links file cleared (upload was skipped)");else{let t={privateFiles:[...y.assets.privateFilesFullPaths].map(e=>({localPath:e,uploadUrl:k[e.replace(/^assets\/private\//,"")]})),publicFiles:[...y.assets.publicFilesFullPaths].map(e=>({localPath:e,uploadUrl:$[e.replace(/^assets\/public\//,"")]}))};await e(g,JSON.stringify(t,null,2)),o.debug(`Upload links written to ${g}`),o.info('Run "finish" command to upload files and activate the deployment')}}catch(e){throw Error("Failed to write upload links to file")}o.success("Deployment prepared successfully!")}catch(e){o.error(`Deployment preparation failed: ${e instanceof Error?e.message:String(e)}`,e),process.exit(1)}};
@@ -1 +1 @@
1
- import{writeFile as e}from"fs/promises";import{createApiBaseClient as r}from"#package/client";import{resolveApplicationSpecDeploymentData as t}from"../application-spec/index.js";import{formatEnvContent as i,uploadFilesWithPresignedUrls as a}from"../utils/index.js";export const prepareLocalEnvironment=async(o,s)=>{let{logger:n}=s;n.step("Preparing local environment");let{projectKey:l,projectSlug:p,outFile:c,skipUpload:d,overrideSchema:m,serverUrl:h,lambdaUrl:f,environmentSlug:v,apiKey:u}=o;n.info(`Preparing local environment for project "${p}", environment "${v}"`);let y=r(h);n.debug(`Using server URL: ${h}`);let b=await t({skipUpload:d,logger:n});n.info("Preparing a local environment and deployment on the server...");let{data:g,error:w}=await y.POST("/environments/prepare",{body:{projectSlug:p,environmentSlug:v,applicationVersion:b.applicationVersion,publishedDataHash:b.publishedDataHash,useAuthHook:b.useAuthHook,overrideSchema:m,configurationSchema:{version:b.schemaVersion,schema:b.schema},adminConfigurationSchema:b.adminSchema?{schema:b.adminSchema,version:b.adminSchemaVersion}:void 0,chat:b.chat,embeddings:b.embeddings,assistant:b.assistant,acl:{canCreate:b.aclCanCreate},privateFiles:[...b.assets.privateFilePaths],publicFiles:[...b.assets.publicFilePaths]},headers:{"x-api-key":u,"x-project-key":l,"x-project-slug":p}});if(w)throw Error(`Failed to prepare deployment with server: ${w.message}`);if(!g)throw Error("No data returned from server");n.debug("Deployment prepared on server");let E=g.environmentVariables,F=g.privateUploadUrls,P=g.publicUploadUrls,$=E?.DEPLOYMENT_ID;if(!E||!F||!P)throw Error("Incomplete data returned from server");if(!$)throw Error("No deployment ID returned from server");try{await e(c,i(E)+"\n"),n.debug(`Environment variables written to ${c}`)}catch(e){throw Error(`Failed to write environment variables to file at ${c}, please verify you have write permissions to this location.`)}if(d)n.debug("Skipping file upload");else{n.info("Uploading files to S3...");let e={privateFiles:[...b.assets.privateFilesFullPaths].map(e=>{let r=e.replace("assets/private/",""),t=F[r];if(!t)throw Error(`No upload URL provided for private file ${r}, the server did not return a presigned URL for this file, please verify the file exists in the assets/private directory.`);return{localPath:e,uploadUrl:t}}),publicFiles:[...b.assets.publicFilesFullPaths].map(e=>{let r=e.replace("assets/public/",""),t=P[r];if(!t)throw Error(`No upload URL provided for public file ${r}, the server did not return a presigned URL for this file, please verify the file exists in the assets/public directory.`);return{localPath:e,uploadUrl:t}})};await a(e,{logger:n})}n.info("Activating deployment...");let{error:U}=await y.POST("/deployments/{deploymentId}/activate",{params:{path:{deploymentId:$}},headers:{"x-project-key":l,"x-project-slug":p,"x-api-key":u},body:{lambdaUrl:f}});if(U)throw Error(`Failed to activate deployment with server: ${U.message}`);n.info(`Project: ${p}`),n.info(`Environment: ${v}`),n.info(`Deployment ID: ${$}`),n.info(`Lambda URL: ${f}`),n.success("Local environment prepared successfully!")};
1
+ import{writeFile as e}from"fs/promises";import{createApiBaseClient as r}from"#package/client";import{resolveApplicationSpecDeploymentData as t}from"../application-spec/index.js";import{formatEnvContent as i,uploadFilesWithPresignedUrls as a}from"../utils/index.js";export const prepareLocalEnvironment=async(o,s)=>{let{logger:n}=s;n.step("Preparing local environment");let{projectKey:l,projectSlug:p,outFile:c,skipUpload:d,overrideSchema:m,serverUrl:h,lambdaUrl:f,environmentSlug:v,apiKey:u}=o;n.info(`Preparing local environment for project "${p}", environment "${v}"`);let y=r(h);n.debug(`Using server URL: ${h}`);let b=await t({skipUpload:d,logger:n});n.info("Preparing a local environment and deployment on the server...");let{data:g,error:w}=await y.POST("/environments/prepare",{body:{projectSlug:p,environmentSlug:v,applicationVersion:b.applicationVersion,publishedDataHash:b.publishedDataHash,useAuthHook:b.useAuthHook,overrideSchema:m,configurationSchema:{version:b.schemaVersion,schema:b.schema},adminConfigurationSchema:b.adminSchema?{schema:b.adminSchema,version:b.adminSchemaVersion}:void 0,chat:b.chat,embeddings:b.embeddings,...b.assistant?{assistant:!0}:{},acl:{canCreate:b.aclCanCreate},privateFiles:[...b.assets.privateFilePaths],publicFiles:[...b.assets.publicFilePaths]},headers:{"x-api-key":u,"x-project-key":l,"x-project-slug":p}});if(w)throw Error(`Failed to prepare deployment with server: ${w.message}`);if(!g)throw Error("No data returned from server");n.debug("Deployment prepared on server");let E=g.environmentVariables,F=g.privateUploadUrls,P=g.publicUploadUrls,$=E?.DEPLOYMENT_ID;if(!E||!F||!P)throw Error("Incomplete data returned from server");if(!$)throw Error("No deployment ID returned from server");try{await e(c,i(E)+"\n"),n.debug(`Environment variables written to ${c}`)}catch(e){throw Error(`Failed to write environment variables to file at ${c}, please verify you have write permissions to this location.`)}if(d)n.debug("Skipping file upload");else{n.info("Uploading files to S3...");let e={privateFiles:[...b.assets.privateFilesFullPaths].map(e=>{let r=e.replace("assets/private/",""),t=F[r];if(!t)throw Error(`No upload URL provided for private file ${r}, the server did not return a presigned URL for this file, please verify the file exists in the assets/private directory.`);return{localPath:e,uploadUrl:t}}),publicFiles:[...b.assets.publicFilesFullPaths].map(e=>{let r=e.replace("assets/public/",""),t=P[r];if(!t)throw Error(`No upload URL provided for public file ${r}, the server did not return a presigned URL for this file, please verify the file exists in the assets/public directory.`);return{localPath:e,uploadUrl:t}})};await a(e,{logger:n})}n.info("Activating deployment...");let{error:U}=await y.POST("/deployments/{deploymentId}/activate",{params:{path:{deploymentId:$}},headers:{"x-project-key":l,"x-project-slug":p,"x-api-key":u},body:{lambdaUrl:f}});if(U)throw Error(`Failed to activate deployment with server: ${U.message}`);n.info(`Project: ${p}`),n.info(`Environment: ${v}`),n.info(`Deployment ID: ${$}`),n.info(`Lambda URL: ${f}`),n.success("Local environment prepared successfully!")};