@salsita-ai/sdk 0.50.0-develop.c33986dc44 → 0.50.0-develop.c402728d10

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 (558) hide show
  1. package/README.md +5 -1
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/legacy-admin/Application.js +1 -1
  4. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  5. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  6. package/dist/application-spec/core/index.d.ts +1 -3
  7. package/dist/application-spec/core/index.js +1 -1
  8. package/dist/application-spec/core/json-schema.d.ts +2 -52
  9. package/dist/application-spec/core/markers/index.d.ts +1 -1
  10. package/dist/application-spec/core/markers/index.js +1 -1
  11. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  12. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  13. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  14. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  15. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  16. package/dist/application-spec/errors/diagnostic-codes.d.ts +8 -1
  17. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  18. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  19. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  20. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  21. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  22. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  24. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  25. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +1 -1
  27. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  29. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +1 -1
  30. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +1 -2
  31. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +1 -2
  32. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +1 -2
  33. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +1 -1
  34. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
  35. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -2
  36. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
  37. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
  38. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
  39. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +1 -2
  40. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  41. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  42. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +1 -1
  43. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +1 -2
  44. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +1 -2
  45. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +1 -2
  47. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  48. package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
  49. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +1 -1
  50. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  51. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +96 -31
  52. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +1 -1
  53. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  54. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  55. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  56. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  57. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  58. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  59. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  60. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  61. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  62. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  63. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  64. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  65. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  66. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  67. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  68. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  69. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  70. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  71. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  72. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  73. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  74. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  76. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  77. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  78. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  79. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  80. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  81. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  82. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  83. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  84. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  85. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  86. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  87. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  88. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  89. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  90. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  91. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  92. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  93. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  94. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  95. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  96. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  97. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  98. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  99. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  100. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  101. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  102. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  103. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  104. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  105. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  106. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  108. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  109. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  110. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  111. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  112. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  113. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  114. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  115. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  116. package/dist/client/authorized-client.d.ts +3 -1
  117. package/dist/client/authorized-client.js +1 -1
  118. package/dist/client/contract.d.ts +30 -1
  119. package/dist/client/contract.js +1 -1
  120. package/dist/client/index.d.ts +1 -1
  121. package/dist/client/local-authorized-client.d.ts +3 -1
  122. package/dist/client/local-authorized-client.js +1 -1
  123. package/dist/client/memory-authorized-client.d.ts +4 -1
  124. package/dist/client/memory-authorized-client.js +1 -1
  125. package/dist/client/phoenix-api.d.ts +259 -1
  126. package/dist/configurator/ConfiguratorApp.js +1 -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 +64 -6
  129. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  130. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  131. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  132. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  133. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  134. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -9
  135. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  136. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  138. package/dist/configurator/common/configurator-interface.d.ts +2 -2
  139. package/dist/configurator/common/configurator-interface.js +1 -1
  140. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  141. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  142. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  143. package/dist/configurator/configurator-context/index.d.ts +0 -5
  144. package/dist/configurator/configurator-context/index.js +1 -1
  145. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  146. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  147. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  148. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  149. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  150. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  151. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  152. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  153. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  154. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  155. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  156. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  157. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  158. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  159. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  160. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  161. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  162. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  163. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  164. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  165. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  166. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  167. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  168. package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
  169. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  170. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  171. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  172. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  173. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  174. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  175. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  176. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  177. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  178. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  179. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  180. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  181. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  182. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  183. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  184. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  185. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  186. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  187. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  188. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  189. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  190. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  191. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  192. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  193. package/dist/docs/index.json +1 -1
  194. package/dist/docs/phoenix/configurator-interface.mdx +1 -1
  195. package/dist/docs/phoenix/domain-model.mdx +4 -1
  196. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  197. package/dist/docs/phoenix/migration-guide.mdx +3 -3
  198. package/dist/docs/phoenix/phoenix-cli.mdx +40 -7
  199. package/dist/docs/phoenix/project-structure.mdx +23 -19
  200. package/dist/docs/phoenix/sdk-builder-workflow.mdx +2 -2
  201. package/dist/docs/phoenix/webhooks.mdx +9 -1
  202. package/dist/domain/application/application-config.d.ts +6 -24
  203. package/dist/domain/application/assistant/assistant-manifest.d.ts +13 -3
  204. package/dist/domain/application/assistant/assistant-manifest.js +1 -1
  205. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +5 -9
  206. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  207. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  208. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  209. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  210. package/dist/domain/application/assistant/index.d.ts +3 -3
  211. package/dist/domain/application/assistant/index.js +1 -1
  212. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  213. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -4
  214. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  215. package/dist/domain/application/assistant-mutations.js +1 -1
  216. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  217. package/dist/domain/available-system-components/available-system-components.js +1 -0
  218. package/dist/domain/available-system-components/index.d.ts +1 -0
  219. package/dist/domain/available-system-components/index.js +1 -0
  220. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  221. package/dist/domain/domain-builder/domain-builder.js +1 -0
  222. package/dist/domain/domain-builder/index.d.ts +1 -0
  223. package/dist/domain/domain-builder/index.js +1 -0
  224. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  225. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  226. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  227. package/dist/domain/extensions/export-images/index.js +1 -1
  228. package/dist/domain/extensions/index.d.ts +1 -1
  229. package/dist/domain/extensions/index.js +1 -1
  230. package/dist/domain/index.d.ts +3 -2
  231. package/dist/domain/index.js +1 -1
  232. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  233. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  234. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  235. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  236. package/dist/domain/spec/application/configurator-states.js +1 -0
  237. package/dist/domain/spec/application/index.d.ts +5 -0
  238. package/dist/domain/spec/application/index.js +1 -0
  239. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  240. package/dist/domain/spec/components/bindings/index.js +1 -0
  241. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  242. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  243. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  244. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  245. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  246. package/dist/domain/spec/components/component-entry.js +1 -0
  247. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  248. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  249. package/dist/domain/spec/components/component-filters.js +1 -0
  250. package/dist/domain/spec/components/components.d.ts +4 -0
  251. package/dist/domain/spec/components/components.js +1 -0
  252. package/dist/domain/spec/components/index.d.ts +6 -0
  253. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  254. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  255. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  256. package/dist/domain/spec/enhanced-json/index.js +1 -0
  257. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  258. package/dist/domain/spec/expressions/expression.js +1 -0
  259. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  260. package/dist/domain/spec/expressions/expressions.js +1 -0
  261. package/dist/domain/spec/expressions/index.d.ts +5 -0
  262. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  263. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  264. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  265. package/dist/domain/spec/index.d.ts +9 -0
  266. package/dist/domain/spec/index.js +1 -0
  267. package/dist/domain/spec/invariants/index.d.ts +2 -0
  268. package/dist/domain/spec/invariants/index.js +1 -0
  269. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  270. package/dist/domain/spec/invariants/invariant.js +1 -0
  271. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  272. package/dist/domain/spec/invariants/invariants.js +1 -0
  273. package/dist/domain/spec/json-schema.d.ts +52 -0
  274. package/dist/domain/spec/json-schema.js +1 -0
  275. package/dist/domain/spec/markers/index.d.ts +3 -0
  276. package/dist/domain/spec/markers/index.js +1 -0
  277. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  278. package/dist/domain/spec/markers/msg-marker.js +1 -0
  279. package/dist/domain/spec/model/aliases.d.ts +9 -0
  280. package/dist/domain/spec/model/aliases.js +1 -0
  281. package/dist/domain/spec/model/common-types.d.ts +15 -0
  282. package/dist/domain/spec/model/common-types.js +1 -0
  283. package/dist/domain/spec/model/defaults.d.ts +33 -0
  284. package/dist/domain/spec/model/defaults.js +1 -0
  285. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  286. package/dist/domain/spec/model/entity-types.js +1 -0
  287. package/dist/domain/spec/model/index.d.ts +7 -0
  288. package/dist/domain/spec/model/index.js +1 -0
  289. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  290. package/dist/domain/spec/model/model-version-key.js +1 -0
  291. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  292. package/dist/domain/spec/model/names/action-name.js +1 -0
  293. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  294. package/dist/domain/spec/model/names/alias-name.js +1 -0
  295. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  296. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  297. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  298. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  299. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  300. package/dist/domain/spec/model/names/expression-name.js +1 -0
  301. package/dist/domain/spec/model/names/index.d.ts +9 -0
  302. package/dist/domain/spec/model/names/index.js +1 -0
  303. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  304. package/dist/domain/spec/model/names/instance-name.js +1 -0
  305. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  306. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  307. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  308. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  309. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  310. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  311. package/dist/domain/spec/model/presets.d.ts +30 -0
  312. package/dist/domain/spec/model/presets.js +1 -0
  313. package/dist/domain/spec/sections/actions.d.ts +23 -0
  314. package/dist/domain/spec/sections/actions.js +1 -0
  315. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  316. package/dist/domain/spec/sections/app-metadata.js +1 -0
  317. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  318. package/dist/domain/spec/sections/application-version.js +1 -0
  319. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  320. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  321. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  322. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  323. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  324. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  325. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  326. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  327. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  328. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  329. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  330. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  331. package/dist/domain/spec/sections/index.d.ts +9 -0
  332. package/dist/domain/spec/sections/index.js +1 -0
  333. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  334. package/dist/domain/spec/sections/infra/acl.js +1 -0
  335. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  336. package/dist/domain/spec/sections/infra/index.js +1 -0
  337. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  338. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  339. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  340. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  341. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  342. package/dist/domain/spec/sections/state-value.js +1 -0
  343. package/dist/domain/spec/sections/theme.d.ts +10 -0
  344. package/dist/domain/spec/sections/theme.js +1 -0
  345. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  346. package/dist/domain/spec/sections/transformers.js +1 -0
  347. package/dist/domain/spec/sections/ui.d.ts +12 -0
  348. package/dist/domain/spec/sections/ui.js +1 -0
  349. package/dist/domain/system-definitions.js +1 -1
  350. package/dist/domain/utils/index.d.ts +2 -0
  351. package/dist/domain/utils/index.js +1 -0
  352. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  353. package/dist/i18n/locales/cs/messages.js +1 -1
  354. package/dist/i18n/locales/da/messages.js +1 -1
  355. package/dist/i18n/locales/de/messages.js +1 -1
  356. package/dist/i18n/locales/de-AT/messages.js +1 -1
  357. package/dist/i18n/locales/en/messages.js +1 -1
  358. package/dist/i18n/locales/en-AU/messages.js +1 -1
  359. package/dist/i18n/locales/en-GB/messages.js +1 -1
  360. package/dist/i18n/locales/es/messages.js +1 -1
  361. package/dist/i18n/locales/fr/messages.js +1 -1
  362. package/dist/i18n/locales/hu/messages.js +1 -1
  363. package/dist/i18n/locales/it/messages.js +1 -1
  364. package/dist/i18n/locales/nl/messages.js +1 -1
  365. package/dist/i18n/locales/pl/messages.js +1 -1
  366. package/dist/i18n/locales/pt/messages.js +1 -1
  367. package/dist/i18n/locales/ro/messages.js +1 -1
  368. package/dist/i18n/locales/sk/messages.js +1 -1
  369. package/dist/i18n/locales/tr/messages.js +1 -1
  370. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  371. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  372. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  373. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  374. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  375. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  376. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  377. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  378. package/dist/phoenix/application-spec/index.d.ts +1 -0
  379. package/dist/phoenix/application-spec/index.js +1 -1
  380. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  381. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  382. package/dist/phoenix/bin.js +1 -1
  383. package/dist/phoenix/cli.js +1 -1
  384. package/dist/phoenix/commands/activate-deployment.js +1 -1
  385. package/dist/phoenix/commands/build.js +1 -1
  386. package/dist/phoenix/commands/changelog.js +1 -1
  387. package/dist/phoenix/commands/check.js +1 -1
  388. package/dist/phoenix/commands/clean.js +1 -1
  389. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  390. package/dist/phoenix/commands/create-environment.js +1 -1
  391. package/dist/phoenix/commands/data.js +1 -1
  392. package/dist/phoenix/commands/deploy.js +1 -1
  393. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  394. package/dist/phoenix/commands/dev.js +4 -5
  395. package/dist/phoenix/commands/docs.js +1 -1
  396. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  397. package/dist/phoenix/commands/fix.js +1 -1
  398. package/dist/phoenix/commands/index.d.ts +1 -1
  399. package/dist/phoenix/commands/index.js +1 -1
  400. package/dist/phoenix/commands/inspect-assets.js +1 -1
  401. package/dist/phoenix/commands/list-environments.js +1 -1
  402. package/dist/phoenix/commands/login.d.ts +4 -1
  403. package/dist/phoenix/commands/login.js +2 -2
  404. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  405. package/dist/phoenix/commands/register-deployment.js +1 -1
  406. package/dist/phoenix/commands/scene.js +1 -1
  407. package/dist/phoenix/commands/screenshot.js +1 -1
  408. package/dist/phoenix/commands/state.js +1 -1
  409. package/dist/phoenix/commands/story-build.js +3 -3
  410. package/dist/phoenix/commands/story-create.js +1 -1
  411. package/dist/phoenix/commands/story-dev.js +2 -2
  412. package/dist/phoenix/commands/sync.js +1 -1
  413. package/dist/phoenix/commands/variants.js +1 -1
  414. package/dist/phoenix/editor-server/commands-router.js +1 -1
  415. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  416. package/dist/phoenix/editor-server/editor-server.js +1 -1
  417. package/dist/phoenix/editor-server/spec-router.js +1 -1
  418. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  419. package/dist/phoenix/lingui/index.d.ts +1 -0
  420. package/dist/phoenix/lingui/index.js +1 -0
  421. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  422. package/dist/phoenix/lingui/lingui.js +1 -0
  423. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  424. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  425. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  426. package/dist/phoenix/services/cli-credentials.js +1 -1
  427. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  428. package/dist/phoenix/services/cli-exit.js +1 -0
  429. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  430. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  431. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  432. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  433. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  434. package/dist/phoenix/services/deployment/index.js +1 -0
  435. package/dist/phoenix/services/index.d.ts +5 -1
  436. package/dist/phoenix/services/index.js +1 -1
  437. package/dist/phoenix/services/lingui-watcher.js +1 -1
  438. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  439. package/dist/phoenix/services/phoenix-store.js +1 -1
  440. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  441. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  442. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  443. package/dist/phoenix/services/session/index.d.ts +2 -0
  444. package/dist/phoenix/services/session/index.js +1 -0
  445. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  446. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  447. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  448. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  449. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  450. package/dist/phoenix/services/telemetry/index.js +1 -0
  451. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  452. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  453. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  454. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  455. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  456. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  457. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  458. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  459. package/dist/phoenix/services/vite-config.js +1 -1
  460. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  461. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  462. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  463. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  464. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  465. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  466. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  467. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  468. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  469. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  470. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  471. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  472. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  473. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  474. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  475. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  476. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  477. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  478. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  479. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  480. package/dist/react-sdk/domain-application-context/index.js +1 -1
  481. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  482. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  483. package/dist/react-sdk/index.d.ts +5 -0
  484. package/dist/react-sdk/index.js +1 -1
  485. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  486. package/dist/react-sdk/integration/index.d.ts +1 -0
  487. package/dist/react-sdk/integration/index.js +1 -0
  488. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  489. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  490. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  491. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  492. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  493. package/dist/react-sdk/notifications/index.d.ts +1 -0
  494. package/dist/react-sdk/notifications/index.js +1 -0
  495. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  496. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  497. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  498. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  499. package/dist/react-sdk/preset-selection/index.js +1 -0
  500. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  501. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  502. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  503. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  504. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  505. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  506. package/dist/ui-sdk/icons/__generated/index.d.ts +2 -0
  507. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  508. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  509. package/dist/ui-sdk/theme/types.d.ts +1 -1
  510. package/dist/watch/glob-matcher.d.ts +4 -4
  511. package/dist/watch/glob-matcher.js +1 -1
  512. package/dist/watch/watch.d.ts +4 -4
  513. package/dist/watch/watch.js +1 -1
  514. package/package.json +3 -3
  515. package/schema/domain-spec.json +22 -4
  516. package/dist/application-spec/core/components/index.d.ts +0 -2
  517. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  518. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  519. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  520. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  521. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  522. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  523. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  524. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  525. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  526. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  527. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  528. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  529. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  530. package/dist/domain/available-system-components.d.ts +0 -11
  531. package/dist/domain/available-system-components.js +0 -1
  532. package/dist/domain/domain-builder.js +0 -1
  533. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  534. package/dist/phoenix/services/lingui.d.ts +0 -15
  535. package/dist/phoenix/services/lingui.js +0 -1
  536. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  537. package/dist/phoenix/services/phoenix-application.js +0 -1
  538. /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
  539. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  540. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  541. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  542. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  543. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  544. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  545. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  546. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  547. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  548. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  549. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  550. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  551. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  552. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  553. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  554. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  555. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  556. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  557. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  558. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1 +1 @@
