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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1127) hide show
  1. package/README.md +20 -12
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/errors/diagnostic-codes.d.ts +10 -0
  4. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  5. package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -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/application-types.js +6 -6
  19. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +2 -2
  20. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -13
  21. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  22. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  24. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.d.ts +3 -1
  27. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +71 -68
  28. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  29. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  30. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  31. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  32. package/dist/application-spec/generate-application/code/templates/domain-spec.js +7 -7
  33. package/dist/application-spec/generate-application/code/templates/domain.js +4 -4
  34. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.d.ts +11 -0
  35. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +8 -0
  36. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  37. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  38. package/dist/application-spec/generate-application/code/templates/globals.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/index.d.ts +6 -12
  40. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  41. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  42. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -0
  43. package/dist/application-spec/generate-application/code/templates/{phoenix-create-configurator-skill.d.ts → skills/phoenix-create-configurator-skill.d.ts} +1 -1
  44. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +166 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +54 -0
  46. package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.js → skills/phoenix-review-skill.js} +7 -5
  47. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  50. package/dist/application-spec/generate-application/code/templates/{common → skills}/sdk-content.d.ts +60 -12
  51. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +79 -0
  52. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  53. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  54. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  55. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +3 -3
  56. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  57. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +14 -0
  58. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.js +1 -0
  59. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  60. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  61. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  62. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  63. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +1 -0
  64. package/dist/application-spec/generate-application/runtime/sections/index.js +1 -1
  65. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  66. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +3 -1
  67. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  68. package/dist/application-spec/parse-application-files/merge/index.d.ts +1 -0
  69. package/dist/application-spec/parse-application-files/merge/index.js +1 -1
  70. package/dist/application-spec/parse-application-files/merge/merged-actions.d.ts +11 -0
  71. package/dist/application-spec/parse-application-files/merge/merged-actions.js +1 -0
  72. package/dist/application-spec/parse-application-files/merge/merged-spec.d.ts +2 -0
  73. package/dist/application-spec/parse-application-files/merge/merged-spec.js +1 -1
  74. package/dist/application-spec/parse-application-files/raw-spec/index.d.ts +1 -0
  75. package/dist/application-spec/parse-application-files/raw-spec/index.js +1 -1
  76. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.d.ts +18 -0
  77. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.js +1 -0
  78. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +14 -2
  79. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  80. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +2 -0
  81. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  82. package/dist/application-spec/parse-application-files/resolve/resolve-import-modules.js +1 -1
  83. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  84. package/dist/application-spec/parse-application-files/spec/application/application-spec.js +1 -1
  85. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.d.ts +4 -2
  86. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  87. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  88. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  89. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.d.ts +23 -0
  90. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.js +1 -0
  91. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  92. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  93. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +10 -0
  94. package/dist/application-spec/parse-application-files/spec/model/names/action-name.js +1 -0
  95. package/dist/application-spec/parse-application-files/spec/model/names/index.d.ts +1 -0
  96. package/dist/application-spec/parse-application-files/spec/model/names/index.js +1 -1
  97. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  98. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  99. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  100. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  101. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  102. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  103. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +35 -0
  104. package/dist/application-spec/parse-application-files/spec/sections/actions.js +1 -0
  105. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +5 -21
  106. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +14 -39
  108. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  109. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  110. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -19
  111. package/dist/application-spec/parse-application-files/spec/sections/index.d.ts +1 -0
  112. package/dist/application-spec/parse-application-files/spec/sections/index.js +1 -1
  113. package/dist/client/authorized-client.d.ts +3 -1
  114. package/dist/client/authorized-client.js +1 -1
  115. package/dist/client/contract.d.ts +34 -0
  116. package/dist/client/contract.js +1 -1
  117. package/dist/client/index.d.ts +2 -2
  118. package/dist/client/index.js +1 -1
  119. package/dist/client/local-authorized-client.d.ts +3 -1
  120. package/dist/client/local-authorized-client.js +1 -1
  121. package/dist/client/memory-authorized-client.d.ts +3 -1
  122. package/dist/client/memory-authorized-client.js +1 -1
  123. package/dist/client/phoenix-api.d.ts +276 -31
  124. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.d.ts +2 -1
  125. package/dist/configurator/application-runtime/extensions/configurator-extension-systems.js +1 -1
  126. package/dist/configurator/application-runtime/extensions/selectors.d.ts +2 -1
  127. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  128. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +267 -0
  129. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -0
  130. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/browser-details.d.ts +1 -1
  131. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +1 -0
  132. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  133. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  134. package/dist/configurator/{assistant → application-runtime/extensions/systems/assistant-system}/graphql-tools.d.ts +20 -16
  135. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -0
  136. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  138. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  139. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  140. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  141. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  142. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -0
  143. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  144. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -0
  145. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  146. package/dist/configurator/common/frontend-analytics.d.ts +21 -21
  147. package/dist/configurator/index.d.ts +0 -1
  148. package/dist/configurator/index.js +1 -1
  149. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  150. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  151. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  152. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  153. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  154. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  155. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +7 -0
  156. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  157. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  158. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  159. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  160. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  161. package/dist/configurator/ui/assistant/AssistantThread.d.ts +10 -0
  162. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  163. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  164. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  165. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  166. package/dist/configurator/ui/assistant/index.js +1 -0
  167. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  168. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  169. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  170. package/dist/configurator/ui/assistant/theme.js +1 -0
  171. package/dist/configurator/ui/assistant/thread-items.d.ts +48 -0
  172. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  173. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  174. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  175. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  176. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  177. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  178. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  179. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +9 -9
  180. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  181. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  182. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +3 -3
  183. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  184. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  185. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  186. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  187. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  188. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  189. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  190. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  191. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  192. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  193. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  194. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  195. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  196. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  197. package/dist/docs/index.json +12 -2
  198. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  199. package/dist/docs/layouts/custom-price.mdx +14 -16
  200. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  201. package/dist/docs/layouts/toolbar.mdx +6 -0
  202. package/dist/docs/other-features/domain-actions.mdx +418 -0
  203. package/dist/docs/other-features/side-effects.mdx +76 -45
  204. package/dist/docs/other-features/transformers.mdx +1 -1
  205. package/dist/docs/other-features/violation-messages.mdx +52 -56
  206. package/dist/docs/phoenix/admin.mdx +11 -26
  207. package/dist/docs/phoenix/best-practices.mdx +1 -0
  208. package/dist/docs/phoenix/configurator-interface.mdx +100 -65
  209. package/dist/docs/phoenix/deployments.mdx +1 -1
  210. package/dist/docs/phoenix/domain-model.mdx +4 -0
  211. package/dist/docs/phoenix/expression-context.mdx +11 -3
  212. package/dist/docs/phoenix/finalization.mdx +1 -1
  213. package/dist/docs/phoenix/getting-started.mdx +1 -1
  214. package/dist/docs/phoenix/integration/headless-mode-external.mdx +5 -5
  215. package/dist/docs/phoenix/integration/widget-mode-external.mdx +5 -5
  216. package/dist/docs/phoenix/localization.mdx +3 -22
  217. package/dist/docs/phoenix/migrations.mdx +45 -5
  218. package/dist/docs/phoenix/phoenix-cli.mdx +181 -66
  219. package/dist/docs/phoenix/project-structure.mdx +28 -12
  220. package/dist/docs/phoenix/quickstart.mdx +2 -2
  221. package/dist/docs/phoenix/sdk-builder-workflow.mdx +20 -16
  222. package/dist/docs/phoenix/state-management.mdx +1 -1
  223. package/dist/docs/phoenix/webhooks.mdx +1 -1
  224. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  225. package/dist/docs/relations/hierarchy.mdx +13 -2
  226. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  227. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  228. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  229. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  230. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  231. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  232. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  233. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  234. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  235. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  236. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  237. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  238. package/dist/domain/admin-domain/index.d.ts +9 -5
  239. package/dist/domain/admin-domain/index.js +1 -1
  240. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  241. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  242. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  243. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  244. package/dist/domain/application/application-config.d.ts +28 -95
  245. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  246. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  247. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  248. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  249. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  250. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  251. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  252. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  253. package/dist/domain/application/assistant/index.d.ts +4 -0
  254. package/dist/domain/application/assistant/index.js +1 -0
  255. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  256. package/dist/domain/application/assistant-mutations.d.ts +16 -17
  257. package/dist/domain/application/assistant-mutations.js +1 -1
  258. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  259. package/dist/domain/application/configurator-builder.d.ts +33 -18
  260. package/dist/domain/application/configurator-builder.js +1 -1
  261. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  262. package/dist/domain/application/index.d.ts +3 -5
  263. package/dist/domain/application/index.js +1 -1
  264. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  265. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  266. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  267. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  268. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  269. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  270. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  271. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  272. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  273. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  274. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  275. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  276. package/dist/domain/available-system-components.js +1 -1
  277. package/dist/domain/core/action/action-factory.d.ts +11 -0
  278. package/dist/domain/core/action/action-factory.js +1 -0
  279. package/dist/domain/core/action/action.d.ts +71 -0
  280. package/dist/domain/core/action/index.d.ts +2 -0
  281. package/dist/domain/core/action/index.js +1 -0
  282. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  283. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  284. package/dist/domain/core/component/debug-state-component.js +1 -0
  285. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  286. package/dist/domain/core/component/domain-component-optic.js +16 -0
  287. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  288. package/dist/domain/core/component/drag-state-component.js +1 -0
  289. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  290. package/dist/domain/core/component/export-state-component.js +1 -0
  291. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  292. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  293. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  294. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  295. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  296. package/dist/domain/core/component/hover-state-component.js +1 -0
  297. package/dist/domain/core/component/index.d.ts +18 -0
  298. package/dist/domain/core/component/index.js +1 -0
  299. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  300. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  301. package/dist/domain/core/component/navigation-state-component.js +1 -0
  302. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  303. package/dist/domain/core/component/selection-state-component.js +1 -0
  304. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  305. package/dist/domain/core/component/system-component-builder.js +1 -0
  306. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  307. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  308. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  309. package/dist/domain/core/component/tool-state-component.js +1 -0
  310. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  311. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  312. package/dist/domain/core/component/view-state-component.js +1 -0
  313. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  314. package/dist/domain/core/component/viewport-state-component.js +1 -0
  315. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  316. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  317. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  318. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  319. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  320. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  321. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  322. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  323. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  324. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  325. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  326. package/dist/domain/core/data-schema/data-schema.js +1 -0
  327. package/dist/domain/core/data-schema/index.d.ts +7 -0
  328. package/dist/domain/core/data-schema/index.js +1 -0
  329. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  330. package/dist/domain/core/decoder/create-decoder.js +1 -0
  331. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  332. package/dist/domain/core/decoder/decoder.js +1 -0
  333. package/dist/domain/core/decoder/index.d.ts +2 -0
  334. package/dist/domain/core/decoder/index.js +1 -0
  335. package/dist/domain/core/domain-factory.d.ts +7 -4
  336. package/dist/domain/core/domain-factory.js +1 -1
  337. package/dist/domain/core/domain.d.ts +4 -5
  338. package/dist/domain/core/domain.js +1 -1
  339. package/dist/domain/core/emission/index.d.ts +8 -0
  340. package/dist/domain/core/emission/index.js +1 -0
  341. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  342. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  343. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  344. package/dist/domain/core/emission/state-emission.js +1 -0
  345. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  346. package/dist/domain/core/emission/state-update-emission.js +1 -0
  347. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  348. package/dist/domain/core/emission/state-validation-result.js +1 -0
  349. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  350. package/dist/domain/core/emission/transformation-log.js +1 -0
  351. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  352. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  353. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  354. package/dist/domain/core/emission/transformer-log.js +1 -0
  355. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  356. package/dist/domain/core/emission/transformer-phase.js +1 -0
  357. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  358. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  359. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +3 -4
  360. package/dist/domain/core/expression/constant-expressions.js +1 -0
  361. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  362. package/dist/domain/core/expression/custom-expression.js +1 -0
  363. package/dist/domain/core/expression/expression.d.ts +46 -0
  364. package/dist/domain/core/expression/expression.js +1 -0
  365. package/dist/domain/core/expression/index.d.ts +4 -0
  366. package/dist/domain/core/expression/index.js +1 -0
  367. package/dist/domain/core/index.d.ts +13 -16
  368. package/dist/domain/core/index.js +1 -1
  369. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  370. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  371. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  372. package/dist/domain/core/invariant/index.d.ts +5 -0
  373. package/dist/domain/core/invariant/index.js +1 -0
  374. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  375. package/dist/domain/core/invariant/invariants.js +1 -0
  376. package/dist/domain/core/invariant/violation-component.js +1 -0
  377. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  378. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  379. package/dist/domain/core/model/index.d.ts +6 -0
  380. package/dist/domain/core/model/index.js +1 -0
  381. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  382. package/dist/domain/core/model/reflection.js +1 -0
  383. package/dist/domain/core/recipe/index.d.ts +1 -0
  384. package/dist/domain/core/recipe/index.js +1 -0
  385. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  386. package/dist/domain/core/recipe/recipes.js +1 -0
  387. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  388. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  389. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  390. package/dist/domain/core/relation/component-factories.js +1 -0
  391. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  392. package/dist/domain/core/relation/composed-of.js +1 -0
  393. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  394. package/dist/domain/core/relation/index.d.ts +8 -0
  395. package/dist/domain/core/relation/index.js +1 -0
  396. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  397. package/dist/domain/core/relation/indirect-relation.js +1 -0
  398. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  399. package/dist/domain/core/relation/reference-component.js +1 -0
  400. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  401. package/dist/domain/core/relation/reference-field.js +1 -0
  402. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  403. package/dist/domain/core/relation/relation-factory.js +1 -0
  404. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  405. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  406. package/dist/domain/core/schema/index.d.ts +3 -0
  407. package/dist/domain/core/schema/index.js +1 -0
  408. package/dist/domain/core/schema/schema-validator.js +1 -0
  409. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  410. package/dist/domain/core/state/id-sequence.js +1 -0
  411. package/dist/domain/core/state/index.d.ts +3 -0
  412. package/dist/domain/core/state/index.js +1 -0
  413. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  414. package/dist/domain/core/state/migrations.js +1 -0
  415. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  416. package/dist/domain/domain-builder.d.ts +16 -9
  417. package/dist/domain/domain-builder.js +1 -1
  418. package/dist/domain/domain-context/action-system/action-system.d.ts +38 -0
  419. package/dist/domain/domain-context/action-system/action-system.js +1 -0
  420. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  421. package/dist/domain/domain-context/action-system/index.js +1 -0
  422. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  423. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  424. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  425. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  426. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  427. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  428. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  429. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  430. package/dist/domain/domain-context/domain-context-systems.d.ts +11 -10
  431. package/dist/domain/domain-context/index.d.ts +8 -17
  432. package/dist/domain/domain-context/index.js +1 -1
  433. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  434. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  435. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  436. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  437. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  438. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  439. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  440. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  441. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  442. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  443. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  444. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  445. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  446. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  447. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  448. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  449. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  450. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  451. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  452. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  453. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  454. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  455. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  456. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  457. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  458. package/dist/domain/domain-context/store-system/index.js +1 -0
  459. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  460. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  461. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  462. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  463. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  464. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  465. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  466. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  467. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  468. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  469. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  470. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  471. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  472. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  473. package/dist/domain/domain-context/transformers/context.js +1 -1
  474. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  475. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  476. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  477. package/dist/domain/domain-context/transformers/index.js +1 -1
  478. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  479. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  480. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  481. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  482. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  483. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  484. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  485. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  486. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  487. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  488. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  489. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  490. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  491. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  492. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  493. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +22 -24
  494. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  495. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -72
  496. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  497. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  498. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  499. package/dist/domain/domain-runtime/spec/index.js +1 -1
  500. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  501. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  502. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  503. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  504. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  505. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  506. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  507. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  508. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +25 -0
  509. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  510. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  511. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  512. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  513. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  514. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  515. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  516. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  517. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  518. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  519. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  520. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  521. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  522. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  523. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  524. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  525. package/dist/domain/domain-runtime/spec/types.d.ts +20 -6
  526. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  527. package/dist/domain/extensions/angle-indicator.js +1 -0
  528. package/dist/domain/extensions/attribute-switch.js +1 -0
  529. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  530. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  531. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  532. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  533. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  534. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  535. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  536. package/dist/domain/extensions/canvas-config.js +1 -0
  537. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  538. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  539. package/dist/domain/extensions/canvas-padding.js +1 -0
  540. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  541. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  542. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  543. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  544. package/dist/domain/extensions/client-side-image.js +1 -0
  545. package/dist/domain/extensions/color-value.js +1 -0
  546. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  547. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  548. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  549. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  550. package/dist/domain/extensions/common/index.d.ts +4 -0
  551. package/dist/domain/extensions/common/index.js +1 -0
  552. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  553. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  554. package/dist/domain/extensions/custom-price-footer.js +1 -0
  555. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  556. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  557. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  558. package/dist/domain/extensions/dimension-indicator.js +1 -0
  559. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  560. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  561. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  562. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  563. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  564. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  565. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  566. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  567. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  568. package/dist/domain/extensions/entity-header.js +1 -0
  569. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  570. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  571. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  572. package/dist/domain/extensions/finalize-action.js +1 -0
  573. package/dist/domain/extensions/finalize-component.js +1 -0
  574. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  575. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  576. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  577. package/dist/domain/extensions/fixed-header.js +1 -0
  578. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  579. package/dist/domain/extensions/floating-header.js +1 -0
  580. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  581. package/dist/domain/extensions/hidden-header.js +1 -0
  582. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  583. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  584. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  585. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  586. package/dist/domain/extensions/index.d.ts +69 -0
  587. package/dist/domain/extensions/index.js +1 -0
  588. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  589. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  590. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  591. package/dist/domain/extensions/navigation-steps.js +1 -0
  592. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  593. package/dist/domain/extensions/offset-anchors.js +1 -0
  594. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  595. package/dist/domain/extensions/offset-indicator.js +1 -0
  596. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  597. package/dist/domain/extensions/offset.js +1 -0
  598. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  599. package/dist/domain/extensions/other-action.js +1 -0
  600. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  601. package/dist/domain/extensions/property-page.js +1 -0
  602. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  603. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  604. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  605. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  606. package/dist/domain/extensions/rotatable.js +1 -0
  607. package/dist/domain/extensions/rotation-handle.js +1 -0
  608. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  609. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  610. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  611. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  612. package/dist/domain/extensions/scene-entity-control.js +1 -0
  613. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  614. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  615. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  616. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  617. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  618. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  619. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  620. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  621. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  622. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  623. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  624. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  625. package/dist/domain/extensions/selectable-component.js +1 -0
  626. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  627. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  628. package/dist/domain/extensions/simple-summary.js +1 -0
  629. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  630. package/dist/domain/extensions/size.js +1 -0
  631. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  632. package/dist/domain/extensions/sketching-draw.js +1 -0
  633. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  634. package/dist/domain/extensions/sketching-edit.js +1 -0
  635. package/dist/domain/extensions/summary-component.js +1 -0
  636. package/dist/domain/extensions/text-value.js +1 -0
  637. package/dist/domain/extensions/tool-controls.js +1 -0
  638. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  639. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  640. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  641. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  642. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  643. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  644. package/dist/domain/extensions/view-controls.js +1 -0
  645. package/dist/domain/index.d.ts +2 -30
  646. package/dist/domain/index.js +1 -1
  647. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  648. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  649. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +27 -21
  650. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  651. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  652. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  653. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  654. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  655. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  656. package/dist/domain/projections/collision-projections.d.ts +1 -1
  657. package/dist/domain/projections/composition-projections.d.ts +1 -1
  658. package/dist/domain/projections/composition-projections.js +1 -1
  659. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  660. package/dist/domain/projections/index.d.ts +1 -1
  661. package/dist/domain/projections/position-projections.d.ts +1 -1
  662. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  663. package/dist/domain/projections/snap-matching.d.ts +1 -2
  664. package/dist/domain/projections/snap-utils.d.ts +1 -2
  665. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  666. package/dist/domain/projections/validation-projections.d.ts +3 -20
  667. package/dist/domain/projections/validation-projections.js +1 -1
  668. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  669. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  670. package/dist/domain/system-components/admin-sidebar.js +1 -1
  671. package/dist/domain/system-components/angle-dimension.js +1 -1
  672. package/dist/domain/system-components/application-config.d.ts +1 -1
  673. package/dist/domain/system-components/application-config.js +1 -1
  674. package/dist/domain/system-components/attribute-selection.js +1 -1
  675. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  676. package/dist/domain/system-components/bounding-box-component.js +1 -1
  677. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  678. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  679. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  680. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  681. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  682. package/dist/domain/system-components/child-entity-selection.js +1 -1
  683. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  684. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  685. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  686. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  687. package/dist/domain/system-components/collision-geometry.js +1 -1
  688. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  689. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  690. package/dist/domain/system-components/common/index.d.ts +0 -4
  691. package/dist/domain/system-components/common/index.js +1 -1
  692. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  693. package/dist/domain/system-components/constraint.d.ts +1 -1
  694. package/dist/domain/system-components/constraint.js +1 -1
  695. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  696. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  697. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  698. package/dist/domain/system-components/detail.js +1 -1
  699. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  700. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  701. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  702. package/dist/domain/system-components/distance-dimension.js +1 -1
  703. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  704. package/dist/domain/system-components/drag-handle.js +1 -1
  705. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  706. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  707. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  708. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  709. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  710. package/dist/domain/system-components/generic-dimension.js +1 -1
  711. package/dist/domain/system-components/hidden-entity.js +1 -1
  712. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  713. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  714. package/dist/domain/system-components/index.d.ts +0 -68
  715. package/dist/domain/system-components/index.js +1 -1
  716. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  717. package/dist/domain/system-components/material-override-transformer.js +1 -1
  718. package/dist/domain/system-components/material-swatch.js +1 -1
  719. package/dist/domain/system-components/navigation-page.js +1 -1
  720. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  721. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  722. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  723. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  724. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  725. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  726. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  727. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  728. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  729. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  730. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  731. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  732. package/dist/domain/system-components/pivot-point.js +1 -1
  733. package/dist/domain/system-components/price.js +1 -1
  734. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  735. package/dist/domain/system-components/projected-entities.js +1 -1
  736. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  737. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  738. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  739. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  740. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  741. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  742. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  743. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  744. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  745. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  746. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  747. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  748. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  749. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  750. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  751. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  752. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  753. package/dist/domain/system-components/scene-entity-object.js +1 -1
  754. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  755. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  756. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  757. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  758. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  759. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  760. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  761. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  762. package/dist/domain/system-components/sketching-line.js +1 -1
  763. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  764. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  765. package/dist/domain/system-components/sketching.d.ts +1 -1
  766. package/dist/domain/system-components/sketching.js +1 -1
  767. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  768. package/dist/domain/system-components/snap-axis.js +1 -1
  769. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  770. package/dist/domain/system-components/snap-edge.js +1 -1
  771. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  772. package/dist/domain/system-components/snap-plane.js +1 -1
  773. package/dist/domain/system-components/snap-point.d.ts +1 -1
  774. package/dist/domain/system-components/snap-point.js +1 -1
  775. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  776. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  777. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  778. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  779. package/dist/domain/utils/eval-cache.d.ts +2 -3
  780. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  781. package/dist/domain/utils/memo-eval.d.ts +2 -4
  782. package/dist/editor/Editor.js +1 -1
  783. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  784. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  785. package/dist/editor/domain-editors/use-implementation-files.d.ts +12 -8
  786. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  787. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  788. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  789. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  790. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  791. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  792. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  793. package/dist/editor/variants/variant-preview-styles.js +1 -0
  794. package/dist/i18n/locales/cs/messages.js +1 -1
  795. package/dist/i18n/locales/da/messages.js +1 -1
  796. package/dist/i18n/locales/de/messages.js +1 -1
  797. package/dist/i18n/locales/de-AT/messages.js +1 -1
  798. package/dist/i18n/locales/en/messages.js +1 -1
  799. package/dist/i18n/locales/en-AU/messages.js +1 -1
  800. package/dist/i18n/locales/en-GB/messages.js +1 -1
  801. package/dist/i18n/locales/es/messages.js +1 -1
  802. package/dist/i18n/locales/fr/messages.js +1 -1
  803. package/dist/i18n/locales/hu/messages.js +1 -1
  804. package/dist/i18n/locales/it/messages.js +1 -1
  805. package/dist/i18n/locales/nl/messages.js +1 -1
  806. package/dist/i18n/locales/pl/messages.js +1 -1
  807. package/dist/i18n/locales/pt/messages.js +1 -1
  808. package/dist/i18n/locales/ro/messages.js +1 -1
  809. package/dist/i18n/locales/sk/messages.js +1 -1
  810. package/dist/i18n/locales/tr/messages.js +1 -1
  811. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  812. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  813. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  814. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  815. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  816. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  817. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  818. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  819. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +6 -0
  820. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  821. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  822. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  823. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  824. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  825. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  826. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  827. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  828. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  829. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  830. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  831. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  832. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  833. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  834. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  835. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  836. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  837. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  838. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  839. package/dist/phoenix/cli.js +1 -1
  840. package/dist/phoenix/commands/build.d.ts +5 -0
  841. package/dist/phoenix/commands/build.js +1 -1
  842. package/dist/phoenix/commands/deploy.js +2 -2
  843. package/dist/phoenix/commands/dev.js +5 -5
  844. package/dist/phoenix/commands/feedback.d.ts +2 -1
  845. package/dist/phoenix/commands/feedback.js +1 -1
  846. package/dist/phoenix/commands/index.d.ts +1 -0
  847. package/dist/phoenix/commands/index.js +1 -1
  848. package/dist/phoenix/commands/init.d.ts +4 -4
  849. package/dist/phoenix/commands/init.js +1 -1
  850. package/dist/phoenix/commands/login.d.ts +24 -6
  851. package/dist/phoenix/commands/login.js +2 -2
  852. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  853. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  854. package/dist/phoenix/commands/prettier.js +1 -1
  855. package/dist/phoenix/commands/story-dev.js +2 -2
  856. package/dist/phoenix/commands/variants.d.ts +35 -0
  857. package/dist/phoenix/commands/variants.js +1 -0
  858. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  859. package/dist/phoenix/editor-server/commands-router.js +1 -1
  860. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  861. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  862. package/dist/phoenix/editor-server/editor-server.js +1 -1
  863. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  864. package/dist/phoenix/editor-server/spec-router.js +1 -1
  865. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  866. package/dist/phoenix/scripts/build-admin.js +1 -1
  867. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  868. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  869. package/dist/phoenix/services/index.d.ts +5 -0
  870. package/dist/phoenix/services/index.js +1 -1
  871. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  872. package/dist/phoenix/services/phoenix-application.js +1 -0
  873. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  874. package/dist/phoenix/services/phoenix-store.js +1 -0
  875. package/dist/phoenix/services/phx-banner-plugin.d.ts +32 -0
  876. package/dist/phoenix/services/phx-banner-plugin.js +1 -0
  877. package/dist/phoenix/services/phx-licenses-plugin.d.ts +55 -0
  878. package/dist/phoenix/services/phx-licenses-plugin.js +8 -0
  879. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  880. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  881. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  882. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  883. package/dist/phoenix/services/variant-file-session.js +1 -0
  884. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  885. package/dist/phoenix/services/variant-preview-service.js +1 -0
  886. package/dist/phoenix/services/vite-config.d.ts +2 -0
  887. package/dist/phoenix/services/vite-config.js +1 -1
  888. package/dist/phoenix/utils/git/index.d.ts +1 -0
  889. package/dist/phoenix/utils/git/index.js +1 -0
  890. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  891. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  892. package/dist/phoenix/utils/index.d.ts +2 -0
  893. package/dist/phoenix/utils/index.js +1 -1
  894. package/dist/phoenix/utils/read-git-commit.d.ts +14 -0
  895. package/dist/phoenix/utils/read-git-commit.js +1 -0
  896. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  897. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  898. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  899. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  900. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  901. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  902. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  903. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +52 -40
  904. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +12 -9
  905. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  906. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  907. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  908. package/dist/ui-sdk/theme/types.d.ts +4 -0
  909. package/dist/webhook/builders/common.d.ts +8 -0
  910. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  911. package/dist/webhook/builders/webhook-builder.js +1 -1
  912. package/package.json +5 -8
  913. package/schema/domain-spec.json +24 -0
  914. package/dist/application-spec/generate-application/code/templates/agents-md.d.ts +0 -1
  915. package/dist/application-spec/generate-application/code/templates/agents-md.js +0 -2
  916. package/dist/application-spec/generate-application/code/templates/common/sdk-content.js +0 -67
  917. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  918. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  919. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  920. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  921. package/dist/application-spec/generate-application/code/templates/phoenix-cli-skill.js +0 -1
  922. package/dist/application-spec/generate-application/code/templates/phoenix-create-configurator-skill.js +0 -112
  923. package/dist/application-spec/generate-application/code/templates/phoenix-feedback-skill.js +0 -31
  924. package/dist/application-spec/generate-application/code/templates/phoenix-skill.js +0 -1
  925. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  926. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  927. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  928. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  929. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  930. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  931. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  932. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  933. package/dist/configurator/assistant/browser-details.js +0 -1
  934. package/dist/configurator/assistant/graphql-tools.js +0 -1
  935. package/dist/configurator/assistant/index.d.ts +0 -1
  936. package/dist/configurator/assistant/index.js +0 -1
  937. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  938. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  939. package/dist/domain/application/element-registration.js +0 -1
  940. package/dist/domain/application/handler-registration.js +0 -1
  941. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  942. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  943. package/dist/domain/components/debug-state-component.js +0 -1
  944. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  945. package/dist/domain/components/domain-component-optic.js +0 -16
  946. package/dist/domain/components/drag-state-component.js +0 -1
  947. package/dist/domain/components/export-state-component.js +0 -1
  948. package/dist/domain/components/fullscreen-state-component.js +0 -1
  949. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  950. package/dist/domain/components/hover-state-component.js +0 -1
  951. package/dist/domain/components/index.d.ts +0 -2
  952. package/dist/domain/components/index.js +0 -1
  953. package/dist/domain/components/navigation-state-component.js +0 -1
  954. package/dist/domain/components/selection-state-component.js +0 -1
  955. package/dist/domain/components/system-component-builder.js +0 -1
  956. package/dist/domain/components/system-virtual-entity.js +0 -1
  957. package/dist/domain/components/tool-state-component.js +0 -1
  958. package/dist/domain/components/view-state-component.js +0 -1
  959. package/dist/domain/components/viewport-state-component.js +0 -1
  960. package/dist/domain/core/expression.d.ts +0 -50
  961. package/dist/domain/core/json-schema.js +0 -1
  962. package/dist/domain/core/migrations.js +0 -1
  963. package/dist/domain/core/reflection.js +0 -1
  964. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  965. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  966. package/dist/domain/expressions/constant-expressions.js +0 -1
  967. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  968. package/dist/domain/expressions/custom-expression.js +0 -1
  969. package/dist/domain/expressions/index.d.ts +0 -1
  970. package/dist/domain/expressions/index.js +0 -1
  971. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  972. package/dist/domain/invariants/custom-invariants.js +0 -1
  973. package/dist/domain/invariants/invariants.d.ts +0 -68
  974. package/dist/domain/invariants/invariants.js +0 -1
  975. package/dist/domain/invariants/violation-component.js +0 -1
  976. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  977. package/dist/domain/relations/all-of-type-relation.js +0 -1
  978. package/dist/domain/relations/component-factories.js +0 -1
  979. package/dist/domain/relations/composed-of.js +0 -1
  980. package/dist/domain/relations/direct-relation.d.ts +0 -29
  981. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  982. package/dist/domain/relations/indirect-relation.js +0 -1
  983. package/dist/domain/relations/reference-component.js +0 -1
  984. package/dist/domain/relations/relation-factory.d.ts +0 -19
  985. package/dist/domain/relations/relation-factory.js +0 -1
  986. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  987. package/dist/domain/system-components/angle-indicator.js +0 -1
  988. package/dist/domain/system-components/attribute-switch.js +0 -1
  989. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  990. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  991. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  992. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  993. package/dist/domain/system-components/canvas-config.js +0 -1
  994. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  995. package/dist/domain/system-components/canvas-padding.js +0 -1
  996. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  997. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  998. package/dist/domain/system-components/client-side-image.js +0 -1
  999. package/dist/domain/system-components/color-value.js +0 -1
  1000. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1001. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1002. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1003. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1004. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1005. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1006. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1007. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1008. package/dist/domain/system-components/entity-header.js +0 -1
  1009. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1010. package/dist/domain/system-components/finalize-action.js +0 -1
  1011. package/dist/domain/system-components/finalize-component.js +0 -1
  1012. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1013. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1014. package/dist/domain/system-components/fixed-header.js +0 -1
  1015. package/dist/domain/system-components/floating-header.js +0 -1
  1016. package/dist/domain/system-components/hidden-header.js +0 -1
  1017. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1018. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1019. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1020. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1021. package/dist/domain/system-components/navigation-steps.js +0 -1
  1022. package/dist/domain/system-components/offset-anchors.js +0 -1
  1023. package/dist/domain/system-components/offset-indicator.js +0 -1
  1024. package/dist/domain/system-components/offset.js +0 -1
  1025. package/dist/domain/system-components/other-action.js +0 -1
  1026. package/dist/domain/system-components/property-page.js +0 -1
  1027. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1028. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1029. package/dist/domain/system-components/rotatable.js +0 -1
  1030. package/dist/domain/system-components/rotation-handle.js +0 -1
  1031. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1032. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1033. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1034. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1035. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1036. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1037. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1038. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1039. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1040. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1041. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1042. package/dist/domain/system-components/selectable-component.js +0 -1
  1043. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1044. package/dist/domain/system-components/simple-summary.js +0 -1
  1045. package/dist/domain/system-components/size.js +0 -1
  1046. package/dist/domain/system-components/sketching-draw.js +0 -1
  1047. package/dist/domain/system-components/sketching-edit.js +0 -1
  1048. package/dist/domain/system-components/summary-component.js +0 -1
  1049. package/dist/domain/system-components/text-value.js +0 -1
  1050. package/dist/domain/system-components/tool-controls.js +0 -1
  1051. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1052. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1053. package/dist/domain/system-components/view-controls.js +0 -1
  1054. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  1055. package/dist/extras/assistant/AssistantChat.js +0 -1
  1056. package/dist/extras/assistant/index.d.ts +0 -1
  1057. package/dist/extras/assistant/index.js +0 -1
  1058. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1059. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1060. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.d.ts +0 -0
  1061. /package/dist/application-spec/generate-application/code/templates/{common → skills}/agent-skill.js +0 -0
  1062. /package/dist/application-spec/generate-application/code/templates/{phoenix-cli-skill.d.ts → skills/phoenix-cli-skill.d.ts} +0 -0
  1063. /package/dist/application-spec/generate-application/code/templates/{phoenix-feedback-skill.d.ts → skills/phoenix-feedback-skill.d.ts} +0 -0
  1064. /package/dist/application-spec/generate-application/code/templates/{phoenix-review-skill.d.ts → skills/phoenix-review-skill.d.ts} +0 -0
  1065. /package/dist/application-spec/generate-application/code/templates/{phoenix-skill.d.ts → skills/phoenix-skill.d.ts} +0 -0
  1066. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  1067. /package/dist/domain/{core/enhanced-json-schema.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  1068. /package/dist/domain/core/{expression.js → action/action.js} +0 -0
  1069. /package/dist/domain/core/{schema-validator.js → component/component-reader-types.js} +0 -0
  1070. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1071. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1072. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1073. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1074. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  1075. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  1076. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1077. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1078. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  1079. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1080. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1081. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1082. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1083. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1084. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  1085. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1086. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1087. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1088. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1089. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1090. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1091. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1092. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1093. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1094. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1095. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1096. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1097. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1098. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1099. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  1100. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1101. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1102. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1103. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  1104. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1105. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1106. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1107. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1108. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1109. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1110. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1111. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1112. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1113. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1114. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  1115. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1116. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  1117. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  1118. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1119. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1120. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1121. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1122. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1123. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1124. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1125. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1126. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1127. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t,validateNoLegacyCodeRef as e}from"../../core/index.js";import{DiagnosticCode as n,diagnosticMessages as r}from"../../errors/index.js";import{rawAclSchema as i}from"./raw-acl.js";import{rawAdminPagesSchema as s}from"./raw-admin-pages.js";import{rawAssistantSchema as l}from"./raw-assistant.js";import{rawBudgetsSchema as p}from"./raw-budgets.js";import{rawChunksSchema as m}from"./raw-chunks.js";import{rawComponentsSchema as c}from"./raw-components.js";import{rawConstantsSchema as f}from"./raw-constants.js";import{rawDataSpecSchema as d}from"./raw-data.js";import{rawDefaultsSchema as u}from"./raw-defaults.js";import{rawEnvSchema as j}from"./raw-env.js";import{rawExpressionsSchema as w}from"./raw-expressions.js";import{rawInvariantsSchema as b}from"./raw-invariants.js";import{rawModelSchema as g}from"./raw-model.js";import{rawPresetsSchema as S}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as h,rawResourcesSchema as v}from"./raw-resources.js";import{rawStateValuesSchema as O}from"./raw-states.js";import{rawTransformersSchema as E}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let R=o.object({$admin:o.boolean().optional(),model:g.optional(),components:c.optional(),presets:S.optional(),$data:d.optional(),expressions:w.optional(),invariants:b.optional(),constants:f.optional(),relations:D.optional(),defaults:u.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:O.optional(),viewStates:O.optional(),toolStates:O.optional(),exportStates:O.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:E.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:j.optional(),acl:i.optional(),resources:v.optional(),resourcesConfig:h.optional(),budgets:p.optional(),chunks:m.optional(),assistant:l.optional(),$adminPages:s.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let i=R.safeParse(o.content);if(!i.success){for(let o of i.error.issues)t.error(n.SCHEMA_PARSE_ERROR,r.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=i.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,i]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(i))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,r[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(i.data,t);return a({name:o.name,content:{...l,expressions:p}})};
1
+ import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t,validateNoLegacyCodeRef as e}from"../../core/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as u}from"./raw-data.js";import{rawDefaultsSchema as j}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as D}from"./raw-presets.js";import{rawRelationsSchema as h}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:D.optional(),$data:u.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:h.optional(),defaults:j.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
@@ -1 +1 @@
1
- import{mapSchema as e,resolveProjectFileImport as t,resolveProjectPath as r}from"../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as s}from"../../errors/index.js";import{DATA_SCHEMA_KEYS as m}from"../raw-spec/index.js";let n=(m,n,p,i)=>e(m,(e,m)=>e.import?{...e,import:e.import.map((e,a)=>{if(!e.module.startsWith("."))return e;let c=r(n,e.module),O=i.at(...m,"import",String(a),"module");c.escapedProjectRoot?O.warning(o.IMPORT_MODULE_OUTSIDE_PROJECT,s[o.IMPORT_MODULE_OUTSIDE_PROJECT](e.module,c.path)):t(n,e.module,p)||O.error(o.IMPORT_MODULE_NOT_FOUND,s[o.IMPORT_MODULE_NOT_FOUND](e.module,c.path));let d=c.path.startsWith(".")?c.path:`./${c.path}`;return{...e,module:d}})}:e);export const resolveImportModules=(e,t,r)=>{let o=e.content.model?Object.fromEntries(Object.entries(e.content.model).map(([o,s])=>[o,{...s,...s.commonTypes?{commonTypes:Object.fromEntries(Object.entries(s.commonTypes).map(([s,m])=>[s,n(m,e.name,t,r.at("model",o,"commonTypes",s))]))}:{},...s.shapes?{shapes:Object.fromEntries(Object.entries(s.shapes).map(([s,m])=>[s,Object.fromEntries(Object.entries(m).map(([m,p])=>[m,n(p,e.name,t,r.at("model",o,"shapes",s,m))]))]))}:{}}])):void 0,s=e.content.expressions?Object.fromEntries(Object.entries(e.content.expressions).map(([o,s])=>[o,Object.fromEntries(Object.entries(s).map(([s,m])=>[s,{...m,schema:n(m.schema,e.name,t,r.at("expressions",o,s))}]))])):void 0,p=Object.fromEntries(m.flatMap(o=>{let s,m=e.content[o];return m?[[o,{...s=n(m,e.name,t,r.at(o)),type:"object",properties:s.properties??{},required:s.required??[],additionalProperties:!1}]]:[]}));return{...e.content,...o?{model:o}:{},...s?{expressions:s}:{},...p}};
1
+ import{mapSchema as e,resolveProjectFileImport as t,resolveProjectPath as r}from"../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as s}from"../../errors/index.js";import{DATA_SCHEMA_KEYS as n}from"../raw-spec/index.js";let m=(n,m,a,i)=>e(n,(e,n)=>e.import?{...e,import:e.import.map((e,p)=>{if(!e.module.startsWith("."))return e;let c=r(m,e.module),O=i.at(...n,"import",String(p),"module");c.escapedProjectRoot?O.warning(o.IMPORT_MODULE_OUTSIDE_PROJECT,s[o.IMPORT_MODULE_OUTSIDE_PROJECT](e.module,c.path)):t(m,e.module,a)||O.error(o.IMPORT_MODULE_NOT_FOUND,s[o.IMPORT_MODULE_NOT_FOUND](e.module,c.path));let l=c.path.startsWith(".")?c.path:`./${c.path}`;return{...e,module:l}})}:e);export const resolveImportModules=(e,t,r)=>{let o=e.content.model?Object.fromEntries(Object.entries(e.content.model).map(([o,s])=>[o,{...s,...s.commonTypes?{commonTypes:Object.fromEntries(Object.entries(s.commonTypes).map(([s,n])=>[s,m(n,e.name,t,r.at("model",o,"commonTypes",s))]))}:{},...s.shapes?{shapes:Object.fromEntries(Object.entries(s.shapes).map(([s,n])=>[s,Object.fromEntries(Object.entries(n).map(([n,a])=>[n,m(a,e.name,t,r.at("model",o,"shapes",s,n))]))]))}:{}}])):void 0,s=e.content.expressions?Object.fromEntries(Object.entries(e.content.expressions).map(([o,s])=>[o,Object.fromEntries(Object.entries(s).map(([s,n])=>[s,{...n,schema:m(n.schema,e.name,t,r.at("expressions",o,s))}]))])):void 0,a=e.content.actions?Object.fromEntries(Object.entries(e.content.actions).map(([o,s])=>{let n=(s,n)=>Object.fromEntries(Object.entries(s).map(([s,a])=>[s,m(a,e.name,t,r.at("actions",o,n,s))]));return[o,{...s,params:n(s.params,"params"),result:n(s.result,"result")}]})):void 0,i=Object.fromEntries(n.flatMap(o=>{let s,n=e.content[o];return n?[[o,{...s=m(n,e.name,t,r.at(o)),type:"object",properties:s.properties??{},required:s.required??[],additionalProperties:!1}]]:[]}));return{...e.content,...o?{model:o}:{},...s?{expressions:s}:{},...a?{actions:a}:{},...i}};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,M,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{AppMetadata as s,BundleSizeBudgets as a,DataSpec as t,Infra as n}from"../sections/index.js";import{AdminSpec as r}from"./admin-spec/index.js";import{ConfiguratorSpec as o}from"./configurator-spec/index.js";export const ApplicationSpec=(i,l)=>{let{merged:m,migrationFiles:p,adminMigrationFiles:d,transformerFiles:c,phxDefinitions:u,evalExpressionParser:w}=i,f=s(m.appMetadata,l);if(!f)return;let S=t({mergedDataSpec:m.dataSpec,mergedChunks:m.chunks},l);if(!S||l.hasErrors)return;let g=l.startSpan("ConfiguratorSpec","ApplicationSpec"),h=o({rawModel:m.model,rawPresets:m.presets,rawExpressions:m.expressions,rawInvariants:m.invariants,rawRelations:m.relations,rawDefaults:m.defaults,dataSchemas:m.dataSchemas,dataSpec:S,appMetadata:f,rawTheme:m.theme,rawUi:m.ui,rawTransformers:m.transformers,rawAssistant:m.assistant,migrationFiles:p,transformerFiles:c,rawComponents:m.components,rawStates:m.configuratorStates,phxDefinitions:u,evalExpressionParser:w,label:"model"},l);if(g(),!h)return;let M=l.startSpan("AdminSpec","ApplicationSpec"),x=r({rawModel:m.adminModel,rawPresets:m.adminPresets,rawExpressions:m.adminExpressions,rawInvariants:m.adminInvariants,rawRelations:m.adminRelations,rawDefaults:m.adminDefaults,migrationFiles:d,rawComponents:m.adminComponents,rawAdminPages:m.adminPages,rawStates:m.adminStates,dataSpec:S,phxDefinitions:u,evalExpressionParser:w,label:"adminModel",requireMigrationFiles:!0},l);if(M(),!x)return;let v=n(m.infra,l);if(!v)return;let y=a(m.budgets);return l.count("entityTypes",h.latestModel.entityTypes.length),l.count("aliases",h.latestModel.aliases.size),l.count("commonTypes",h.latestModel.commonTypes.size),l.count("shapes",h.latestModel.shapes.size),l.count("components",h.components.length),l.count("modelVersions",h.resolvedVersions.versionedModels.length),l.count("presets",h.presets.presets.length),e({configurator:h,admin:x,appMetadata:f,infra:v,budgets:y,dataSpec:S})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{AppMetadata as s,BundleSizeBudgets as a,DataSpec as t,Infra as n}from"../sections/index.js";import{AdminSpec as r}from"./admin-spec/index.js";import{ConfiguratorSpec as o}from"./configurator-spec/index.js";export const ApplicationSpec=(i,l)=>{let{merged:m,migrationFiles:p,adminMigrationFiles:d,transformerFiles:c,phxDefinitions:u,evalExpressionParser:w}=i,f=s(m.appMetadata,l);if(!f)return;let S=t({mergedDataSpec:m.dataSpec,mergedChunks:m.chunks},l);if(!S||l.hasErrors)return;let g=l.startSpan("ConfiguratorSpec","ApplicationSpec"),h=o({rawModel:m.model,rawPresets:m.presets,rawExpressions:m.expressions,rawActions:m.actions,rawInvariants:m.invariants,rawRelations:m.relations,rawDefaults:m.defaults,dataSchemas:m.dataSchemas,dataSpec:S,appMetadata:f,rawTheme:m.theme,rawUi:m.ui,rawTransformers:m.transformers,rawAssistant:m.assistant,migrationFiles:p,transformerFiles:c,rawComponents:m.components,rawStates:m.configuratorStates,phxDefinitions:u,evalExpressionParser:w,label:"model"},l);if(g(),!h)return;let M=l.startSpan("AdminSpec","ApplicationSpec"),x=r({rawModel:m.adminModel,rawPresets:m.adminPresets,rawExpressions:m.adminExpressions,rawInvariants:m.adminInvariants,rawRelations:m.adminRelations,rawDefaults:m.adminDefaults,migrationFiles:d,rawComponents:m.adminComponents,rawAdminPages:m.adminPages,rawStates:m.adminStates,dataSpec:S,phxDefinitions:u,evalExpressionParser:w,label:"adminModel",requireMigrationFiles:!0},l);if(M(),!x)return;let A=n(m.infra,l);if(!A)return;let v=a(m.budgets);return l.count("entityTypes",h.latestModel.entityTypes.length),l.count("aliases",h.latestModel.aliases.size),l.count("commonTypes",h.latestModel.commonTypes.size),l.count("shapes",h.latestModel.shapes.size),l.count("components",h.components.length),l.count("modelVersions",h.resolvedVersions.versionedModels.length),l.count("presets",h.presets.presets.length),e({configurator:h,admin:x,appMetadata:f,infra:A,budgets:v,dataSpec:S})};
@@ -1,12 +1,12 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
2
  import { type EvalExpressionParser, type ParseContext, type PhoenixDefinitions } from '../../../../core/index.js';
3
3
  import type { CategorizedFile } from '../../../categorize/index.js';
4
- import type { MergedAssistant, MergedComponents, MergedConfiguratorStates, MergedDataSchemas, MergedDefaults, MergedExpressions, MergedInvariants, MergedModel, MergedPresets, MergedRelations, MergedTheme, MergedTransformers, MergedUi } from '../../../merge/index.js';
4
+ import type { MergedActions, MergedAssistant, MergedComponents, MergedConfiguratorStates, MergedDataSchemas, MergedDefaults, MergedExpressions, MergedInvariants, MergedModel, MergedPresets, MergedRelations, MergedTheme, MergedTransformers, MergedUi } from '../../../merge/index.js';
5
5
  import { Components } from '../../components/index.js';
6
6
  import { Expressions } from '../../expressions/index.js';
7
7
  import { Invariants } from '../../invariants/index.js';
8
8
  import { ConfigurationSchema, DataSchemas, Defaults, ModelVersion, Presets } from '../../model/index.js';
9
- import { type AppMetadata, AssistantServerSettings, AssistantSpec, type DataSpec, Theme, Transformers, Ui } from '../../sections/index.js';
9
+ import { Actions, type AppMetadata, AssistantServerSettings, AssistantSpec, type DataSpec, Theme, Transformers, Ui } from '../../sections/index.js';
10
10
  import { ResolvedVersions } from '../resolved-versions.js';
11
11
  import { ConfiguratorStates } from './states.js';
12
12
  export type ConfiguratorSpec = Branded<'ConfiguratorSpec', {
@@ -17,6 +17,7 @@ export type ConfiguratorSpec = Branded<'ConfiguratorSpec', {
17
17
  readonly configurationSchema: ConfigurationSchema;
18
18
  readonly presets: Presets;
19
19
  readonly expressions: Expressions;
20
+ readonly actions: Actions;
20
21
  readonly invariants: Invariants;
21
22
  readonly dataSchemas: DataSchemas;
22
23
  readonly defaults: Defaults;
@@ -31,6 +32,7 @@ interface ConfiguratorSpecProps {
31
32
  readonly rawModel: MergedModel;
32
33
  readonly rawPresets: MergedPresets;
33
34
  readonly rawExpressions: MergedExpressions;
35
+ readonly rawActions: MergedActions;
34
36
  readonly rawInvariants: MergedInvariants;
35
37
  readonly rawRelations: MergedRelations;
36
38
  readonly rawDefaults: MergedDefaults;
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as r,UserComponents as o}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{AssistantServerSettings as x,AssistantSpec as S,Theme as v,Transformers as c,Ui as j}from"../../sections/index.js";import{ResolvedVersions as u}from"../resolved-versions.js";import{ConfiguratorStates as g}from"./states.js";export const ConfiguratorSpec=(C,I)=>{let{rawModel:M,rawPresets:h,rawExpressions:y,rawInvariants:E,rawRelations:N,rawDefaults:T,dataSchemas:L,dataSpec:G,appMetadata:O,rawTheme:_,rawUi:b,rawTransformers:w,rawAssistant:A,migrationFiles:D,transformerFiles:V,rawComponents:k,phxDefinitions:K,evalExpressionParser:q,label:z}=C;if(0===Object.keys(M).length)return void I.at(z).error(s.MISSING_MODEL,t.MISSING_MODEL(z));M.latest||I.at(z).error(s.MISSING_LATEST,t.MISSING_LATEST(z));let B=new Map;for(let[e,s]of Object.entries(M)){let t=l(e,s,K,I.at(z,e));t&&B.set(t.versionKey,t)}if(I.hasErrors)return;let F=u(B,D,I);if(!F)return;let H=F.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!H)return;let J=F.latestVersion,P=a(H,J),Q=f(N,H,I),R=n({rawInvariants:E,rawExpressions:y,rawRelations:N,rawComponents:k},H,I),U=d(h,H,Q,I),W=o(k,{allNames:H.allNames,resolvedShapes:H.resolvedShapes,parsingContext:I}),X=p(T,H,I.at(z,"defaults")),Y=c(w,V,I),Z=i({rawExpressions:y,inferredExpressions:[...Q.expressions,...R.expressions,...W.expressions]},{latestModel:H,aliases:H.aliases,entityTypes:H.entityTypes,evalExpressionParser:q,parsingContext:I}),$=r({userComponents:W.components,generatedComponents:Q.components,invariantComponents:R.components},{aliases:H.aliases,parsingContext:I}),ee=m({merged:L,dataSpec:G,appMetadata:O,phxDefinitions:K,parsingContext:I}),es=g(C.rawStates,I.at("states"));if(void 0!==X&&void 0!==Z&&void 0!==$&&void 0!==ee)return e({latestModel:H,schemaVersion:J,dataSchemas:ee,resolvedVersions:F,components:$,configurationSchema:P,presets:U,expressions:Z,invariants:R,defaults:X,states:es,theme:v(_),ui:j(b),transformers:Y,assistant:S(A,{model:H,states:es,phxDefinitions:K,expressions:Z,components:$},I),assistantServerSettings:x(A)})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{Actions as x,AssistantServerSettings as S,AssistantSpec as v,Theme as c,Transformers as j,Ui as u}from"../../sections/index.js";import{ResolvedVersions as g}from"../resolved-versions.js";import{ConfiguratorStates as C}from"./states.js";export const ConfiguratorSpec=(I,M)=>{let{rawModel:h,rawPresets:y,rawExpressions:E,rawActions:N,rawInvariants:T,rawRelations:L,rawDefaults:G,dataSchemas:O,dataSpec:_,appMetadata:b,rawTheme:w,rawUi:A,rawTransformers:D,rawAssistant:V,migrationFiles:k,transformerFiles:K,rawComponents:q,phxDefinitions:z,evalExpressionParser:B,label:F}=I;if(0===Object.keys(h).length)return void M.at(F).error(s.MISSING_MODEL,t.MISSING_MODEL(F));h.latest||M.at(F).error(s.MISSING_LATEST,t.MISSING_LATEST(F));let H=new Map;for(let[e,s]of Object.entries(h)){let t=l(e,s,z,M.at(F,e));t&&H.set(t.versionKey,t)}if(M.hasErrors)return;let J=g(H,k,M);if(!J)return;let P=J.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!P)return;let Q=J.latestVersion,R=a(P,Q),U=f(L,P,z,M),W=n({rawInvariants:T,rawExpressions:E,rawRelations:L,rawComponents:q},P,M),X=d(y,P,U,M),Y=r(q,{allNames:P.allNames,resolvedShapes:P.resolvedShapes,parsingContext:M}),Z=p(G,P,M.at(F,"defaults")),$=j(D,K,M),ee=i({rawExpressions:E,inferredExpressions:[...U.expressions,...W.expressions,...Y.expressions]},{latestModel:P,aliases:P.aliases,entityTypes:P.entityTypes,evalExpressionParser:B,parsingContext:M}),es=o({userComponents:Y.components,generatedComponents:U.components,invariantComponents:W.components},{aliases:P.aliases,parsingContext:M}),et=m({merged:O,dataSpec:_,appMetadata:b,phxDefinitions:z,parsingContext:M}),eo=C(I.rawStates,M.at("states")),er=x(N,{latestModel:P,phxDefinitions:z},M.at("actions"));if(void 0!==Z&&void 0!==ee&&void 0!==er&&void 0!==es&&void 0!==et)return e({latestModel:P,schemaVersion:Q,dataSchemas:et,resolvedVersions:J,components:es,configurationSchema:R,presets:X,expressions:ee,actions:er,invariants:W,defaults:Z,states:eo,theme:c(w),ui:u(A),transformers:$,assistant:v(V,{model:P,states:eo,phxDefinitions:z,expressions:ee,components:es,actions:er},M),assistantServerSettings:S(V)})};
@@ -1 +1,2 @@
1
+ export * from './schema-ref-resolver.js';
1
2
  export * from './validate-schema-refs.js';
@@ -1 +1 @@
1
- export*from"./validate-schema-refs.js";
1
+ export*from"./schema-ref-resolver.js";export*from"./validate-schema-refs.js";
@@ -0,0 +1,23 @@
1
+ import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../core/index.js';
2
+ /**
3
+ * Resolves a `$ref` to the schema it names, through phoenix definitions and common types.
4
+ * `undefined` for a ref that names nothing known.
5
+ */
6
+ export type SchemaRefResolver = ($ref: string) => EnhancedJsonSchemaType | undefined;
7
+ /** The name of the common type a `common:` or internal `#/model/{version}/commonTypes/{name}` ref names. */
8
+ export declare const commonTypeRefName: ($ref: string) => string | undefined;
9
+ /** The phoenix definition a ref names: full URL, `phx:`, or `#/definitions/` as used inside the definitions. */
10
+ export declare const phxDefinitionRefName: ($ref: string) => string | undefined;
11
+ /**
12
+ * Resolves refs to phoenix definitions (full URL, `phx:`, or `#/definitions/` as used inside the
13
+ * definitions themselves) and to common types (`common:` or internal path).
14
+ */
15
+ export declare const createSchemaRefResolver: (commonTypes: ReadonlyMap<string, {
16
+ readonly schema: EnhancedJsonSchemaType;
17
+ }>, phxDefinitions: PhoenixDefinitions) => SchemaRefResolver;
18
+ /**
19
+ * Whether a value of the schema can be `null`: a `null` type, enum value or const, a nullable
20
+ * `anyOf`/`oneOf` member, or a ref to a nullable schema. A ref that cannot be resolved counts as
21
+ * nullable, since nothing proves otherwise; a ref cycle does not.
22
+ */
23
+ export declare const isNullableSchema: (schema: EnhancedJsonSchemaType, resolveRef: SchemaRefResolver, visitedRefs?: ReadonlySet<string>) => boolean;
@@ -0,0 +1 @@
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{COMMON_SHORT_PREFIX as t,DEFINITION_REF_PATTERN as n,INTERNAL_REF_PATTERN as o,extractPhxDefName as l}from"../../../core/index.js";export const commonTypeRefName=e=>e.startsWith(t)?e.slice(t.length):o.exec(e)?.[2];export const phxDefinitionRefName=e=>l(e)??n.exec(e)?.[1];export const createSchemaRefResolver=(e,t)=>n=>{let o=phxDefinitionRefName(n);if(void 0!==o)return t[o]?.schema;let l=commonTypeRefName(n);return void 0===l?void 0:e.get(l)?.schema};export const isNullableSchema=(t,n,o=new Set)=>{if(t.$ref){if(o.has(t.$ref))return!1;let e=n(t.$ref);return void 0===e||isNullableSchema(e,n,new Set([...o,t.$ref]))}let l=[...t.anyOf??[],...t.oneOf??[]];return"null"===t.type||e(t.type)&&t.type.includes("null")||t.enum?.includes(null)===!0||null===t.const||l.some(e=>isNullableSchema(e,n,o))};
@@ -7,8 +7,8 @@ import { ShapePropertyName } from './names/shape-property-name.js';
7
7
  /**
8
8
  * A map of shape property names to their default values inside a single entity block.
9
9
  * Raw YAML values — markers intact — keyed by a validated {@link ShapePropertyName}.
10
- * Codegen emits these as-is via `stringifyEnhancedJsonValue`; runtime consumers
11
- * (`RecipeFactoryBuilder`) consume the generated `createRecipe` factory.
10
+ * Codegen emits these as-is via `stringifyEnhancedJsonValue`; at run time
11
+ * `createRecipeFactory` makes the generated `createRecipe` factory from them.
12
12
  */
13
13
  export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValue>>;
14
14
  /**
@@ -19,6 +19,11 @@ export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValu
19
19
  * flattened here to concrete entity entries so downstream codegen only serialises
20
20
  * a runtime-ready per-entity map.
21
21
  *
22
+ * A source key may state part of a shape, but the flattened entry of a concrete
23
+ * entity type states every property of its shape: `createRecipeFactory` validates
24
+ * each entry as a whole entity when the generated module loads. An entity type
25
+ * with no entry has no defaults and is not checked.
26
+ *
22
27
  * Values are raw `EnhancedJsonValue` so codegen can emit them via
23
28
  * `stringifyEnhancedJsonValue` with `$msg` markers preserved.
24
29
  *
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t,resolveEnhancedJsonValue as r}from"../../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as i}from"../../../errors/index.js";import{ShapePropertyName as n}from"./names/shape-property-name.js";let s=(e,t,r,n,s)=>{for(let l of r.validatePartialShape(t).errors){let t=l.instancePath?l.instancePath:"(root)",r=l.instancePath.split("/").filter(Boolean)[0]??"";n.error(o.DEFAULTS_SCHEMA_VIOLATION,i[o.DEFAULTS_SCHEMA_VIOLATION](e,r,t,l.message,s))}};export const Defaults=(l,a,f)=>{let E=a.allNames,T=[...E].map(String),N=new Map,S=new Map;for(let e of a.entitySchemas)N.set(e.entityType,new Set(Object.keys(e.shapeProperties))),S.set(e.entityType,e);let _={};for(let[e,O]of Object.entries(l)){let l=f.at(e);if(!E.has(e)){f.error(o.DEFAULTS_UNKNOWN_ENTITY_KEY,i[o.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let p=a.aliases.get(e),c=void 0!==p,g={};for(let[t,r]of Object.entries(O)){let s=n(t,l);if(s){if(c){let t=[];for(let e of p){let r=N.get(e);r&&r.has(s)||t.push(String(e))}if(t.length>0){let r=p[0],n=r?[...N.get(r)??[]]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,n,t));continue}}else{let t=N.get(e);if(!t||!t.has(s)){let r=t?[...t]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,r));continue}}g[s]=r}}if(0===Object.keys(g).length)continue;let m=r(g,void 0,t,l);if(void 0!==m){if(c)for(let t of p){let r=S.get(t);r&&s(e,m,r,l,String(t))}else{let t=S.get(e);t&&s(e,m,t,l)}for(let t of p??[e])_[String(t)]={..._[String(t)],...g}}}if(Object.keys(l).length>0&&f.warning(o.DEFAULTS_DEPRECATED,i[o.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:_})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t,resolveEnhancedJsonValue as r}from"../../../core/index.js";import{DiagnosticCode as i,diagnosticMessages as o}from"../../../errors/index.js";import{ShapePropertyName as n}from"./names/shape-property-name.js";let l=(e,t,r,n,l)=>{for(let s of r.validatePartialShape(t).errors){let t=s.instancePath?s.instancePath:"(root)",r=s.instancePath.split("/").filter(Boolean)[0]??"";n.error(i.DEFAULTS_SCHEMA_VIOLATION,o[i.DEFAULTS_SCHEMA_VIOLATION](e,r,t,s.message,l))}};export const Defaults=(s,a,f)=>{let E=a.allNames,T=[...E].map(String),S=new Map,N=new Map;for(let e of a.entitySchemas)S.set(e.entityType,new Set(Object.keys(e.shapeProperties))),N.set(e.entityType,e);let g={},O=new Map;for(let[e,_]of Object.entries(s)){let s=f.at(e);if(!E.has(e)){f.error(i.DEFAULTS_UNKNOWN_ENTITY_KEY,o[i.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let c=a.aliases.get(e),p=void 0!==c,h={};for(let[t,r]of Object.entries(_)){let l=n(t,s);if(l){if(p){let t=[];for(let e of c){let r=S.get(e);r&&r.has(l)||t.push(String(e))}if(t.length>0){let r=c[0],n=r?[...S.get(r)??[]]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,o[i.DEFAULTS_UNKNOWN_PROPERTY](e,l,n,t));continue}}else{let t=S.get(e);if(!t||!t.has(l)){let r=t?[...t]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,o[i.DEFAULTS_UNKNOWN_PROPERTY](e,l,r));continue}}h[l]=r}}if(0===Object.keys(h).length)continue;let A=r(h,void 0,t,s);if(void 0!==A){if(p)for(let t of c){let r=N.get(t);r&&l(e,A,r,s,String(t))}else{let t=N.get(e);t&&l(e,A,t,s)}for(let t of c??[e])g[String(t)]={...g[String(t)],...h},O.set(t,[...O.get(t)??[],e])}}for(let[e,t]of O){let r=g[String(e)]??{},n=(N.get(e)?.shapeSchema.required??[]).filter(e=>!Object.hasOwn(r,e));if(0===n.length)continue;let l=t.includes(String(e))?String(e):t.at(-1);f.at(l).error(i.DEFAULTS_INCOMPLETE,o[i.DEFAULTS_INCOMPLETE](String(e),n,t))}if(Object.keys(s).length>0&&f.warning(i.DEFAULTS_DEPRECATED,o[i.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:g})};
@@ -0,0 +1,10 @@
1
+ import { Branded } from '@salsita-ai/common/utils';
2
+ import type { ParseContext } from '../../../../core/index.js';
3
+ /**
4
+ * Branded action name: camelCase without a prefix (e.g. "movePartBy", "swapCabinets"). An action is
5
+ * a named domain operation, so its name doubles as the key of its implementation and of its
6
+ * generated types.
7
+ */
8
+ export type ActionName = Branded<'ActionName', string>;
9
+ /** Validates that a name follows the action naming convention (camelCase, no prefix). */
10
+ export declare const ActionName: (name: string, ctx: ParseContext) => ActionName | undefined;
@@ -0,0 +1 @@
1
+ import{Branded as o}from"@salsita-ai/common/utils";import{DiagnosticCode as r,diagnosticMessages as t}from"../../../../errors/index.js";let i=/^[a-z][A-Za-z0-9]*$/;export const ActionName=(A,e)=>i.test(A)?o(A):void e.error(r.INVALID_ACTION_NAME,t.INVALID_ACTION_NAME(A));
@@ -1,3 +1,4 @@
1
+ export * from './action-name.js';
1
2
  export * from './alias-name.js';
2
3
  export * from './entity-or-alias-name.js';
3
4
  export * from './entity-type-name.js';
@@ -1 +1 @@
1
- export*from"./alias-name.js";export*from"./entity-or-alias-name.js";export*from"./entity-type-name.js";export*from"./expression-name.js";export*from"./instance-name.js";export*from"./invariant-name.js";export*from"./relation-name.js";export*from"./shape-property-name.js";export*from"./violation-type-name.js";
1
+ export*from"./action-name.js";export*from"./alias-name.js";export*from"./entity-or-alias-name.js";export*from"./entity-type-name.js";export*from"./expression-name.js";export*from"./instance-name.js";export*from"./invariant-name.js";export*from"./relation-name.js";export*from"./shape-property-name.js";export*from"./violation-type-name.js";
@@ -0,0 +1,25 @@
1
+ import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../core/index.js';
2
+ import type { ModelVersion } from '../model/index.js';
3
+ /**
4
+ * What the type of a shape field means to a relation that reads its related entities from it.
5
+ *
6
+ * - `single`: the id of one entity of `entityTypes`, or `null` when `nullable`.
7
+ * - `array`: an array of ids of entities of `entityTypes`.
8
+ * - `other`: anything else, such as a string, an id without `references`, or a mix of the above.
9
+ * - `unknown`: the schema does not say, because it states its type as TypeScript text (`tsType`)
10
+ * or combines schemas with `allOf`.
11
+ */
12
+ export type ReferenceFieldType = {
13
+ readonly kind: 'single';
14
+ readonly entityTypes: ReadonlySet<string>;
15
+ readonly nullable: boolean;
16
+ } | {
17
+ readonly kind: 'array';
18
+ readonly entityTypes: ReadonlySet<string>;
19
+ } | {
20
+ readonly kind: 'other';
21
+ } | {
22
+ readonly kind: 'unknown';
23
+ };
24
+ /** Classifies the schema of a shape field of the latest model by the reference it holds. */
25
+ export declare const referenceFieldType: (schema: EnhancedJsonSchemaType, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions) => ReferenceFieldType;
@@ -0,0 +1 @@
1
+ import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as t,extractPhxDefName as n}from"../../../core/index.js";let r={entityTypes:new Set,hasNull:!1,arrays:[],hasOther:!1,hasUnknown:!1},s={...r,hasNull:!0},a={...r,hasOther:!0},y={...r,hasUnknown:!0},i=e=>({entityTypes:new Set(e.flatMap(e=>[...e.entityTypes])),hasNull:e.some(e=>e.hasNull),arrays:e.flatMap(e=>e.arrays),hasOther:e.some(e=>e.hasOther),hasUnknown:e.some(e=>e.hasUnknown)}),l=(o,p)=>{if(o.tsType)return y;if(o.$ref){let s,i=n(o.$ref);if(void 0!==i)return p.phxDefinitions[i]?.tsType==="DomainEntityId"&&o.references?{...r,entityTypes:new Set(((e,t)=>{for(let[n,r]of t.aliases)if(String(n)===e)return r.map(String);return[e]})(o.references,p.latestModel))}:a;let h=(s=o.$ref).startsWith(e)?s.slice(e.length):t.exec(s)?.[2];if(void 0===h)return a;let u=p.latestModel.commonTypes.get(h);return!u||p.openCommonTypes.has(h)?y:l(u.schema,{...p,openCommonTypes:new Set([...p.openCommonTypes,h])})}if(o.enum)return i(o.enum.map(e=>null===e?s:a));let h=o.anyOf??o.oneOf;if(h)return i(h.map(e=>l(e,p)));if(o.allOf)return y;let u=e=>"array"===e?(()=>{let{items:e}=o;return!e||Array.isArray(e)?a:{...r,arrays:[l(e,p)]}})():"null"===e?s:a;return"string"==typeof o.type?u(o.type):Array.isArray(o.type)?i(o.type.map(u)):a};export const referenceFieldType=(e,t,n)=>(e=>{if(e.hasUnknown||e.arrays.some(e=>e.hasUnknown))return{kind:"unknown"};if(e.hasOther)return{kind:"other"};let[t,...n]=e.arrays;if(!t)return e.entityTypes.size>0?{kind:"single",entityTypes:e.entityTypes,nullable:e.hasNull}:{kind:"other"};let r=e=>e.entityTypes.size>0&&!e.hasNull&&!e.hasOther&&0===e.arrays.length;return 0===e.entityTypes.size&&!e.hasNull&&r(t)&&n.every(e=>{let n,s;return r(e)&&(n=e.entityTypes,s=t.entityTypes,n.size===s.size&&[...n].every(e=>s.has(e)))})?{kind:"array",entityTypes:t.entityTypes}:{kind:"other"}})(l(e,{latestModel:t,phxDefinitions:n,openCommonTypes:new Set}));
@@ -0,0 +1,46 @@
1
+ import type { ReferenceFieldType } from './reference-field-type.js';
2
+ type Cardinality = '0-1' | '1-1' | '0-N' | '1-N';
3
+ /** How a field holds its reference: one id, one id or `null`, or an array of ids. */
4
+ export type ReferenceFieldShape = 'single' | 'nullableSingle' | 'array';
5
+ /**
6
+ * Why a relation cannot read its related entities from its field.
7
+ *
8
+ * - `notReference`: the field does not hold entity ids.
9
+ * - `otherEntityTypes`: the field holds ids of other entity types than the relation relates to.
10
+ * - `cardinality`: the field of a direct relation holds its ids in another shape than the
11
+ * cardinality of the relation needs.
12
+ */
13
+ export type RelationFieldMismatch = {
14
+ readonly kind: 'notReference';
15
+ } | {
16
+ readonly kind: 'otherEntityTypes';
17
+ readonly referenced: readonly string[];
18
+ } | {
19
+ readonly kind: 'cardinality';
20
+ readonly shape: ReferenceFieldShape;
21
+ readonly required: ReferenceFieldShape;
22
+ };
23
+ interface RelationReadingField {
24
+ readonly kind: 'direct' | 'indirect';
25
+ readonly cardinality: Cardinality;
26
+ }
27
+ /**
28
+ * Checks the field of a direct or indirect relation against what the relation reads from it.
29
+ *
30
+ * The field must reference exactly `relatedEntityTypes`: for a direct relation the entity types of
31
+ * its target, for an indirect relation the entity types it is declared on, because there the field
32
+ * belongs to the target and points back. A direct relation also fixes the shape of the field by
33
+ * its cardinality. An indirect relation reads every shape, since its cardinality counts the
34
+ * entities that point back and not the ids in the field.
35
+ *
36
+ * When an alias holds the field, the field can have another type in each entity type of the alias.
37
+ * The relation is accepted when the field fits in at least one of them. Requiring all of them
38
+ * would be the stricter reading, but projects whose specs type-check rely on the looser one, so
39
+ * it would reject working projects.
40
+ *
41
+ * @param fieldTypes The type of the field in each entity type that holds it.
42
+ * @returns The mismatch of the first entity type, or `undefined` when the field fits in one of
43
+ * them or its type there is unknown.
44
+ */
45
+ export declare const relationFieldMismatch: (relation: RelationReadingField, fieldTypes: readonly ReferenceFieldType[], relatedEntityTypes: readonly string[]) => RelationFieldMismatch | undefined;
46
+ export {};
@@ -0,0 +1 @@
1
+ let e={"0-1":"nullableSingle","1-1":"single","0-N":"array","1-N":"array"};export const relationFieldMismatch=(n,i,r)=>{let t=i.map(i=>((n,i,r)=>{if("unknown"===i.kind)return;if("other"===i.kind)return{kind:"notReference"};let t=i.entityTypes;if(!(t.size===new Set(r).size&&r.every(e=>t.has(e))))return{kind:"otherEntityTypes",referenced:[...t]};if("indirect"===n.kind)return;let l="array"===i.kind?"array":i.nullable?"nullableSingle":"single",a=e[n.cardinality];return l===a?void 0:{kind:"cardinality",shape:l,required:a}})(n,i,r));return t.includes(void 0)?void 0:t[0]};
@@ -1,5 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import type { ParseContext } from '../../../core/index.js';
2
+ import type { ParseContext, PhoenixDefinitions } from '../../../core/index.js';
3
3
  import type { MergedRelations } from '../../merge/index.js';
4
4
  import type { ComponentEntry } from '../components/index.js';
5
5
  import type { Expression } from '../expressions/index.js';
@@ -19,7 +19,8 @@ export type Relations = Branded<'Relations', {
19
19
  * Validates merged relations against the latest model, then expands into components + expressions.
20
20
  *
21
21
  * Each relation is individually constructed via `Relation()` which builds its own expression
22
- * and component entries. This factory validates cross-relation concerns (counterpart pairing,
22
+ * and component entries. This factory validates the field a direct or indirect relation reads
23
+ * against the shape that holds it, validates cross-relation concerns (counterpart pairing,
23
24
  * composition tree reachability) and aggregates the per-relation artifacts.
24
25
  */
25
- export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, ctx: ParseContext) => Relations;
26
+ export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions, ctx: ParseContext) => Relations;
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as n}from"../model/index.js";import{Relation as f}from"./relation.js";let l=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,n]of Object.entries(i))if(n.kind===o&&n.target===e&&("allOfType"===t.kind||"allOfType"===n.kind||t.field===n.field))return{entityKey:t.target,name:r,relation:n}},T=(e,t)=>{let r=t.aliases.get(e);return r||[e]};export const Relations=(O,N,E)=>{let{allNames:I,resolvedShapes:_}=N,a=[...I].map(String),s=(e,t)=>n(_,e).fieldSchemas.has(t),d={};for(let[e,n]of Object.entries(O)){let l=E.at(e);if(!I.has(e)){l.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,a));continue}for(let[T,O]of Object.entries(n)){if(!o(T,l))continue;if(!I.has(O.target)){l.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,T,O.target,a));continue}if("direct"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,e));continue}if(!s(e,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,T,O.field));continue}}else if("indirect"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,O.target));continue}if(!s(O.target,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,T,O.field,O.target));continue}}let n=f(T,O,e,N.aliases,l);n&&(d[e]||(d[e]={}),d[e][n.name]=n)}}for(let[e,i]of Object.entries(d)){let o=E.at(e);for(let[n,f]of Object.entries(i)){if(f.target===e)continue;let i=l(e,f,d);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,n,f.kind,f.target,"allOfType"===f.kind?void 0:f.field,f.composedOf));continue}f.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,n,i.entityKey,i.name))}}((e,i,o)=>{let n=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=T(t,i),o=T(e.target,i);for(let e of r){let t=n.get(e);for(let r of(t||(t=new Set,n.set(e,t)),o))t.add(r)}}let f=new Set(i.rootEntityTypes),l=[...i.rootEntityTypes];for(;l.length>0;){let e=l.shift(),t=n.get(e);if(t)for(let e of t)f.has(e)||(f.add(e),l.push(e))}let O=i.rootEntityTypes.map(String);for(let e of i.entityTypes)f.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),O))})(d,N,E);let{components:R,expressions:c}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(d);return e({entries:d,components:R,expressions:c})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as E}from"../model/index.js";import{referenceFieldType as n}from"./reference-field-type.js";import{relationFieldMismatch as f}from"./relation-field-mismatch.js";import{Relation as l}from"./relation.js";let T=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,E]of Object.entries(i))if(E.kind===o&&E.target===e&&("allOfType"===t.kind||"allOfType"===E.kind||t.field===E.field))return{entityKey:t.target,name:r,relation:E}},N=(e,t)=>{let r=t.aliases.get(e);return r||[e]},a=(e,i,o)=>{let{entityKey:E,relationName:n,field:f,fieldOwner:l,related:T,relatedEntityTypes:N,cardinality:a}=i;switch(e.kind){case"notReference":o.error(t.RELATION_FIELD_NOT_REFERENCE,r.RELATION_FIELD_NOT_REFERENCE(E,n,f,l));break;case"otherEntityTypes":o.error(t.RELATION_FIELD_REFERENCES_OTHER_TYPES,r.RELATION_FIELD_REFERENCES_OTHER_TYPES(E,n,f,l,e.referenced,T,N));break;case"cardinality":o.error(t.RELATION_FIELD_CARDINALITY_MISMATCH,r.RELATION_FIELD_CARDINALITY_MISMATCH(E,n,f,a,e.shape,e.required))}};export const Relations=(O,_,I,s)=>{let{allNames:d,resolvedShapes:R}=_,c=[...d].map(String),L=(e,t)=>E(R,e).fieldSchemas.has(t),A={};for(let[e,T]of Object.entries(O)){let O=s.at(e);if(!d.has(e)){O.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,c));continue}for(let[s,p]of Object.entries(T)){if(!o(s,O))continue;if(!d.has(p.target)){O.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,s,p.target,c));continue}if("direct"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,e));continue}if(!L(e,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,s,p.field));continue}}else if("indirect"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,p.target));continue}if(!L(p.target,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,s,p.field,p.target));continue}}if("allOfType"!==p.kind){let[t,r]="direct"===p.kind?[e,p.target]:[p.target,e],i=N(r,_).map(String),o=N(t,_).flatMap(e=>{let t=E(R,e).fieldSchemas.get(p.field);return t?[n(t,_,I)]:[]}),l=f(p,o,i);l&&a(l,{entityKey:e,relationName:s,field:p.field,fieldOwner:t,related:r,relatedEntityTypes:i,cardinality:p.cardinality},O.at(s))}let T=l(s,p,e,_.aliases,O);T&&(A[e]||(A[e]={}),A[e][T.name]=T)}}for(let[e,i]of Object.entries(A)){let o=s.at(e);for(let[E,n]of Object.entries(i)){if(n.target===e)continue;let i=T(e,n,A);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,E,n.kind,n.target,"allOfType"===n.kind?void 0:n.field,n.composedOf));continue}n.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,E,i.entityKey,i.name))}}((e,i,o)=>{let E=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=N(t,i),o=N(e.target,i);for(let e of r){let t=E.get(e);for(let r of(t||(t=new Set,E.set(e,t)),o))t.add(r)}}let n=new Set(i.rootEntityTypes),f=[...i.rootEntityTypes];for(;f.length>0;){let e=f.shift(),t=E.get(e);if(t)for(let e of t)n.has(e)||(n.add(e),f.push(e))}let l=i.rootEntityTypes.map(String);for(let e of i.entityTypes)n.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),l))})(A,_,s);let{components:p,expressions:m}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(A);return e({entries:A,components:p,expressions:m})};
@@ -0,0 +1,35 @@
1
+ import { Branded } from '@salsita-ai/common/utils';
2
+ import { type EnhancedJsonSchemaType, type JsonSchema, type ParseContext, type PhoenixDefinitions } from '../../../core/index.js';
3
+ import type { MergedActions } from '../../merge/index.js';
4
+ import { ActionName, type ModelVersion } from '../model/index.js';
5
+ /** One parameter of an action: its declared schema, and whether a call has to pass it (a nullable param is optional). */
6
+ export interface ActionParam {
7
+ readonly schema: EnhancedJsonSchemaType;
8
+ readonly required: boolean;
9
+ }
10
+ /**
11
+ * One validated action declaration. `params` and `result` keep the enhanced schemas for codegen and
12
+ * for consumers that expose the action; `paramsSchema` is the AJV-ready object schema of the parameters, with the
13
+ * refs resolved into `$defs`, which the action system validates the arguments of a call against.
14
+ */
15
+ export type Action = Branded<'Action', {
16
+ readonly name: ActionName;
17
+ readonly description?: string;
18
+ readonly params: Readonly<Record<string, ActionParam>>;
19
+ readonly result: Readonly<Record<string, EnhancedJsonSchemaType>>;
20
+ readonly paramsSchema: JsonSchema;
21
+ }>;
22
+ /** The validated `actions` section: every declared action by name, in declaration order; empty when the spec declares none. */
23
+ export type Actions = Branded<'Actions', ReadonlyMap<ActionName, Action>>;
24
+ interface ActionsContext {
25
+ readonly latestModel: ModelVersion;
26
+ readonly phxDefinitions: PhoenixDefinitions;
27
+ }
28
+ /**
29
+ * Validates the merged `actions` block against the latest model: action names follow the naming
30
+ * rule, every `$ref` and `references` of a param or result member resolves, and each action gets
31
+ * the runtime schema of its parameters. Returns `undefined` after reporting when any action is
32
+ * invalid, so nothing downstream builds on a partial list.
33
+ */
34
+ export declare const Actions: (merged: MergedActions, context: ActionsContext, ctx: ParseContext) => Actions | undefined;
35
+ export {};
@@ -0,0 +1 @@
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{buildPhxDefSchemas as t,collectSchemaRefs as r,toRuntimeSchema as o}from"../../../core/index.js";import{DiagnosticCode as s,diagnosticMessages as i}from"../../../errors/index.js";import{createSchemaRefResolver as a,isNullableSchema as m,validateSchemaRefs as n}from"../common/index.js";import{ActionName as p}from"../model/index.js";let l=(e,{latestModel:t,phxDefinitions:o},a,m)=>{let p=new Set(t.commonTypes.keys());for(let[l,c]of Object.entries(e)){let{refs:e,references:d}=r(c),f=a.at(l);for(let r of(n(e,t.versionKey,p,o,f),d))[...t.allNames].some(e=>e===r.value)||f.at(...r.path).error(s.ACTION_UNKNOWN_REFERENCE_TARGET,i.ACTION_UNKNOWN_REFERENCE_TARGET(m,l,r.value))}};export const Actions=(r,s,i)=>{let{latestModel:n,phxDefinitions:c}=s,d=i.errors.length,f=a(n.commonTypes,c),u=new Map([...Object.entries(t(c)),...[...n.commonTypes].map(([e,t])=>[e,t.schema])]),j=new Map;for(let[t,a]of Object.entries(r)){let r=i.at(t),n=p(t,r);if(l(a.params,s,r.at("params"),`actions.${t}.params`),l(a.result,s,r.at("result"),`actions.${t}.result`),!n)continue;let c=Object.fromEntries(Object.entries(a.params).map(([e,t])=>[e,{schema:t,required:!m(t,f)}])),d=o({type:"object",properties:a.params,required:Object.entries(c).flatMap(([e,{required:t}])=>t?[e]:[]),additionalProperties:!1},u);j.set(n,e({name:n,...void 0===a.description?{}:{description:a.description},params:c,result:a.result,paramsSchema:d}))}return i.errors.length>d?void 0:e(j)};
@@ -1,24 +1,13 @@
1
- import { type GraphQLOutputType, GraphQLScalarType } from 'graphql';
2
- import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../../core/index.js';
3
- import type { CommonTypes } from '../../model/index.js';
4
- /**
5
- * Opaque scalar for values the assistant schema does not type: objects, custom TypeScript types and
6
- * loose unions. A value is plain serializable data and passes through unchanged.
7
- */
8
- export declare const GraphQLJSON: GraphQLScalarType<unknown, unknown>;
9
- /**
10
- * Resolves a `$ref` to the schema it names: nullability is read through phoenix definitions and
11
- * common types, and a common type also gives the field its type and default description.
12
- * `undefined` for a ref that names nothing known.
13
- */
14
- export type AssistantRefResolver = ($ref: string) => EnhancedJsonSchemaType | undefined;
1
+ import type { AssistantValueType } from '#package/domain';
2
+ import { type EnhancedJsonSchemaType } from '../../../../core/index.js';
3
+ import { type SchemaRefResolver } from '../../common/index.js';
15
4
  /**
16
5
  * The GraphQL type of one whitelisted stored field or declared expression. `enumValues` lists the
17
6
  * allowed values of a string enum, which the schema exposes as `String` and names in the field
18
7
  * description.
19
8
  */