1
- import{z as e}from"zod";import{DomainEntityIdSchema as t,systemUpdateFactory as i}from"../core/index.js";import{findAssistantFieldOptions as n,readAssistantFieldOptions as r}from"./assistant-field-options.js";import{assistantAddedEntityIds as o,findAssistantRecipeGroups as a,prepareAssistantRecipeUpdates as s,readAssistantRecipeGroup as d}from"./assistant-recipe-groups.js";export const deleteEntityUpdateTag="deleteEntity";export const modifyEntityUpdateTag="modifyEntity";let l=({action:e,resolveLocalizable:t})=>({componentReader:e.systems.componentReader,recipeCooker:e.systems.recipeCooker,resolveLocalizable:t}),p=e.string().regex(new RegExp(t.pattern),'An entity id is the type name, a dash and a number, e.g. "Root-1". Query the current entities and use an id they return.'),h=e.object({id:p}),y=e.object({id:p,delta:e.record(e.unknown())}),c="modify",f=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],u=e=>Array.isArray(e)?e.map(u):"object"!=typeof e||null===e||Array.isArray(e)?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,u(t)])),m=e.object({parentId:p,recipeGroupId:e.string(),recipeKey:e.string()}),g=e.object({entityId:p,recipeGroupId:e.string(),recipeKey:e.string()}),$=e=>e.map(e=>`"${e}"`).join(", "),w=[{name:"deleteEntity",implementation:(e,t,{manifest:n})=>{let{id:r}=h.parse(e),o=t.entities.find(e=>e.id===r);if(!o)throw Error(`Entity "${r}" does not exist, so it cannot be deleted. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);let a=n.deletableTypes??[];if(!a.includes(o.type))throw Error(`Entity "${r}" is a ${o.type}, which is not deletable. ${a.length>0?`Only entities of these types can be deleted: ${a.join(", ")}.`:"No entity type is deletable."} Delete an entity of a deletable type instead.`);return{updates:[i.EntityDeletion({entityId:o.id,updateTag:"deleteEntity"})],readResult:({previousState:e,state:t})=>{var i;let n;return[o.id,...(i=o.id,n=new Set(t.entities.map(e=>e.id)),e.entities.map(e=>e.id).filter(e=>e!==i&&!n.has(e)))]}}}},{name:"addChild",implementation:(e,t,i)=>{let{parentId:n,recipeGroupId:r,recipeKey:p}=m.parse(e),h=t.entities.find(e=>e.id===n);if(!h)throw Error(`Entity "${n}" does not exist, so nothing can be added to it. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);let y=a(i.manifest,"child",h.type),c=y.find(e=>e.groupId===r);if(!c)throw Error(`Entity "${n}" is a ${h.type}, which has no recipe group "${r}". ${y.length>0?`Its recipe groups are: ${$(y.map(({groupId:e})=>e))}.`:`Nothing can be added to a ${h.type}.`} Query "meta { childRecipes { groupId } }" on the entity you want to add to and use a groupId it returns.`);let f=l(i),u=d("child",c,h.id,t,f);if(!u)throw Error(`The recipe group "${r}" is not available on "${n}" right now, so nothing can be added from it. The configurator offers a group only in some states of the configuration. Query "meta { childRecipes { groupId } }" on "${n}" to see the groups it offers now.`);let g=u.recipes.find(e=>e.key===p);if(!g)throw Error(`The recipe group "${r}" on "${n}" has no recipe with the key "${p}". Recipes and their keys change with the configuration and with the language. List the recipes of the group again and use a key it returns.`);let w=s(g,u,h.id,t,f);return{updates:w,readResult:e=>o(w,h.id,e).map(t=>i.action.systems.domain.get$Entity(t,e.state))}}},{name:"replaceEntity",implementation:(e,t,i)=>{let{entityId:n,recipeGroupId:r,recipeKey:p}=g.parse(e),h=t.entities.find(e=>e.id===n);if(!h)throw Error(`Entity "${n}" does not exist, so it cannot be replaced. It may have been deleted or replaced by an earlier operation or field; a replaced entity gets a new id. Query the current entities and use an id they return.`);let y=a(i.manifest,"replace",h.type),c=y.find(e=>e.groupId===r);if(!c)throw Error(`Entity "${n}" is a ${h.type}, which has no replace recipe group "${r}". ${y.length>0?`Its replace recipe groups are: ${$(y.map(({groupId:e})=>e))}.`:`A ${h.type} cannot be replaced.`} Query "meta { replaceRecipes { groupId } }" on the entity you want to replace and use a groupId it returns.`);let f=l(i),u=d("replace",c,h.id,t,f);if(!u)throw Error(`The recipe group "${r}" is not available on "${n}" right now, so it cannot be replaced from it. The configurator offers a group only in some states of the configuration. Query "meta { replaceRecipes { groupId } }" on "${n}" to see the groups it offers now.`);let m=u.recipes.find(e=>e.key===p);if(!m)throw Error(`The recipe group "${r}" on "${n}" has no recipe with the key "${p}". Recipes and their keys change with the configuration and with the language. List the recipes of the group again and use a key it returns.`);let w=s(m,u,h.id,t,f);return{updates:w,readResult:e=>o(w,h.id,e).map(t=>i.action.systems.domain.get$Entity(t,e.state))}}}];export const findAssistantMutation=(e,t)=>{let o,a,s=w.find(t=>t.name===e),d=f(t.actions??{},e);if(s)return s;if(void 0!==d)return{name:e,implementation:(e,t,{action:i})=>i.systems.actionSystem.prepareAction(d,u(e),t)};if(!e.startsWith(c))return;let p=e.slice(c.length),h=f(t.writableFields??{},p);return h&&(o=`${c}${p}`,a=Object.keys(h).join(", "),{name:o,implementation:(e,t,s)=>{let{manifest:d}=s,{domain:m}=s.action.systems,{id:g,delta:$}=y.parse(e),w=t.entities.find(e=>e.id===g);if(!w)throw Error(`Entity "${g}" does not exist, so it cannot be modified. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);if(w.type!==p)throw Error(`Entity "${g}" is a ${w.type}, but ${o} modifies only ${p} entities. ${f(d.writableFields??{},w.type)?`Use ${c}${w.type} for it instead.`:`${w.type} has no writable fields, so it cannot be modified; pass the id of a ${p}.`}`);let b=Object.entries($).flatMap(([e,t])=>{let i=f(h,e);return void 0===i?[]:[{field:e,property:i,value:u(t)}]}),E=Object.fromEntries(b.map(({property:e,value:t})=>[e,t]));if(0===Object.keys(E).length)throw Error(`The delta of ${o} is empty, so there is nothing to change on "${g}". Set at least one of its fields: ${a}.`);let v=m.validateEntity({...w,...E});if(!v.success){let e=b.filter(({field:e,property:t})=>e!==t).map(({field:e,property:t})=>`${e} refers to ${t}`);throw Error(`The delta would make "${g}" an invalid ${p}: ${v.errors.join("; ")}. ${e.length>0?`The messages use these field names: ${e.join(", ")}. `:""}Nothing was changed. Send values that fit the types and the allowed values the schema describes for these fields.`)}let j=n(d,p);for(let{field:e,value:i}of b){let n=j.find(t=>t.field===e);if(!n?.validate||null===i)continue;let o=r(n,w.id,t,l(s));if(o&&!o.some(e=>e.value===i))throw Error(`${JSON.stringify(i)} is not a value "${e}" of "${g}" can take right now. ${o.length>0?`The configurator offers these values: ${o.map(e=>JSON.stringify(e.value)).join(", ")}.`:"The configurator offers no value for it in this state."} Nothing was changed. Send one of the offered values; "meta { ${n.edgeName} }" on the entity lists them with their names. When the values depend on another field of this delta, change that field in an earlier mutation field of the same operation.`)}return{updates:[i.DomainEntityModification({entityId:w.id,stateDelta:E,updateTag:"modifyEntity"})],readResult:({state:e})=>m.getEntity(w.id,e)?m.get$Entity(w.id,e):null}}})};
1
+ import{z as e}from"zod";import{DomainEntityIdSchema as t,systemUpdateFactory as i}from"../core/index.js";import{findAssistantFieldOptions as n,readAssistantFieldOptions as r}from"./assistant-field-options.js";import{assistantAddedEntityIds as o,findAssistantRecipeGroups as a,prepareAssistantRecipeUpdates as s,readAssistantRecipeGroup as d}from"./assistant-recipe-groups.js";export const deleteEntityUpdateTag="deleteEntity";export const modifyEntityUpdateTag="modifyEntity";let l=({action:e,resolveLocalizable:t})=>({componentReader:e.systems.componentReader,recipeCooker:e.systems.recipeCooker,resolveLocalizable:t}),p=e.string().regex(new RegExp(t.pattern),'An entity id is the type name, a dash and a number, e.g. "Root-1". Query the current entities and use an id they return.'),h=e.object({id:p}),u=e.object({id:p,delta:e.record(e.unknown())}),f="modify",y=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],c=e=>Array.isArray(e)?e.map(c):"object"!=typeof e||null===e||Array.isArray(e)?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,c(t)])),m=e.object({parentId:p,recipeGroupId:e.string(),recipeKey:e.string()}),g=e.object({entityId:p,recipeGroupId:e.string(),recipeKey:e.string()}),$=e=>e.map(e=>`"${e}"`).join(", "),w=[{name:"deleteEntity",implementation:(e,t,{manifest:n})=>{let{id:r}=h.parse(e),o=t.entities.find(e=>e.id===r);if(!o)throw Error(`Entity "${r}" does not exist, so it cannot be deleted. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);let a=n.deletableTypes??[];if(!a.includes(o.type))throw Error(`Entity "${r}" is a ${o.type}, which is not deletable. ${a.length>0?`Only entities of these types can be deleted: ${a.join(", ")}.`:"No entity type is deletable."} Delete an entity of a deletable type instead.`);return{updates:[i.EntityDeletion({entityId:o.id,updateTag:"deleteEntity"})],readResult:({previousState:e,state:t})=>{var i;let n;return[o.id,...(i=o.id,n=new Set(t.entities.map(e=>e.id)),e.entities.map(e=>e.id).filter(e=>e!==i&&!n.has(e)))]}}}},{name:"addChild",implementation:(e,t,i)=>{let{parentId:n,recipeGroupId:r,recipeKey:p}=m.parse(e),h=t.entities.find(e=>e.id===n);if(!h)throw Error(`Entity "${n}" does not exist, so nothing can be added to it. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);let u=a(i.manifest,"child",h.type),f=u.find(e=>e.groupId===r);if(!f)throw Error(`Entity "${n}" is a ${h.type}, which has no recipe group "${r}". ${u.length>0?`Its recipe groups are: ${$(u.map(({groupId:e})=>e))}.`:`Nothing can be added to a ${h.type}.`} Query the groups under "meta { childRecipes }" on the entity you want to add to and use a groupId they return.`);let y=l(i),c=d("child",f,h.id,t,y);if(!c)throw Error(`The recipe group "${r}" is not available on "${n}" right now, so nothing can be added from it. The configurator offers a group only in some states of the configuration. Query the groups under "meta { childRecipes }" on "${n}" to see the ones it offers now; a group it does not offer is null.`);let g=c.recipes.find(e=>e.key===p);if(!g)throw Error(`The recipe group "${r}" on "${n}" has no recipe with the key "${p}". Recipes and their keys change with the configuration and with the language. List the recipes of the group again and use a key it returns.`);let w=s(g,c,h.id,t,y);return{updates:w,readResult:e=>o(w,h.id,e).map(t=>i.action.systems.domain.get$Entity(t,e.state))}}},{name:"replaceEntity",implementation:(e,t,i)=>{let{entityId:n,recipeGroupId:r,recipeKey:p}=g.parse(e),h=t.entities.find(e=>e.id===n);if(!h)throw Error(`Entity "${n}" does not exist, so it cannot be replaced. It may have been deleted or replaced by an earlier operation or field; a replaced entity gets a new id. Query the current entities and use an id they return.`);let u=a(i.manifest,"replace",h.type),f=u.find(e=>e.groupId===r);if(!f)throw Error(`Entity "${n}" is a ${h.type}, which has no replace recipe group "${r}". ${u.length>0?`Its replace recipe groups are: ${$(u.map(({groupId:e})=>e))}.`:`A ${h.type} cannot be replaced.`} Query the groups under "meta { replaceRecipes }" on the entity you want to replace and use a groupId they return.`);let y=l(i),c=d("replace",f,h.id,t,y);if(!c)throw Error(`The recipe group "${r}" is not available on "${n}" right now, so it cannot be replaced from it. The configurator offers a group only in some states of the configuration. Query the groups under "meta { replaceRecipes }" on "${n}" to see the ones it offers now; a group it does not offer is null.`);let m=c.recipes.find(e=>e.key===p);if(!m)throw Error(`The recipe group "${r}" on "${n}" has no recipe with the key "${p}". Recipes and their keys change with the configuration and with the language. List the recipes of the group again and use a key it returns.`);let w=s(m,c,h.id,t,y);return{updates:w,readResult:e=>o(w,h.id,e).map(t=>i.action.systems.domain.get$Entity(t,e.state))}}}];export const findAssistantMutation=(e,t)=>{let o,a,s=w.find(t=>t.name===e),d=y(t.actions??{},e);if(s)return s;if(void 0!==d)return{name:e,implementation:(e,t,{action:i})=>i.systems.actionSystem.prepareAction(d,c(e),t)};if(!e.startsWith(f))return;let p=e.slice(f.length),h=y(t.writableFields??{},p);return h&&(o=`${f}${p}`,a=Object.keys(h).join(", "),{name:o,implementation:(e,t,s)=>{let{manifest:d}=s,{domain:m}=s.action.systems,{id:g,delta:$}=u.parse(e),w=t.entities.find(e=>e.id===g);if(!w)throw Error(`Entity "${g}" does not exist, so it cannot be modified. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);if(w.type!==p)throw Error(`Entity "${g}" is a ${w.type}, but ${o} modifies only ${p} entities. ${y(d.writableFields??{},w.type)?`Use ${f}${w.type} for it instead.`:`${w.type} has no writable fields, so it cannot be modified; pass the id of a ${p}.`}`);let b=Object.entries($).flatMap(([e,t])=>{let i=y(h,e);return void 0===i?[]:[{field:e,property:i,value:c(t)}]}),E=Object.fromEntries(b.map(({property:e,value:t})=>[e,t]));if(0===Object.keys(E).length)throw Error(`The delta of ${o} is empty, so there is nothing to change on "${g}". Set at least one of its fields: ${a}.`);let v=m.validateEntity({...w,...E});if(!v.success){let e=b.filter(({field:e,property:t})=>e!==t).map(({field:e,property:t})=>`${e} refers to ${t}`);throw Error(`The delta would make "${g}" an invalid ${p}: ${v.errors.join("; ")}. ${e.length>0?`The messages use these field names: ${e.join(", ")}. `:""}Nothing was changed. Send values that fit the types and the allowed values the schema describes for these fields.`)}let j=n(d,p);for(let{field:e,value:i}of b){let n=j.find(t=>t.field===e);if(!n?.validate||null===i)continue;let o=r(n,w.id,t,l(s));if(o&&!o.some(e=>e.value===i))throw Error(`${JSON.stringify(i)} is not a value "${e}" of "${g}" can take right now. ${o.length>0?`The configurator offers these values: ${o.map(e=>JSON.stringify(e.value)).join(", ")}.`:"The configurator offers no value for it in this state."} Nothing was changed. Send one of the offered values; "meta { ${n.edgeName} }" on the entity lists them with their names. When the values depend on another field of this delta, change that field in an earlier mutation field of the same operation.`)}return{updates:[i.DomainEntityModification({entityId:w.id,stateDelta:E,updateTag:"modifyEntity"})],readResult:({state:e})=>m.getEntity(w.id,e)?m.get$Entity(w.id,e):null}}})};
@@ -0,0 +1,11 @@
1
+ import { type SystemComponentTypeConstraint } from '../core/index.js';
2
+ /**
3
+ * All components that are available in the domain spec and can be defined in yaml.
4
+ *
5
+ * To add a new component the domain spec, add it to this array
6
+ */
7
+ export declare const availableSystemComponents: [import("../index.js").SystemComponentType<"applicationConfig", import("../index.js").ApplicationConfigComponentState, never>, import("../index.js").SystemComponentType<"price", import("../index.js").PriceComponentState, never>, import("../index.js").SystemComponentType<"detail", import("../index.js").DetailComponentState, never>, import("../index.js").SystemComponentType<"canvasConfig", import("../index.js").CanvasConfigComponentState, never>, import("../index.js").SystemComponentType<"canvasCustomEnvironment", import("../index.js").CanvasCustomEnvironmentComponentState, never>, import("../index.js").SystemComponentType<"canvasPresetEnvironment", import("../index.js").CanvasPresetEnvironmentComponentState, never>, import("../index.js").SystemComponentType<"dimensionIndicator", import("../index.js").DimensionIndicatorComponentState, never>, import("../index.js").SystemComponentType<"angleIndicator", import("../index.js").AngleIndicatorComponentState, never>, import("../index.js").SystemComponentType<"dragHandle", import("../index.js").DragHandleComponentState, "draggableRotationY" | "draggableX" | "draggableY" | "draggableZ">, import("../index.js").SystemComponentType<"rotationHandle", import("../index.js").RotationHandleComponentState, never>, import("../index.js").SystemComponentType<"rotatable", import("../index.js").RotatableComponentState, "rotation">, import("../index.js").SystemComponentType<"sketching", import("../index.js").SketchingComponentState, never>, import("../index.js").SystemComponentType<"sketchingDraw", import("../index.js").SketchingDrawComponentState, never>, import("../index.js").SystemComponentType<"sketchingEdit", import("../index.js").SketchingEditComponentState, never>, import("../index.js").SystemComponentType<"sketchingLine", import("../index.js").SketchingLineComponentState, "angle" | "length" | "x" | "y">, import("../index.js").SystemComponentType<"sketchingRectangle", import("../index.js").SketchingRectangleComponentState, "angle" | "depth" | "width" | "x" | "y">, import("../index.js").SystemComponentType<"sceneEntityRemoteObject", import("../index.js").SceneEntityRemoteObjectComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObject", import("../index.js").SceneEntityObjectComponentState, never>, import("../index.js").SystemComponentType<"customSceneEntity", import("../index.js").CustomSceneEntityComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityWallObject", import("../index.js").SceneEntityWallObjectComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityFloorObject", import("../index.js").SceneEntityFloorObjectComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityBoxObject", import("../index.js").SceneEntityBoxObjectComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityAmbientLight", import("../index.js").SceneEntityAmbientLightComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityDirectionalLight", import("../index.js").SceneEntityDirectionalLightComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityPointLight", import("../index.js").SceneEntityPointLightComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityRectAreaLight", import("../index.js").SceneEntityRectAreaLightComponentState, never>, import("../index.js").SystemComponentType<"sceneEntitySpotLight", import("../index.js").SceneEntitySpotLightComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityProperties", import("../index.js").SceneEntityPropertiesComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectProperties", import("../index.js").SceneEntityObjectPropertiesComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectGroup", import("../index.js").SceneEntityObjectGroupComponentState, never>, import("../index.js").SystemComponentType<"hiddenEntity", import("../index.js").HiddenEntityComponentState, never>, import("../index.js").SystemComponentType<"cameraBasedHiddenEntity", import("../index.js").CameraBasedHiddenEntityComponentState, never>, import("../index.js").SystemComponentType<"cameraBasedHiddenEntityObject", import("../index.js").CameraBasedHiddenEntityObjectComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityRemoteMaterialOverride", import("../index.js").SceneEntityRemoteMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityLocalMaterialOverride", import("../index.js").SceneEntityLocalMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectRemoteMaterialOverride", import("../index.js").SceneEntityObjectRemoteMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectLocalMaterialOverride", import("../index.js").SceneEntityObjectLocalMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectTransmissiveMaterialOverride", import("../index.js").SceneEntityObjectTransmissiveMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityTransmissiveMaterialOverride", import("../index.js").SceneEntityTransmissiveMaterialOverrideComponentState, never>, import("../index.js").SystemComponentType<"materialOverridePropertyTransition", import("../index.js").MaterialOverridePropertyTransitionComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityAnimation", import("../index.js").SceneEntityAnimationComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectClip", import("../index.js").SceneEntityObjectClipComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectTextDecal", import("../index.js").SceneEntityObjectTextDecalComponentState, never>, import("../index.js").SystemComponentType<"fitRootPerspectiveCamera", import("../index.js").FitRootPerspectiveCameraComponentState, never>, import("../index.js").SystemComponentType<"fitRootOrthographicCamera", import("../index.js").FitRootOrthographicCameraComponentState, never>, import("../index.js").SystemComponentType<"fitEntityPerspectiveCamera", import("../index.js").FitEntityPerspectiveCameraComponentState, never>, import("../index.js").SystemComponentType<"fitEntityOrthographicCamera", import("../index.js").FitEntityOrthographicCameraComponentState, never>, import("../index.js").SystemComponentType<"fitSelectionPerspectiveCamera", import("../index.js").FitSelectionPerspectiveCameraComponentState, never>, import("../index.js").SystemComponentType<"fitSelectionOrthographicCamera", import("../index.js").FitSelectionOrthographicCameraComponentState, never>, import("../index.js").SystemComponentType<"staticPerspectiveCamera", import("../index.js").StaticPerspectiveCameraComponentState, never>, import("../index.js").SystemComponentType<"staticOrthographicCamera", import("../index.js").StaticOrthographicCameraComponentState, never>, import("../index.js").SystemComponentType<"autorotateCamera", import("../index.js").AutorotateCameraComponentState, never>, import("../index.js").SystemComponentType<"boundingBox", import("../index.js").BoundingBoxComponentState, never>, import("../index.js").SystemComponentType<"boundingSphere", import("../index.js").BoundingSphereComponentState, never>, import("../index.js").SystemComponentType<"pivotPoint", import("../index.js").PivotPointComponentState, never>, import("../index.js").SystemComponentType<"snapPoint", import("../index.js").SnapPointComponentState, never>, import("../index.js").SystemComponentType<"snapEdge", import("../index.js").SnapEdgeComponentState, never>, import("../index.js").SystemComponentType<"snapPlane", import("../index.js").SnapPlaneComponentState, never>, import("../index.js").SystemComponentType<"snapAxis", import("../index.js").SnapAxisComponentState, never>, import("../index.js").SystemComponentType<"collisionBoxGeometry", import("../index.js").CollisionBoxGeometryComponentState, never>, import("../index.js").SystemComponentType<"collisionGeometry", import("../index.js").CollisionGeometryComponentState, never>, import("../index.js").SystemComponentType<"collisionPointGeometry", import("../index.js").CollisionPointGeometryComponentState, never>, import("../index.js").SystemComponentType<"constraint", import("../index.js").ConstraintComponentState, never>, import("../index.js").SystemComponentType<"selectable", import("../index.js").SelectableComponentState, never>, import("../index.js").SystemComponentType<"htmlHotspot", import("../index.js").HtmlHotspotComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityObjectHtmlHotspot", import("../index.js").SceneEntityObjectHtmlHotspotComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityControl", import("../index.js").SceneEntityControlComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityAddFab", import("../index.js").SceneEntityAddFabComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityDeleteFab", import("../index.js").SceneEntityDeleteFabComponentState, never>, import("../index.js").SystemComponentType<"sceneEntitySelectHotspot", import("../index.js").SceneEntitySelectHotspotComponentState, never>, import("../index.js").SystemComponentType<"sceneEntityNavigationHotspot", import("../index.js").SceneEntityNavigationHotspotComponentState, never>, import("../index.js").SystemComponentType<"toolMenuFab", import("../index.js").ToolMenuFabComponentState, never>, import("../index.js").SystemComponentType<"exitToolModeFab", import("../index.js").ExitToolModeFabComponentState, never>, import("../index.js").SystemComponentType<"entityHeader", import("../index.js").EntityHeaderComponentState, never>, import("../index.js").SystemComponentType<"propertyPage", import("../index.js").PropertyPageComponentState, never>, import("../index.js").SystemComponentType<"toolbar", import("../index.js").ToolbarComponentState, never>, import("../index.js").SystemComponentType<"viewControls", import("../index.js").ViewControlsComponentState, never>, import("../index.js").SystemComponentType<"toolControls", import("../index.js").ToolControlsComponentState, never>, import("../index.js").SystemComponentType<"sidebarTabs", import("../index.js").SidebarTabsComponentState, never>, import("../index.js").SystemComponentType<"horizontalTabs", import("../index.js").HorizontalTabsComponentState, never>, import("../index.js").SystemComponentType<"navigationSteps", import("../index.js").NavigationStepsComponentState, never>, import("../index.js").SystemComponentType<"finalizeAction", import("../index.js").FinalizeActionComponentState, never>, import("../index.js").SystemComponentType<"otherAction", import("../index.js").OtherActionComponentState, never>, import("../index.js").SystemComponentType<"basicSidebarFooter", import("../index.js").BasicSidebarFooterComponentState, never>, import("../index.js").SystemComponentType<"universalSidebarFooter", import("../index.js").UniversalSidebarFooterComponentState, never>, import("../index.js").SystemComponentType<"readSidebarFooter", import("../index.js").ReadSidebarFooterComponentState, never>, import("../index.js").SystemComponentType<"customSidebarFooter", import("../index.js").CustomSidebarFooterComponentState, never>, import("../index.js").SystemComponentType<"hiddenSidebarFooter", import("../index.js").HiddenSidebarFooterComponentState, never>, import("../index.js").SystemComponentType<"canvasPadding", import("../index.js").CanvasPaddingComponentState, never>, import("../index.js").SystemComponentType<"floatingHeader", import("../index.js").FloatingHeaderComponentState, never>, import("../index.js").SystemComponentType<"customHeader", import("../index.js").CustomHeaderComponentState, never>, import("../index.js").SystemComponentType<"fixedHeader", import("../index.js").FixedHeaderComponentState, never>, import("../index.js").SystemComponentType<"hiddenHeader", import("../index.js").HiddenHeaderComponentState, never>, import("../index.js").SystemComponentType<"replaceEntityRecipes", import("../index.js").ReplaceEntityRecipesComponentState, never>, import("../index.js").SystemComponentType<"replaceEntityRecipeHierarchy", import("../index.js").ReplaceEntityRecipeHierarchyComponentState, never>, import("../index.js").SystemComponentType<"childEntityRecipes", import("../index.js").ChildEntityRecipesComponentState, never>, import("../index.js").SystemComponentType<"childEntityRecipeHierarchy", import("../index.js").ChildEntityRecipeHierarchyComponentState, never>, import("../index.js").SystemComponentType<"materialSwatch", import("../index.js").MaterialSwatchComponentState, "selectedSwatchKey">, import("../index.js").SystemComponentType<"offsetAnchors", import("../index.js").OffsetAnchorsComponentState, never>, import("../index.js").SystemComponentType<"offsetIndicator", import("../index.js").OffsetIndicatorComponentState, never>, import("../index.js").SystemComponentType<"distanceDimension", import("../index.js").DistanceDimensionComponentState, "value">, import("../index.js").SystemComponentType<"angleDimension", import("../index.js").AngleValue, "value">, import("../index.js").SystemComponentType<"genericDimension", import("../index.js").GenericValue, "value">, import("../index.js").SystemComponentType<"distanceDimensionSelect", import("../index.js").DistanceDimensionSelectComponentState, "value">, import("../index.js").SystemComponentType<"colorValue", import("../index.js").ColorValueComponentState, "value">, import("../index.js").SystemComponentType<"textValue", import("../index.js").TextValueComponentState, "value">, import("../index.js").SystemComponentType<"multilingualTextValue", import("../index.js").MultilingualTextValueComponentState, "value">, import("../index.js").SystemComponentType<"attributeSelection", import("../index.js").AttributeSelectionComponentState, "value">, import("../index.js").SystemComponentType<"attributeSwitch", import("../index.js").AttributeSwitchComponentState, "value">, import("../index.js").SystemComponentType<"childEntitySelection", import("../index.js").ChildEntitySelectionComponentState, never>, import("../index.js").SystemComponentType<"size", import("../index.js").SizeComponentState, "sizeX" | "sizeY" | "sizeZ">, import("../index.js").SystemComponentType<"offset", import("../index.js").OffsetComponentState, "offsetX" | "offsetY" | "offsetZ">, import("../index.js").SystemComponentType<"editableAngleIndicator", import("../index.js").EditableAngleIndicatorComponentState, never>, import("../index.js").SystemComponentType<"editableDistanceDimensionIndicator", import("../index.js").EditableDistanceDimensionIndicatorComponentState, never>, import("../index.js").SystemComponentType<"editableOffsetIndicator", import("../index.js").EditableOffsetIndicatorComponentState, never>, import("../index.js").SystemComponentType<"editableSizeIndicator", import("../index.js").EditableSizeIndicatorComponentState, never>, import("../index.js").SystemComponentType<"listSelectorDimensionIndicator", import("../index.js").ListSelectorDimensionIndicatorComponentState, never>, import("../index.js").SystemComponentType<"hotspotDragHandle", import("../index.js").HotspotDragHandleComponentState, "draggableX" | "draggableY" | "draggableZ">, import("../index.js").SystemComponentType<"simpleSummary", import("../index.js").SimpleSummaryComponentState, never>, import("../index.js").SystemComponentType<"clientSideImage", import("../index.js").ClientSideImageComponentState, never>, import("../index.js").SystemComponentType<"saveTemplateThumbnail", import("../index.js").SaveTemplateThumbnailComponentState, never>, import("../index.js").SystemComponentType<"agentScreenshot", import("../index.js").AgentScreenshotComponentState, never>, import("../index.js").SystemComponentType<"projectedEntities", import("../index.js").ProjectedEntitiesComponentState, never>, import("../index.js").SystemComponentType<"violations", import("../index.js").ViolationComponentState, never>];
8
+ /**
9
+ * Get component by name from all domain spec available components
10
+ */
11
+ export declare const componentsByName: Map<string, SystemComponentTypeConstraint>;
@@ -0,0 +1 @@
1
+ import{violationsComponent as e}from"../core/index.js";import{agentScreenshotComponent as o,angleIndicatorComponent as n,attributeSwitchComponent as m,autorotateCameraComponent as s,basicSidebarFooterComponent as t,cameraBasedHiddenEntityComponent as p,cameraBasedHiddenEntityObjectComponent as a,canvasConfigComponent as i,canvasCustomEnvironmentComponent as r,canvasPaddingComponent as x,canvasPresetEnvironmentComponent as c,childEntityRecipeHierarchyComponent as l,clientSideImageComponent as y,colorValueComponent as d,customHeaderComponent as f,customSidebarFooterComponent as j,dimensionIndicatorComponent as b,editableAngleIndicatorComponent as v,editableDistanceDimensionIndicatorComponent as C,editableOffsetIndicatorComponent as S,editableSizeIndicatorComponent as w,entityHeaderComponent as B,exitToolModeFabComponent as M,finalizeActionComponent as N,fitSelectionOrthographicCameraComponent as g,fitSelectionPerspectiveCameraComponent as h,fixedHeaderComponent as k,floatingHeaderComponent as q,hiddenHeaderComponent as u,hiddenSidebarFooterComponent as z,horizontalTabsComponent as A,htmlHotspotComponent as D,listSelectorDimensionIndicatorComponent as E,multilingualTextValueComponent as F,navigationStepsComponent as G,offsetAnchorsComponent as H,offsetComponent as I,offsetIndicatorComponent as J,otherActionComponent as K,propertyPageComponent as L,readSidebarFooterComponent as O,replaceEntityRecipeHierarchyComponent as P,rotatableComponent as Q,rotationHandleComponent as R,saveTemplateThumbnailComponent as T,sceneEntityAddFabComponent as U,sceneEntityAnimationComponent as V,sceneEntityControlComponent as W,sceneEntityDeleteFabComponent as X,sceneEntityFloorObjectComponent as Y,sceneEntityNavigationHotspotComponent as Z,sceneEntityObjectHtmlHotspotComponent as $,sceneEntitySelectHotspotComponent as _,sceneEntityWallObjectComponent as ee,selectableComponent as eo,sidebarTabsComponent as en,simpleSummaryComponent as em,sizeComponent as es,sketchingDrawComponent as et,sketchingEditComponent as ep,textValueComponent as ea,toolControlsComponent as ei,toolMenuFabComponent as er,toolbarComponent as ex,universalSidebarFooterComponent as ec,viewControlsComponent as el}from"../extensions/index.js";import{angleDimensionComponent as ey,applicationConfigComponent as ed,attributeSelectionComponent as ef,boundingBoxComponent as ej,boundingSphereComponent as eb,childEntityRecipesComponent as ev,childEntitySelectionComponent as eC,collisionBoxGeometryComponent as eS,collisionGeometryComponent as ew,collisionPointGeometryComponent as eB,constraintComponent as eM,customSceneEntityComponent as eN,detailComponent as eg,distanceDimensionComponent as eh,distanceDimensionSelectComponent as ek,dragHandleComponent as eq,fitEntityOrthographicCameraComponent as eu,fitEntityPerspectiveCameraComponent as ez,fitRootOrthographicCameraComponent as eA,fitRootPerspectiveCameraComponent as eD,genericDimensionComponent as eE,hiddenEntityComponent as eF,hotspotDragHandleComponent as eG,materialOverridePropertyTransitionComponent as eH,materialSwatchComponent as eI,pivotPointComponent as eJ,priceComponent as eK,projectedEntitiesComponent as eL,replaceEntityRecipesComponent as eO,sceneEntityAmbientLightComponent as eP,sceneEntityBoxObjectComponent as eQ,sceneEntityDirectionalLightComponent as eR,sceneEntityLocalMaterialOverrideComponent as eT,sceneEntityObjectClipComponent as eU,sceneEntityObjectComponent as eV,sceneEntityObjectGroupComponent as eW,sceneEntityObjectLocalMaterialOverrideComponent as eX,sceneEntityObjectPropertiesComponent as eY,sceneEntityObjectRemoteMaterialOverrideComponent as eZ,sceneEntityObjectTextDecalComponent as e$,sceneEntityObjectTransmissiveMaterialOverrideComponent as e_,sceneEntityPointLightComponent as e0,sceneEntityPropertiesComponent as e1,sceneEntityRectAreaLightComponent as e2,sceneEntityRemoteMaterialOverrideComponent as e3,sceneEntityRemoteObjectComponent as e4,sceneEntitySpotLightComponent as e5,sceneEntityTransmissiveMaterialOverrideComponent as e6,sketchingComponent as e7,sketchingLineComponent as e8,sketchingRectangleComponent as e9,snapAxisComponent as oe,snapEdgeComponent as oo,snapPlaneComponent as on,snapPointComponent as om,staticOrthographicCameraComponent as os,staticPerspectiveCameraComponent as ot}from"../system-components/index.js";export const availableSystemComponents=[ed,eK,eg,i,r,c,b,n,eq,R,Q,e7,et,ep,e8,e9,e4,eV,eN,ee,Y,eQ,eP,eR,e0,e2,e5,e1,eY,eW,eF,p,a,e3,eT,eZ,eX,e_,e6,eH,V,eU,e$,eD,eA,ez,eu,h,g,ot,os,s,ej,eb,eJ,om,oo,on,oe,eS,ew,eB,eM,eo,D,$,W,U,X,_,Z,er,M,B,L,ex,el,ei,en,A,G,N,K,t,ec,O,j,z,x,q,f,k,u,eO,P,ev,l,eI,H,J,eh,ey,eE,ek,d,ea,F,ef,m,eC,es,I,v,C,S,w,E,eG,em,y,T,o,eL,e];export const componentsByName=new Map(availableSystemComponents.map(e=>[e.name,e]));
@@ -0,0 +1 @@
1
+ export { availableSystemComponents, componentsByName } from './available-system-components.js';
@@ -0,0 +1 @@
1
+ export{availableSystemComponents,componentsByName}from"./available-system-components.js";
@@ -1,6 +1,6 @@
1
1
  import { type ExtendedJsonSchema } from '@salsita-ai/common/utils';
2
- import { type $DomainEntity, type $DomainEntityReflection, type ActionDefinition, type AliasMap, type AliasedExpressions, type AnyActionImplementations, type DomainEntity, DomainFactory, type EntityByType, type EntityReflections, type MigrateFunction, type SchemaOfObject } from './core/index.js';
3
- import { type ProjectModule } from './domain-runtime/index.js';
2
+ import { type $DomainEntity, type $DomainEntityReflection, type ActionDefinition, type AliasMap, type AliasedExpressions, type AnyActionImplementations, type DomainEntity, DomainFactory, type EntityByType, type EntityReflections, type MigrateFunction, type SchemaOfObject } from '../core/index.js';
3
+ import { type ProjectModule } from '../domain-runtime/index.js';
4
4
  type $EntityReflections<ENTITIES extends DomainEntity<string>> = {
5
5
  [TYPE in ENTITIES['type']]: $DomainEntityReflection<$DomainEntity<EntityByType<ENTITIES, TYPE>>>;
6
6
  };
@@ -0,0 +1 @@
1
+ import{DomainFactory as t,createMigrateFunction as i,expandAlias as e}from"../core/index.js";import{mergeExpressionModules as s,resolveActionModules as n}from"../domain-runtime/index.js";import{withProfilerLabel as a}from"../utils/index.js";export class DomainBuilder{entities;aliasMap;$entityReflections;allowedRootEntityTypes;implemented;modelVersion;publishedData;sessionData;frontendData;backendData;migrate;isAdminDomain;actions;actionImplementations;constructor(t,i,e,s,n,a,o,h,l,m,r,d,p,c){this.entities=t,this.aliasMap=i,this.$entityReflections=e,this.allowedRootEntityTypes=s,this.implemented=n,this.modelVersion=a,this.publishedData=o,this.sessionData=h,this.frontendData=l,this.backendData=m,this.migrate=r,this.isAdminDomain=d,this.actions=p,this.actionImplementations=c}static from(t,e,s,n,a,o,h,l,m,r){let d=i({1:t},1,{});return new DomainBuilder(t,e,s,n,{},a,o,h,l,m,d,r,{},{})}withMigrate(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,t,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressions(t){let i=Object.entries(t);return this.withEntityExpressions(i.flatMap(([t,i])=>e(this.aliasMap,t).flatMap(e=>Object.entries(i).map(([i,s])=>({type:e,expression:{...s,origin:{name:i,typeOrAlias:t}}})))))}withExpressionModules(t){let i=new Map(Object.entries(this.implemented).map(([t,i])=>[t,new Set(Object.keys(i))]));return this.withEntityExpressions(Object.entries(s(t,this.aliasMap,void 0,i)).flatMap(([t,i])=>Object.values(i).map(i=>({type:t,expression:i}))))}withEntityExpressions(t){let i={...this.implemented};return t.forEach(({type:t,expression:e})=>{let{name:s,typeOrAlias:n}=e.origin,o={...i[t]},h=o[s];if(h)throw Error(`Duplicate expression ${t}.${s}: The expression is defined on both ${n} and ${h.origin.typeOrAlias}, which would lead to ambiguous usage. Please ensure that expressions are only defined once.`);o[s]={...e,evaluate:a(`${t}_${s}`,e.evaluate)},i[t]=o}),new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,i,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,this.actionImplementations)}withActions(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,Object.fromEntries(t.map(t=>[t.name,t])),this.actionImplementations)}withActionModules(t){return this.withActionImplementations(n(t))}withActionImplementations(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,{...this.actionImplementations,...t})}build=()=>{let e=this.implemented,s=this.migrate??i({1:this.entities},1,{});return new t({aliasMap:this.aliasMap,entityReflections:this.entities,$entityReflections:this.$entityReflections,expressions:e,allowedRootEntityTypes:this.allowedRootEntityTypes,modelVersion:this.modelVersion,migrate:s,publishedData:this.publishedData,sessionData:this.sessionData,frontendData:this.frontendData,backendData:this.backendData,isAdminDomain:this.isAdminDomain,actions:this.actions,actionImplementations:this.actionImplementations})}}
@@ -0,0 +1 @@
1
+ export { DomainBuilder } from './domain-builder.js';
@@ -0,0 +1 @@
1
+ export{DomainBuilder}from"./domain-builder.js";
@@ -1,4 +1,10 @@
1
1
  import { type HexColor } from '@salsita-ai/common/utils';