20
9
  export interface AssistantFieldType {
21
- readonly type: GraphQLOutputType;
10
+ readonly type: AssistantValueType;
22
11
  readonly enumValues?: readonly string[];
23
12
  /**
24
13
  * The schema's own description, or without one that of the common type it references, directly or
@@ -28,11 +17,6 @@ export interface AssistantFieldType {
28
17
  /** The value is localizable, or a list of localizable values, and the schema exposes it as `String`. */
29
18
  readonly localized?: true;
30
19
  }
31
- /**
32
- * Resolves refs to phoenix definitions (full URL, `phx:`, or `#/definitions/` as used inside the
33
- * definitions themselves) and to common types (`common:` or internal path).
34
- */
35
- export declare const createAssistantRefResolver: (commonTypes: CommonTypes, phxDefinitions: PhoenixDefinitions) => AssistantRefResolver;
36
20
  /**
37
21
  * Maps the JSON Schema of a whitelisted stored field or declared expression to its GraphQL type,
38
22
  * following the resolution order of `schemaToTypeString`: refs to localizable phoenix definitions →
@@ -41,4 +25,4 @@ export declare const createAssistantRefResolver: (commonTypes: CommonTypes, phxD
41
25
  * `String` with their values, primitives → scalars, arrays of mappable items → lists, and everything
42
26
  * else → `JSON`. Every type, `JSON` included, is non-null unless the schema admits `null`.
43
27
  */