2
+ /**
3
+ * The largest width and height of an assistant screenshot, in pixels. The provider fits every image
4
+ * within 2048 × 2048 before the model reads it, and then reads it at a short side of 768, so a
5
+ * larger screenshot would only cost render and upload time.
6
+ */
7
+ export declare const AGENT_SCREENSHOT_MAX_SIDE = 2048;
2
8
  /**
3
9
  * How the AI assistant photographs an entity from one predefined view: the export state, size and
4
10
  * format of the picture and the UI states it is taken in. Evaluated per entity like any component
@@ -1 +1 @@
1
- import{SystemComponentBuilder as t}from"../../core/index.js";export const agentScreenshotComponent=t.component("agentScreenshot").withState({type:"object",tsType:"AgentScreenshotComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AgentScreenshotComponentState"}],properties:{exportState:{type:"string"},width:{type:"number"},height:{type:"number"},fileFormat:{type:"string",enum:["PNG","JPEG"]},backgroundColor:{type:"string",pattern:"^#[0-9a-fA-F]{6}$",tsType:"HexColor",import:[{module:"@salsita-ai/sdk/common/utils",member:"HexColor"}]},toolState:{type:"string"},viewState:{type:"string"},navigationState:{type:"string"}},required:["exportState","width","height","fileFormat","toolState","viewState","navigationState"],additionalProperties:!1}).build();
1
+ import{SystemComponentBuilder as t}from"../../core/index.js";export const AGENT_SCREENSHOT_MAX_SIDE=2048;export const agentScreenshotComponent=t.component("agentScreenshot").withState({type:"object",tsType:"AgentScreenshotComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AgentScreenshotComponentState"}],properties:{exportState:{type:"string"},width:{type:"number",maximum:2048},height:{type:"number",maximum:2048},fileFormat:{type:"string",enum:["PNG","JPEG"]},backgroundColor:{type:"string",pattern:"^#[0-9a-fA-F]{6}$",tsType:"HexColor",import:[{module:"@salsita-ai/sdk/common/utils",member:"HexColor"}]},toolState:{type:"string"},viewState:{type:"string"},navigationState:{type:"string"}},required:["exportState","width","height","fileFormat","toolState","viewState","navigationState"],additionalProperties:!1}).build();
@@ -1,3 +1,3 @@
1
- export { agentScreenshotComponent, type AgentScreenshotComponent, type AgentScreenshotComponentState, } from './agent-screenshot.js';
1
+ export { AGENT_SCREENSHOT_MAX_SIDE, agentScreenshotComponent, type AgentScreenshotComponent, type AgentScreenshotComponentState, } from './agent-screenshot.js';
2
2
  export { clientSideImageComponent, type ClientSideImageComponent, type ClientSideImageComponentState, } from './client-side-image.js';
3
3
  export { saveTemplateThumbnailComponent, type SaveTemplateThumbnailComponent, type SaveTemplateThumbnailComponentState, } from './save-template-thumbnail.js';
@@ -1 +1 @@
1
- export{agentScreenshotComponent}from"./agent-screenshot.js";export{clientSideImageComponent}from"./client-side-image.js";export{saveTemplateThumbnailComponent}from"./save-template-thumbnail.js";
1
+ export{AGENT_SCREENSHOT_MAX_SIDE,agentScreenshotComponent}from"./agent-screenshot.js";export{clientSideImageComponent}from"./client-side-image.js";export{saveTemplateThumbnailComponent}from"./save-template-thumbnail.js";
@@ -62,7 +62,7 @@ export { canvasPresetEnvironmentComponent, isCanvasPresetEnvironmentInstance, is
62
62
  export { canvasCustomEnvironmentComponent, isCanvasCustomEnvironmentInstance, isCanvasCustomEnvironmentSnapshot, type CanvasCustomEnvironmentComponent, type CanvasCustomEnvironmentComponentInstance, type CanvasCustomEnvironmentComponentSnapshot, type CanvasCustomEnvironmentComponentState, } from './canvas-custom-environment.js';
63
63
  export { toolMenuFabComponent, isToolMenuFabComponentSnapshot, isToolMenuFabComponentInstance, type ToolMenuFabOption, type ToolMenuFabComponent, type ToolMenuFabComponentInstance, type ToolMenuFabComponentSnapshot, type ToolMenuFabComponentState, } from './tool-menu-fab.js';
64
64
  export { exitToolModeFabComponent, isExitToolModeFabComponentSnapshot, isExitToolModeFabComponentInstance, type ExitToolModeFabComponent, type ExitToolModeFabComponentInstance, type ExitToolModeFabComponentSnapshot, type ExitToolModeFabComponentState, } from './exit-tool-mode-fab.js';
65
- export { agentScreenshotComponent, type AgentScreenshotComponent, type AgentScreenshotComponentState, clientSideImageComponent, type ClientSideImageComponent, type ClientSideImageComponentState, saveTemplateThumbnailComponent, type SaveTemplateThumbnailComponent, type SaveTemplateThumbnailComponentState, } from './export-images/index.js';
65
+ export { AGENT_SCREENSHOT_MAX_SIDE, agentScreenshotComponent, type AgentScreenshotComponent, type AgentScreenshotComponentState, clientSideImageComponent, type ClientSideImageComponent, type ClientSideImageComponentState, saveTemplateThumbnailComponent, type SaveTemplateThumbnailComponent, type SaveTemplateThumbnailComponentState, } from './export-images/index.js';
66
66
  export { cameraBasedHiddenEntityComponent, type CameraBasedHiddenEntityComponent, type CameraBasedHiddenEntityComponentState, isCameraBasedHiddenEntityComponent, } from './camera-based-hidden-entity.js';
67
67
  export { cameraBasedHiddenEntityObjectComponent, type CameraBasedHiddenEntityObjectComponent, type CameraBasedHiddenEntityObjectComponentState, isCameraBasedHiddenEntityObjectComponent, } from './camera-based-hidden-entity-object.js';
68
68
  export { sceneEntityControlComponent, isSceneEntityControlComponentSnapshot, isSceneEntityControlComponentInstance, type SceneEntityControlComponentSnapshot, type SceneEntityControlComponentInstance, type SceneEntityControlComponent, type SceneEntityControlComponentState, } from './scene-entity-control.js';
@@ -1 +1 @@
1
- export*from"./common/index.js";export{attributeSwitchComponent}from"./attribute-switch.js";export{childEntityRecipeHierarchyComponent,isChildEntityRecipeHierarchySnapshot,isChildEntityRecipeHierarchyInstance}from"./child-entity-recipe-hierarchy.js";export{dimensionIndicatorComponent,isDimensionIndicatorSnapshot}from"./dimension-indicator.js";export{angleIndicatorComponent,isAngleIndicatorSnapshot}from"./angle-indicator.js";export{editableAngleIndicatorComponent,isEditableAngleIndicatorSnapshot}from"./editable-angle-indicator.js";export{editableDistanceDimensionIndicatorComponent,isEditableDistanceDimensionIndicatorSnapshot}from"./editable-distance-dimension-indicator.js";export{editableSizeIndicatorComponent,isEditableSizeIndicatorSnapshot}from"./editable-size-indicator.js";export{editableOffsetIndicatorComponent,isEditableOffsetIndicatorSnapshot}from"./editable-offset-indicator.js";export{offsetAnchorsComponent,isOffsetAnchorsSnapshot}from"./offset-anchors.js";export{offsetIndicatorComponent,isOffsetIndicatorSnapshot}from"./offset-indicator.js";export{listSelectorDimensionIndicatorComponent,isListSelectorDimensionIndicatorSnapshot}from"./list-selector-dimension-indicator.js";export{replaceEntityRecipeHierarchyComponent,isReplaceEntityRecipeHierarchySnapshot,isReplaceEntityRecipeHierarchyInstance}from"./replace-entity-recipe-hierarchy.js";export{rotatableComponent}from"./rotatable.js";export{isSceneEntityAddFabComponentSnapshot,sceneEntityAddFabComponent}from"./scene-entity-add-fab.js";export{isSceneEntityDeleteFabComponentSnapshot,sceneEntityDeleteFabComponent}from"./scene-entity-delete-fab.js";export{isSceneEntityNavigationHotspotComponentSnapshot,sceneEntityNavigationHotspotComponent}from"./scene-entity-navigation-hotspot.js";export{htmlHotspotComponent,isHtmlHotspotComponentSnapshot,isHtmlHotspotComponentInstance}from"./scene-entity-html-hotspot.js";export{sceneEntityObjectHtmlHotspotComponent,isSceneEntityObjectHtmlHotspotComponentSnapshot,isSceneEntityObjectHtmlHotspotComponentInstance}from"./scene-entity-object-html-hotspot.js";export{isSceneEntitySelectHotspotComponentSnapshot,sceneEntitySelectHotspotComponent}from"./scene-entity-select-hotspot.js";export{customPriceFooterComponent}from"./custom-price-footer.js";export{entityHeaderComponent}from"./entity-header.js";export{finalizeButtonComponent,finalizePageComponent}from"./finalize-component.js";export{fitSelectionOrthographicCameraComponent,isFitSelectionOrthographicCameraComponent}from"./fit-selection-orthographic-camera-component.js";export{fitSelectionPerspectiveCameraComponent,isFitSelectionPerspectiveCameraComponent}from"./fit-selection-perspective-camera-component.js";export{autorotateCameraComponent,isAutorotateCameraComponent}from"./autorotate-camera-component.js";export{selectableComponent}from"./selectable-component.js";export{sizeComponent,isSizeSnapshot,isSizeInstance}from"./size.js";export{offsetComponent,isOffsetSnapshot,isOffsetInstance}from"./offset.js";export{navigationStepsComponent}from"./navigation-steps.js";export{propertyPageComponent,isPropertyPageSnapshot,isPropertyPageInstance}from"./property-page.js";export{rotationHandleComponent}from"./rotation-handle.js";export{sceneEntityAnimationComponent}from"./scene-entity-animation.js";export{sidebarTabsComponent,isSidebarTabsSnapshot,isSidebarTabsInstance}from"./sidebar-tabs.js";export{isSimpleSummaryComponentSnapshot,simpleSummaryComponent}from"./simple-summary.js";export{customSummaryPageComponent,isCustomSummaryComponentSnapshot}from"./summary-component.js";export{colorValueComponent}from"./color-value.js";export{textValueComponent}from"./text-value.js";export{toolControlsComponent}from"./tool-controls.js";export{viewControlsComponent}from"./view-controls.js";export{multilingualTextValueComponent}from"./multilingual-text-value.js";export{isSceneEntityFloorObjectComponent,sceneEntityFloorObjectComponent}from"./scene-entity-floor-object.js";export{isSceneEntityWallObjectComponent,sceneEntityWallObjectComponent}from"./scene-entity-wall-object.js";export{isSketchingDrawSnapshot,isSketchingDrawInstance,sketchingDrawComponent}from"./sketching-draw.js";export{isSketchingEditSnapshot,isSketchingEditInstance,sketchingEditComponent}from"./sketching-edit.js";export{toolbarComponent,isToolbarSnapshot,isToolbarInstance}from"./toolbar.js";export{finalizeActionComponent,isFinalizeActionSnapshot,isFinalizeActionInstance}from"./finalize-action.js";export{otherActionComponent,isOtherActionSnapshot,isOtherActionInstance}from"./other-action.js";export{hiddenSidebarFooterComponent,isHiddenSidebarFooterSnapshot,isHiddenSidebarFooterInstance}from"./hidden-sidebar-footer.js";export{universalSidebarFooterComponent,isUniversalSidebarFooterSnapshot,isUniversalSidebarFooterInstance}from"./universal-sidebar-footer.js";export{basicSidebarFooterComponent,isBasicSidebarFooterSnapshot,isBasicSidebarFooterInstance}from"./basic-sidebar-footer.js";export{readSidebarFooterComponent,isReadSidebarFooterSnapshot,isReadSidebarFooterInstance}from"./read-sidebar-footer.js";export{customSidebarFooterComponent,isCustomSidebarFooterSnapshot,isCustomSidebarFooterInstance}from"./custom-sidebar-footer.js";export{canvasPaddingComponent,isCanvasPaddingInstance,isCanvasPaddingSnapshot}from"./canvas-padding.js";export{floatingHeaderComponent,isFloatingHeaderSnapshot,isFloatingHeaderInstance}from"./floating-header.js";export{customHeaderComponent,isCustomHeaderSnapshot,isCustomHeaderInstance}from"./custom-header.js";export{fixedHeaderComponent,isFixedHeaderSnapshot,isFixedHeaderInstance}from"./fixed-header.js";export{hiddenHeaderComponent,isHiddenHeaderSnapshot,isHiddenHeaderInstance}from"./hidden-header.js";export{horizontalTabsComponent,isHorizontalTabsSnapshot,isHorizontalTabsInstance}from"./horizontal-tabs.js";export{canvasConfigComponent,isCanvasConfigInstance,isCanvasConfigSnapshot}from"./canvas-config.js";export{canvasPresetEnvironmentComponent,isCanvasPresetEnvironmentInstance,isCanvasPresetEnvironmentSnapshot}from"./canvas-preset-environment.js";export{canvasCustomEnvironmentComponent,isCanvasCustomEnvironmentInstance,isCanvasCustomEnvironmentSnapshot}from"./canvas-custom-environment.js";export{toolMenuFabComponent,isToolMenuFabComponentSnapshot,isToolMenuFabComponentInstance}from"./tool-menu-fab.js";export{exitToolModeFabComponent,isExitToolModeFabComponentSnapshot,isExitToolModeFabComponentInstance}from"./exit-tool-mode-fab.js";export{agentScreenshotComponent,clientSideImageComponent,saveTemplateThumbnailComponent}from"./export-images/index.js";export{cameraBasedHiddenEntityComponent,isCameraBasedHiddenEntityComponent}from"./camera-based-hidden-entity.js";export{cameraBasedHiddenEntityObjectComponent,isCameraBasedHiddenEntityObjectComponent}from"./camera-based-hidden-entity-object.js";export{sceneEntityControlComponent,isSceneEntityControlComponentSnapshot,isSceneEntityControlComponentInstance}from"./scene-entity-control.js";
1
+ export*from"./common/index.js";export{attributeSwitchComponent}from"./attribute-switch.js";export{childEntityRecipeHierarchyComponent,isChildEntityRecipeHierarchySnapshot,isChildEntityRecipeHierarchyInstance}from"./child-entity-recipe-hierarchy.js";export{dimensionIndicatorComponent,isDimensionIndicatorSnapshot}from"./dimension-indicator.js";export{angleIndicatorComponent,isAngleIndicatorSnapshot}from"./angle-indicator.js";export{editableAngleIndicatorComponent,isEditableAngleIndicatorSnapshot}from"./editable-angle-indicator.js";export{editableDistanceDimensionIndicatorComponent,isEditableDistanceDimensionIndicatorSnapshot}from"./editable-distance-dimension-indicator.js";export{editableSizeIndicatorComponent,isEditableSizeIndicatorSnapshot}from"./editable-size-indicator.js";export{editableOffsetIndicatorComponent,isEditableOffsetIndicatorSnapshot}from"./editable-offset-indicator.js";export{offsetAnchorsComponent,isOffsetAnchorsSnapshot}from"./offset-anchors.js";export{offsetIndicatorComponent,isOffsetIndicatorSnapshot}from"./offset-indicator.js";export{listSelectorDimensionIndicatorComponent,isListSelectorDimensionIndicatorSnapshot}from"./list-selector-dimension-indicator.js";export{replaceEntityRecipeHierarchyComponent,isReplaceEntityRecipeHierarchySnapshot,isReplaceEntityRecipeHierarchyInstance}from"./replace-entity-recipe-hierarchy.js";export{rotatableComponent}from"./rotatable.js";export{isSceneEntityAddFabComponentSnapshot,sceneEntityAddFabComponent}from"./scene-entity-add-fab.js";export{isSceneEntityDeleteFabComponentSnapshot,sceneEntityDeleteFabComponent}from"./scene-entity-delete-fab.js";export{isSceneEntityNavigationHotspotComponentSnapshot,sceneEntityNavigationHotspotComponent}from"./scene-entity-navigation-hotspot.js";export{htmlHotspotComponent,isHtmlHotspotComponentSnapshot,isHtmlHotspotComponentInstance}from"./scene-entity-html-hotspot.js";export{sceneEntityObjectHtmlHotspotComponent,isSceneEntityObjectHtmlHotspotComponentSnapshot,isSceneEntityObjectHtmlHotspotComponentInstance}from"./scene-entity-object-html-hotspot.js";export{isSceneEntitySelectHotspotComponentSnapshot,sceneEntitySelectHotspotComponent}from"./scene-entity-select-hotspot.js";export{customPriceFooterComponent}from"./custom-price-footer.js";export{entityHeaderComponent}from"./entity-header.js";export{finalizeButtonComponent,finalizePageComponent}from"./finalize-component.js";export{fitSelectionOrthographicCameraComponent,isFitSelectionOrthographicCameraComponent}from"./fit-selection-orthographic-camera-component.js";export{fitSelectionPerspectiveCameraComponent,isFitSelectionPerspectiveCameraComponent}from"./fit-selection-perspective-camera-component.js";export{autorotateCameraComponent,isAutorotateCameraComponent}from"./autorotate-camera-component.js";export{selectableComponent}from"./selectable-component.js";export{sizeComponent,isSizeSnapshot,isSizeInstance}from"./size.js";export{offsetComponent,isOffsetSnapshot,isOffsetInstance}from"./offset.js";export{navigationStepsComponent}from"./navigation-steps.js";export{propertyPageComponent,isPropertyPageSnapshot,isPropertyPageInstance}from"./property-page.js";export{rotationHandleComponent}from"./rotation-handle.js";export{sceneEntityAnimationComponent}from"./scene-entity-animation.js";export{sidebarTabsComponent,isSidebarTabsSnapshot,isSidebarTabsInstance}from"./sidebar-tabs.js";export{isSimpleSummaryComponentSnapshot,simpleSummaryComponent}from"./simple-summary.js";export{customSummaryPageComponent,isCustomSummaryComponentSnapshot}from"./summary-component.js";export{colorValueComponent}from"./color-value.js";export{textValueComponent}from"./text-value.js";export{toolControlsComponent}from"./tool-controls.js";export{viewControlsComponent}from"./view-controls.js";export{multilingualTextValueComponent}from"./multilingual-text-value.js";export{isSceneEntityFloorObjectComponent,sceneEntityFloorObjectComponent}from"./scene-entity-floor-object.js";export{isSceneEntityWallObjectComponent,sceneEntityWallObjectComponent}from"./scene-entity-wall-object.js";export{isSketchingDrawSnapshot,isSketchingDrawInstance,sketchingDrawComponent}from"./sketching-draw.js";export{isSketchingEditSnapshot,isSketchingEditInstance,sketchingEditComponent}from"./sketching-edit.js";export{toolbarComponent,isToolbarSnapshot,isToolbarInstance}from"./toolbar.js";export{finalizeActionComponent,isFinalizeActionSnapshot,isFinalizeActionInstance}from"./finalize-action.js";export{otherActionComponent,isOtherActionSnapshot,isOtherActionInstance}from"./other-action.js";export{hiddenSidebarFooterComponent,isHiddenSidebarFooterSnapshot,isHiddenSidebarFooterInstance}from"./hidden-sidebar-footer.js";export{universalSidebarFooterComponent,isUniversalSidebarFooterSnapshot,isUniversalSidebarFooterInstance}from"./universal-sidebar-footer.js";export{basicSidebarFooterComponent,isBasicSidebarFooterSnapshot,isBasicSidebarFooterInstance}from"./basic-sidebar-footer.js";export{readSidebarFooterComponent,isReadSidebarFooterSnapshot,isReadSidebarFooterInstance}from"./read-sidebar-footer.js";export{customSidebarFooterComponent,isCustomSidebarFooterSnapshot,isCustomSidebarFooterInstance}from"./custom-sidebar-footer.js";export{canvasPaddingComponent,isCanvasPaddingInstance,isCanvasPaddingSnapshot}from"./canvas-padding.js";export{floatingHeaderComponent,isFloatingHeaderSnapshot,isFloatingHeaderInstance}from"./floating-header.js";export{customHeaderComponent,isCustomHeaderSnapshot,isCustomHeaderInstance}from"./custom-header.js";export{fixedHeaderComponent,isFixedHeaderSnapshot,isFixedHeaderInstance}from"./fixed-header.js";export{hiddenHeaderComponent,isHiddenHeaderSnapshot,isHiddenHeaderInstance}from"./hidden-header.js";export{horizontalTabsComponent,isHorizontalTabsSnapshot,isHorizontalTabsInstance}from"./horizontal-tabs.js";export{canvasConfigComponent,isCanvasConfigInstance,isCanvasConfigSnapshot}from"./canvas-config.js";export{canvasPresetEnvironmentComponent,isCanvasPresetEnvironmentInstance,isCanvasPresetEnvironmentSnapshot}from"./canvas-preset-environment.js";export{canvasCustomEnvironmentComponent,isCanvasCustomEnvironmentInstance,isCanvasCustomEnvironmentSnapshot}from"./canvas-custom-environment.js";export{toolMenuFabComponent,isToolMenuFabComponentSnapshot,isToolMenuFabComponentInstance}from"./tool-menu-fab.js";export{exitToolModeFabComponent,isExitToolModeFabComponentSnapshot,isExitToolModeFabComponentInstance}from"./exit-tool-mode-fab.js";export{AGENT_SCREENSHOT_MAX_SIDE,agentScreenshotComponent,clientSideImageComponent,saveTemplateThumbnailComponent}from"./export-images/index.js";export{cameraBasedHiddenEntityComponent,isCameraBasedHiddenEntityComponent}from"./camera-based-hidden-entity.js";export{cameraBasedHiddenEntityObjectComponent,isCameraBasedHiddenEntityObjectComponent}from"./camera-based-hidden-entity-object.js";export{sceneEntityControlComponent,isSceneEntityControlComponentSnapshot,isSceneEntityControlComponentInstance}from"./scene-entity-control.js";
@@ -1,5 +1,5 @@
1
1
  export * from './core/index.js';
2
- export { DomainBuilder } from './domain-builder.js';
2
+ export { DomainBuilder } from './domain-builder/index.js';
3
3
  export { memoEval, isMemoizedArray, isMemoizedObject, type MemoizedArray, type MemoizedObject, } from './utils/memo-eval.js';
4
4
  export { cloneEvalCache, getEvalCache, setEvalCache, type EvalCacheToken, createEvalCacheToken, } from './utils/eval-cache.js';
5
5
  export { areProfilerLabelsEnabled, setProfilerLabelsEnabled } from './utils/profiler-label.js';
@@ -13,6 +13,7 @@ export * from './admin-domain/index.js';
13
13
  export * from './application/index.js';
14
14
  export * from './scene/index.js';
15
15
  export { getAllPhxDefinitions } from './system-definitions.js';
16
- export { availableSystemComponents, componentsByName } from './available-system-components.js';
16
+ export { availableSystemComponents, componentsByName } from './available-system-components/index.js';
17
17
  export * from './mocks/index.js';
18
18
  export * from './domain-runtime/index.js';
19
+ export * from './spec/index.js';
@@ -1 +1 @@
1
- export*from"./core/index.js";export{DomainBuilder}from"./domain-builder.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./extensions/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";
1
+ export*from"./core/index.js";export{DomainBuilder}from"./domain-builder/index.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./extensions/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components/index.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";export*from"./spec/index.js";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The `$adminPages` section of an admin spec file as it is written, which the parsed admin pages
3
+ * keep as their `spec`. `application-spec` exports it as `RawAdminPages`, and the application
4
+ * config takes it as `AdminPagesSpec`.
5
+ */
6
+ export interface AdminPagesSection {
7
+ readonly presets?: boolean | {
8
+ readonly categoryNavigationState?: string;
9
+ readonly presetNavigationState?: string;
10
+ };
11
+ readonly recipes?: ReadonlyArray<{
12
+ readonly name: string;
13
+ readonly navigationState?: string;
14
+ }>;
15
+ readonly pages?: ReadonlyArray<{
16
+ readonly key: string;
17
+ readonly title: string;
18
+ readonly icon?: string;
19
+ readonly navigationState?: string;
20
+ readonly entity?: string;
21
+ readonly component?: string;
22
+ readonly actionsComponent?: string;
23
+ readonly connectedDataEntry?: string;
24
+ readonly sidebar?: {
25
+ readonly title: string;
26
+ readonly component: string;
27
+ };
28
+ }>;
29
+ }
@@ -0,0 +1,26 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { ComponentEntry } from '../components/index.js';
3
+ import type { AdminPagesSection } from './admin-pages-section.js';
4
+ /**
5
+ * The parsed admin pages of an admin spec: the `$adminPages` section as written, the components
6
+ * the pages attach, the items of the admin navigation and the navigation states the pages add.
7
+ */
8
+ export type AdminPages = Branded<'AdminPages', {
9
+ readonly spec: AdminPagesSection;
10
+ readonly components: readonly ComponentEntry[];
11
+ readonly navigationItems: readonly AdminNavigationItem[];
12
+ readonly navigationStates: readonly string[];
13
+ }>;
14
+ interface AdminNavigationListItem {
15
+ readonly label: string;
16
+ readonly icon?: string;
17
+ readonly navigationStates: readonly string[];
18
+ }
19
+ interface AdminNestedNavigationListItem {
20
+ readonly label: string;
21
+ readonly icon?: string;
22
+ readonly items: ReadonlyArray<Omit<AdminNavigationListItem, 'icon'>>;
23
+ }
24
+ /** One item of the admin navigation: a list item, or a nested list of them. */
25
+ export type AdminNavigationItem = AdminNavigationListItem | AdminNestedNavigationListItem;
26
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { StateValue } from '../sections/index.js';
3
+ export type AdminStates = Branded<'AdminStates', {
4
+ readonly navigationStates: readonly StateValue[];
5
+ }>;
@@ -0,0 +1,8 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { StateValue } from '../sections/index.js';
3
+ export type ConfiguratorStates = Branded<'ConfiguratorStates', {
4
+ readonly navigationStates: readonly StateValue[];
5
+ readonly viewStates: readonly StateValue[];
6
+ readonly toolStates: readonly StateValue[];
7
+ readonly exportStates: readonly StateValue[];
8
+ }>;
@@ -0,0 +1,5 @@
1
+ export type * from './admin-pages.js';
2
+ export type * from './admin-pages-section.js';
3
+ export type * from './admin-states.js';
4
+ export * from './application-instance.js';
5
+ export type * from './configurator-states.js';
@@ -0,0 +1 @@
1
+ export*from"./application-instance.js";
@@ -0,0 +1,2 @@
1
+ export type * from './read-binding.js';
2
+ export type * from './write-binding.js';
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,13 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ /**
3
+ * A validated `$read` dependency found anywhere in the component props tree.
4
+ * Used for memoEval dependency tracking — the target becomes `self.target` in generated code.
5
+ * Field targets are validated against the entity shape; expression targets ($-prefixed)
6
+ * are accepted without validation (they may be inferred during Phase C).
7
+ */
8
+ export type ComponentReadBinding = Branded<'ComponentReadBinding', {
9
+ /** The raw target string from `$read` (e.g. "height" or "$price"). */
10
+ readonly target: string;
11
+ /** Whether the target is an expression (starts with `$`) or a shape field. */
12
+ readonly isExpression: boolean;
13
+ }>;
@@ -0,0 +1,32 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ /**
3
+ * Runtime type assertion to emit in the write callback.
4
+ * Resolved from the target entity field's schema during parsing.
5
+ */
6
+ export type AssertionKind = {
7
+ readonly kind: 'declaredType';
8
+ readonly typeName: string;
9
+ } | {
10
+ readonly kind: 'declaredTypeId';
11
+ readonly referencedType: string;
12
+ } | {
13
+ readonly kind: 'primitive';
14
+ readonly assertFn: 'assertString' | 'assertNumber' | 'assertBoolean';
15
+ } | {
16
+ readonly kind: 'literal';
17
+ readonly value: null;
18
+ } | {
19
+ readonly kind: 'anyOf';
20
+ readonly assertions: readonly AssertionKind[];
21
+ } | {
22
+ readonly kind: 'none';
23
+ };
24
+ /**
25
+ * A validated `$write` or `$bind` mapping from a component state key to an entity field.
26
+ * Includes the resolved assertion kind for runtime type checking in the write callback.
27
+ */
28
+ export type ComponentWriteBinding = Branded<'ComponentWriteBinding', {
29
+ readonly propKey: string;
30
+ readonly entityField: string;
31
+ readonly assertion: AssertionKind;
32
+ }>;
@@ -1,9 +1,9 @@
1
1
  import type { Branded } from '@salsita-ai/common/utils';
2
- import type { SdkCodeRef } from '../../../core/index.js';
3
- import type { MemoEvalPlan, MemoEvalPlanInput } from '../expressions/memo-eval-plan.js';
2
+ import type { MemoEvalPlan, MemoEvalPlanInput } from '../expressions/index.js';
4
3
  import type { EntityOrAliasName, InstanceName } from '../model/index.js';
5
4
  import type { ComponentReadBinding, ComponentWriteBinding } from './bindings/index.js';
6
- import type { ComponentFilters } from './component-filter.js';
5
+ import type { ComponentFilters } from './component-filters.js';
6
+ import type { SdkCodeRef } from './sdk-code-ref.js';
7
7
  /**
8
8
  * Root-level `$read` variant — the entire instance state is driven by a single
9
9
  * `$read` at the root (components.md §"Root-Level $read"). No `resolvedProps`
@@ -0,0 +1 @@
1
+ export{};
@@ -17,7 +17,8 @@ export type FilterCriterion<T> = {
17
17
  readonly code: string;
18
18
  };
19
19
  /**
20
- * Parsed component filter controlling when the component is active. Two
20
+ * Parsed component filter controlling when the component is active, as the application spec
21
+ * declares it under `$filter`; `application-spec` exports it as `ComponentFilter`. Two
21
22
  * mutually-exclusive shapes:
22
23
  *
23
24
  * - `'gradual'` — zero or more per-criterion fields; compiles to one entry per
@@ -29,7 +30,7 @@ export type FilterCriterion<T> = {
29
30
  *
30
31
  * See `components.md §"Simple expression filter"` / `§"Declarative filter"`.
31
32
  */