44
- export declare const assistantFieldType: (schema: EnhancedJsonSchemaType, resolveRef: AssistantRefResolver) => AssistantFieldType;
28
+ export declare const resolveAssistantFieldType: (schema: EnhancedJsonSchemaType, resolveRef: SchemaRefResolver) => AssistantFieldType;
@@ -1 +1 @@
1
- import{GraphQLBoolean as e,GraphQLFloat as t,GraphQLID as r,GraphQLInt as n,GraphQLList as i,GraphQLNonNull as l,GraphQLScalarType as a,GraphQLString as o,getNamedType as s}from"graphql";import{isArray as u}from"@salsita-ai/common/utils";import{COMMON_SHORT_PREFIX as f,DEFINITION_REF_PATTERN as p,INTERNAL_REF_PATTERN as d,extractPhxDefName as y}from"../../../../core/index.js";export const GraphQLJSON=new a({name:"JSON",description:"Any JSON value, returned as stored. Always plain serializable data."});let c={number:t,integer:n,string:o,boolean:e},m=new Set(["Localizable","EnhancedLocalizable","MessageDescriptor","EnhancedMessageDescriptor","MultilingualString"]),v={type:GraphQLJSON},h=e=>e.startsWith(f)?e.slice(f.length):d.exec(e)?.[2],g=e=>y(e)??p.exec(e)?.[1];export const createAssistantRefResolver=(e,t)=>r=>{let n=g(r);if(void 0!==n)return t[n]?.schema;let i=h(r);return void 0===i?void 0:e.get(i)?.schema};let S=(e,t,r=new Set)=>{if(e.$ref){if(r.has(e.$ref))return!1;let n=t(e.$ref);return void 0===n||S(n,t,new Set([...r,e.$ref]))}let n=[...e.anyOf??[],...e.oneOf??[]];return"null"===e.type||u(e.type)&&e.type.includes("null")||e.enum?.includes(null)===!0||null===e.const||n.some(e=>S(e,t,r))},O=({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type),w=(e,t,n)=>{let l;if(void 0!==(l=void 0===e.$ref?void 0:g(e.$ref))&&m.has(l))return{type:o,localized:!0};if(e.tsType)return v;if(e.$ref){var a=e.$ref;if("DomainEntityId"===y(a))return{type:r};let i=h(a),l=void 0===i||n.has(i)?void 0:t(a);return void 0!==i&&l?w(l,t,new Set([...n,i])):v}if(e.anyOf||e.oneOf)return((e,t,r)=>{let n=O(e).map(e=>w(e,t,r)),[i]=n;if(1===n.length&&i)return i;let l=n.flatMap(({type:e,enumValues:t})=>e===o&&t?[t]:[]);if(n.length<2||l.length!==n.length||e.anyOf&&e.oneOf)return v;let a=l.flatMap(e=>[...new Set(e)]);return{type:o,enumValues:e.oneOf?a.filter(e=>a.indexOf(e)===a.lastIndexOf(e)):[...new Set(a)]}})(e,t,n);if(e.enum){let t;return(t=e.enum.filter(e=>null!==e)).every(e=>"string"==typeof e)?{type:o,enumValues:t}:v}if(u(e.type)){let r=e.type.filter(e=>"null"!==e),[i]=r;return 1===r.length&&i?w({...e,type:i},t,n):v}if("array"===e.type){var f=e.items;if(!f||u(f))return v;let r=$(f,t,n);return s(r.type)===GraphQLJSON?v:{type:new i(r.type),enumValues:r.enumValues,localized:r.localized}}let p="string"==typeof e.type?c[e.type]:void 0;return p?{type:p}:v},$=(e,t,r)=>{let n=w(e,t,r);return{...n,type:S(e,t)?n.type:new l(n.type)}},x=e=>{let t=O(e);return e.$ref??(1===t.length?t[0]?.$ref:void 0)},z=(e,t,r)=>{let n=h(e),i=void 0===n||r.has(n)?void 0:t(e);if(void 0===n||!i)return;let l=x(i);return void 0===i.description&&l?z(l,t,new Set([...r,n])):i.description};export const assistantFieldType=(e,t)=>{let r=x(e),n=void 0===e.description&&r?z(r,t,new Set):e.description;return{...$(e,t,new Set),...void 0===n?{}:{description:n}}};
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{extractPhxDefName as n}from"../../../../core/index.js";import{commonTypeRefName as t,isNullableSchema as l,phxDefinitionRefName as r}from"../../common/index.js";let i={number:{kind:"scalar",name:"Float",nonNull:!1},integer:{kind:"scalar",name:"Int",nonNull:!1},string:{kind:"scalar",name:"String",nonNull:!1},boolean:{kind:"scalar",name:"Boolean",nonNull:!1}},a={kind:"scalar",name:"String",nonNull:!1},o={kind:"scalar",name:"ID",nonNull:!1},u=new Set(["Localizable","EnhancedLocalizable","MessageDescriptor","EnhancedMessageDescriptor","MultilingualString"]),s={type:{kind:"scalar",name:"JSON",nonNull:!1}},d=({anyOf:e,oneOf:n})=>[...e??[],...n??[]].filter(e=>"null"!==e.type),f=e=>"scalar"===e.kind?"JSON"===e.name:f(e.item),p=(l,y,c)=>{let v;if(void 0!==(v=void 0===l.$ref?void 0:r(l.$ref))&&u.has(v))return{type:a,localized:!0};if(l.tsType)return s;if(l.$ref){var g=l.$ref;if("DomainEntityId"===n(g))return{type:o};let e=t(g),r=void 0===e||c.has(e)?void 0:y(g);return void 0!==e&&r?p(r,y,new Set([...c,e])):s}if(l.anyOf||l.oneOf)return((e,n,t)=>{let l=d(e).map(e=>p(e,n,t)),[r]=l;if(1===l.length&&r)return r;let i=l.flatMap(({type:e,enumValues:n})=>e===a&&n?[n]:[]);if(l.length<2||i.length!==l.length||e.anyOf&&e.oneOf)return s;let o=i.flatMap(e=>[...new Set(e)]);return{type:a,enumValues:e.oneOf?o.filter(e=>o.indexOf(e)===o.lastIndexOf(e)):[...new Set(o)]}})(l,y,c);if(l.enum){let e;return(e=l.enum.filter(e=>null!==e)).every(e=>"string"==typeof e)?{type:a,enumValues:e}:s}if(e(l.type)){let e=l.type.filter(e=>"null"!==e),[n]=e;return 1===e.length&&n?p({...l,type:n},y,c):s}if("array"===l.type){var S=l.items;if(!S||e(S))return s;let n=m(S,y,c);return f(n.type)?s:{type:{kind:"list",item:n.type,nonNull:!1},enumValues:n.enumValues,localized:n.localized}}let h="string"==typeof l.type?i[l.type]:void 0;return h?{type:h}:s},m=(e,n,t)=>{let r=p(e,n,t);return{...r,type:{...r.type,nonNull:!l(e,n)}}},y=e=>{let n=d(e);return e.$ref??(1===n.length?n[0]?.$ref:void 0)},c=(e,n,l)=>{let r=t(e),i=void 0===r||l.has(r)?void 0:n(e);if(void 0===r||!i)return;let a=y(i);return void 0===i.description&&a?c(a,n,new Set([...l,r])):i.description};export const resolveAssistantFieldType=(e,n)=>{let t=y(e),l=void 0===e.description&&t?c(t,n,new Set):e.description;return{...m(e,n,new Set),...void 0===l?{}:{description:l}}};
@@ -1,48 +1,31 @@
1
- import type { AssistantFieldOptions, AssistantFieldSource, AssistantRecipeGroup } from '#package/domain';
1
+ import { type AssistantFieldSource, type AssistantManifest, type AssistantRecipeGroup, type AssistantResolvedManifest, type AssistantStates } from '#package/domain';
2
2
  import type { ParseContext, PhoenixDefinitions } from '../../../../core/index.js';
3
3
  import { type RawAssistant } from '../../../raw-spec/index.js';
4
4
  import type { Components } from '../../components/index.js';
5
5
  import type { Expressions } from '../../expressions/index.js';
6
- import type { EntityTypeName, ModelVersion } from '../../model/index.js';
6
+ import type { ModelVersion } from '../../model/index.js';
7
+ import type { Actions } from '../actions.js';
7
8
  /**
8
9
  * The field sources of every entity object type: GraphQL object type name → GraphQL field name →
9
10
  * its {@link AssistantFieldSource}. Only entity object types appear, since values always resolve on
10
11
  * a concrete type; `id` and `type` are implicit and never listed.
11
12
  */
12
13
  export type AssistantFieldSources = Readonly<Record<string, Readonly<Record<string, AssistantFieldSource>>>>;
13
- /**
14
- * The stored property each delta field of a `modify<Type>` mutation writes: entity type → delta
15
- * field name → shape property. Only entity types with at least one writable field appear, aliases
16
- * expanded to their members.
17
- */
18
- export type AssistantWritableFields = Readonly<Record<string, Readonly<Record<string, string>>>>;
19
14
  /**
20
15
  * The recipe groups of one kind per entity type, in manifest
21
16
  * order. Only entity types with at least one group appear, aliases expanded to their members.
22
17
  */
23
18
  export type AssistantRecipeGroups = Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
24
- /**
25
- * The options edges `meta` exposes per entity type, which are also the choices `modify<Type>` checks
26
- * a written value against, in manifest order. Only entity types with at least one edge appear,
27
- * aliases expanded to their members.
28
- */
29
- export type AssistantFieldOptionsByType = Readonly<Record<string, readonly AssistantFieldOptions[]>>;
30
19
  /**
31
20
  * The printed assistant GraphQL schema, the field sources its runtime resolvers read through, the
32
21
  * entity types `deleteEntity` may delete, the fields the `modify<Type>` mutations may write, the
33
- * recipe groups `addChild` may add from, the ones `replaceEntity` may replace by and the options edges
34
- * of writable fields, aliases expanded,
22
+ * recipe groups `addChild` may add from, the ones `replaceEntity` may replace by, the options edges
23
+ * of writable fields, aliases expanded, and the actions the custom mutations run,
35
24
  * so the runtime checks the same sets the schema describes.
36
25
  */
37
- export interface AssistantSchema {
38
- readonly sdl: string;
39
- readonly fields: AssistantFieldSources;
40
- readonly deletableTypes: readonly EntityTypeName[];
41
- readonly writableFields: AssistantWritableFields;
42
- readonly childRecipes: AssistantRecipeGroups;
43
- readonly replaceRecipes: AssistantRecipeGroups;
44
- readonly fieldOptions: AssistantFieldOptionsByType;
45
- }
26
+ export type AssistantSchema = Required<AssistantManifest> & {
27
+ readonly resolved: AssistantResolvedManifest;
28
+ };
46
29
  /** What the assistant schema is built from, besides the manifest. */
47
30
  export interface AssistantSchemaInput {
48
31
  readonly model: ModelVersion;
@@ -53,18 +36,10 @@ export interface AssistantSchemaInput {
53
36
  readonly expressions: Expressions;
54
37
  /** The parsed components, whose instances recipe group entries and the `options` of writable fields name. */
55
38
  readonly components: Components;
39
+ /** The declared actions, which `actions` manifest entries expose as custom mutations. */
40
+ readonly actions: Actions;
56
41
  }
57
- /** The declared UI state values: each non-empty kind becomes a `Navigation` field listing its values. */
58
- export interface AssistantStates {
59
- readonly navigationStates: readonly string[];
60
- readonly viewStates: readonly string[];
61
- readonly toolStates: readonly string[];
62
- }
63
- /**
64
- * Builds the assistant GraphQL schema from the manifest whitelist, the latest model and the
65
- * configurator states: aliases become interfaces implementing `AnyDomainEntity`, entity types become
66
- * object types implementing every alias that contains them, and `Query` exposes the root, entities,
67
- * selection and navigation entry points. Returns `undefined` after reporting diagnostics when the
68
- * manifest does not fit the model or the generated schema is not valid GraphQL.
69
- */
70
- export declare const createAssistantSchema: (manifest: RawAssistant, { model, states, phxDefinitions, expressions, components }: AssistantSchemaInput, ctx: ParseContext) => AssistantSchema | undefined;
42
+ /** Resolves the whitelist against parse-time models, keeping only JSON data needed to build its schema. */
43
+ export declare const resolveAssistantManifest: (manifest: RawAssistant, { model, states, phxDefinitions, expressions, components, actions }: AssistantSchemaInput, ctx: ParseContext) => AssistantResolvedManifest | undefined;
44
+ /** Builds at parse time as well, translating GraphQL construction failures into the existing diagnostic. */
45
+ export declare const createAssistantSchema: (manifest: RawAssistant, input: AssistantSchemaInput, ctx: ParseContext) => AssistantSchema | undefined;