32
- export type ComponentFilter = {
33
+ export type SpecComponentFilter = {
33
34
  readonly kind: 'gradual';
34
35
  readonly navigationStates?: FilterCriterion<readonly string[]>;
35
36
  readonly viewStates?: FilterCriterion<readonly string[]>;
@@ -0,0 +1,10 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { SpecComponentFilter } from './component-filter.js';
3
+ /**
4
+ * Validated set of `$filter` entries on a user-bound component instance. Each
5
+ * {@link SpecComponentFilter} represents one alternative filter condition; multiple
6
+ * entries arise from `$or`. Empty `items` means no filter is applied.
7
+ */
8
+ export type ComponentFilters = Branded<'ComponentFilters', {
9
+ readonly items: readonly SpecComponentFilter[];
10
+ }>;
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,4 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { ComponentEntry } from './component-entry.js';
3
+ /** Final merged components for a domain, including SDK/spec-derived entries. */
4
+ export type Components = Branded<'Components', readonly ComponentEntry[]>;
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,6 @@
1
+ export type * from './bindings/index.js';
2
+ export type * from './component-entry.js';
3
+ export * from './component-filter.js';
4
+ export type * from './component-filters.js';
5
+ export type * from './components.js';
6
+ export * from './sdk-code-ref.js';
@@ -0,0 +1,30 @@
1
+ import type { EvalMarker, MsgMarker } from '../markers/index.js';
2
+ /**
3
+ * A JSON-serialisable value augmented with Phoenix structural markers:
4
+ * `$msg` (i18n) and `$eval` (self-scoped code).
5
+ *
6
+ * Single shared shape across components, expressions, and defaults — lowered
7
+ * either to TypeScript source via `stringifyEnhancedJsonValue` or to a
8
+ * runtime value via `resolveEnhancedJsonValue`, both of `application-spec`.
9
+ *
10
+ * Which markers are allowed at a given slot is controlled by
11
+ * `EnhancedJsonValueCaps` of `application-spec`, not by the type — all markers parse
12
+ * identically, capability checks kick in at lowering time.
13
+ */
14
+ export type EnhancedJsonValue = string | number | boolean | null | MsgMarker | EvalMarker | EnhancedJsonArray | EnhancedJsonObject;
15
+ /** Array form of {@link EnhancedJsonValue} — extracted as a named interface so `z.lazy` can close the recursion. */
16
+ export interface EnhancedJsonArray extends ReadonlyArray<EnhancedJsonValue> {
17
+ }
18
+ /** Object form of {@link EnhancedJsonValue} — extracted for the same reason as {@link EnhancedJsonArray}. */
19
+ export interface EnhancedJsonObject {
20
+ readonly [key: string]: EnhancedJsonValue;
21
+ }
22
+ /** Runtime `self` accessor — shape-agnostic entity state. */
23
+ export type SelfAccessor = object;
24
+ /**
25
+ * Deterministic string key for a value — sorted object keys, JSON-encoded.
26
+ * Used by the expression runtime's reference store to preserve an evaluator when the
27
+ * underlying value is structurally unchanged (mirrors the content-hash pattern
28
+ * used for components).
29
+ */
30
+ export declare const canonicalEnhancedJsonValueKey: (value: EnhancedJsonValue) => string;
@@ -0,0 +1 @@
1
+ export const canonicalEnhancedJsonValueKey=r=>{let e=r=>{if(null===r||"object"!=typeof r)return r;if(Array.isArray(r))return r.map(e);let t={};for(let n of Object.keys(r).sort())t[n]=e(r[n]);return t};return JSON.stringify(e(r))};
@@ -0,0 +1 @@
1
+ export * from './enhanced-json-value.js';
@@ -0,0 +1 @@
1
+ export*from"./enhanced-json-value.js";
@@ -1,7 +1,9 @@
1
1
  import type { Branded } from '@salsita-ai/common/utils';
2
- import type { EnhancedJsonSchemaType, EnhancedJsonValue, SdkExpressionImplementation } from '../../../core/index.js';
2
+ import type { EnhancedJsonSchemaType } from '../../core/index.js';
3
+ import type { EnhancedJsonValue } from '../enhanced-json/index.js';
3
4
  import type { EntityOrAliasName, ExpressionName } from '../model/index.js';
4
5
  import type { MemoEvalPlan } from './memo-eval-plan.js';
6
+ import type { SdkExpressionImplementation } from './sdk-expression-implementation.js';
5
7
  /**
6
8
  * How an expression's runtime implementation is provided.
7
9
  * - `user`: implementation from `src/expressions/*.ts` (dynamic import)
@@ -22,8 +24,12 @@ export type ExpressionImplementation = {
22
24
  readonly value: EnhancedJsonValue;
23
25
  readonly plan: MemoEvalPlan;
24
26
  };
25
- /** A single parsed expression declaration. */
26
- export type Expression = Branded<'Expression', {
27
+ /**
28
+ * A single parsed expression declaration of the application spec: the entity or alias it belongs
29
+ * to, its name, its schemas and how its implementation is provided. `application-spec` exports it
30
+ * as `Expression`.
31
+ */
32
+ export type SpecExpression = Branded<'Expression', {
27
33
  readonly entityKey: EntityOrAliasName;
28
34
  readonly name: ExpressionName;
29
35
  /**
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,27 @@
1
+ import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { EntityOrAliasName, EntityTypeName, ExpressionName } from '../model/index.js';
3
+ import type { SpecExpression } from './expression.js';
4
+ import type { MemoEvalPlan } from './memo-eval-plan.js';
5
+ /**
6
+ * Resolved expressions for a single entity type. Holds the ordered list of
7
+ * shape source keys (entity itself + aliases it belongs to) — codegen appends
8
+ * `"Expressions"` to each key to reference the typed expression group.
9
+ */
10
+ export type EntityExpressions = Branded<'EntityExpressions', {
11
+ /** Entity/alias keys whose expressions this entity inherits. Codegen appends "Expressions" suffix. */
12
+ readonly shapeGroups: readonly EntityOrAliasName[];
13
+ }>;
14
+ /**
15
+ * Final merged expressions for a domain — user-declared + inferred.
16
+ * The internal `expressions` map groups by entity/alias for codegen/runtime lookups.
17
+ * `entityExpressions` provides per-entity alias expansion.
18
+ * `constants` projects the self-free `constants:` values, grouped like `expressions`;
19
+ * codegen passes them to the enhanced entity/alias reflections so they are readable at
20
+ * module level (`phx.domain.enhancedModel.$Wall.$maxWidth`). A constant whose plan uses
21
+ * `self` needs an instance, so it stays an ordinary value expression and is absent here.
22
+ */
23
+ export type Expressions = Branded<'Expressions', {
24
+ readonly expressions: ReadonlyMap<EntityOrAliasName, ReadonlyMap<ExpressionName, SpecExpression>>;
25
+ readonly entityExpressions: ReadonlyMap<EntityTypeName, EntityExpressions>;
26
+ readonly constants: ReadonlyMap<EntityOrAliasName, ReadonlyMap<ExpressionName, MemoEvalPlan>>;
27
+ }>;
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,5 @@
1
+ export type * from './expression.js';
2
+ export type * from './expressions.js';
3
+ export type * from './memo-eval-plan.js';
4
+ export type * from './relation-expression-params.js';
5
+ export * from './sdk-expression-implementation.js';