@salsita-ai/sdk 0.50.0-develop.b335a15889 → 0.50.0-develop.bc08a38ffe

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 (1120) hide show
  1. package/README.md +3 -3
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  4. package/dist/application-spec/core/components/component-filter.js +1 -0
  5. package/dist/application-spec/core/components/index.d.ts +2 -0
  6. package/dist/application-spec/core/components/index.js +1 -0
  7. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  8. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  9. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  10. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  11. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  12. package/dist/application-spec/core/expressions/index.js +1 -0
  13. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  14. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  15. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  16. package/dist/application-spec/core/index.d.ts +2 -0
  17. package/dist/application-spec/core/index.js +1 -1
  18. package/dist/application-spec/core/json-value.d.ts +1 -1
  19. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  20. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  21. package/dist/application-spec/enhanced-json/index.js +1 -0
  22. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  23. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  24. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  25. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  26. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  27. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  29. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  31. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  33. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  34. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  35. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  36. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  37. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  38. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  39. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  40. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  41. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  42. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  43. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  44. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  45. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  46. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  47. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  48. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  49. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  50. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  51. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  52. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  53. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  54. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  55. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  66. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  67. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  68. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -7
  69. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  71. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  72. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  73. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  74. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +16 -15
  75. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -9
  76. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +6 -5
  77. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  78. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +1 -3
  79. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +1 -3
  80. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  81. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  82. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  83. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  84. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  85. package/dist/application-spec/index.d.ts +1 -0
  86. package/dist/application-spec/index.js +1 -1
  87. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  88. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  89. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  90. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  91. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  92. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  93. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  94. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  95. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  96. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  97. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  98. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  99. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  100. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  101. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  102. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  103. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  104. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  105. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  106. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  108. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  109. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  110. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  111. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  112. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  113. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  114. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  115. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  116. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  117. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  118. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  119. package/dist/client/authorized-client.d.ts +3 -1
  120. package/dist/client/authorized-client.js +1 -1
  121. package/dist/client/contract.d.ts +34 -0
  122. package/dist/client/contract.js +1 -1
  123. package/dist/client/index.d.ts +2 -2
  124. package/dist/client/index.js +1 -1
  125. package/dist/client/local-authorized-client.d.ts +3 -1
  126. package/dist/client/local-authorized-client.js +1 -1
  127. package/dist/client/memory-authorized-client.d.ts +3 -1
  128. package/dist/client/memory-authorized-client.js +1 -1
  129. package/dist/client/phoenix-api.d.ts +311 -2
  130. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  131. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  132. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  133. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -3
  134. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  135. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  136. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +14 -4
  138. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  139. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  140. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  141. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  142. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  143. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  144. package/dist/configurator/common/configurator-interface.d.ts +11 -1
  145. package/dist/configurator/common/configurator-interface.js +1 -1
  146. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  147. package/dist/configurator/common/frontend-analytics.js +1 -1
  148. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  149. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  150. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  151. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  152. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  153. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  154. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  155. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  156. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  157. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  158. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  159. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  160. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  161. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  162. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  163. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  164. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  165. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  166. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  167. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  168. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  169. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  170. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  171. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  172. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  173. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  174. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  175. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  176. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  177. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  178. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  179. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  180. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  181. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  182. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  183. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  184. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  185. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  186. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  187. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  188. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  189. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  190. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  191. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  192. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  193. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  194. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  195. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  196. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  197. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  198. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  199. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  200. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  201. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  202. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  203. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  204. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  205. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  206. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  207. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  208. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  209. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  210. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  211. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  212. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  213. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  214. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  215. package/dist/docs/index.json +42 -1
  216. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  217. package/dist/docs/layouts/custom-layout.mdx +1164 -0
  218. package/dist/docs/layouts/custom-price.mdx +14 -16
  219. package/dist/docs/layouts/header/fixed.mdx +2 -2
  220. package/dist/docs/layouts/header/floating.mdx +2 -2
  221. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  222. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  223. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  224. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  225. package/dist/docs/other-features/domain-actions.mdx +1 -1
  226. package/dist/docs/other-features/side-effects.mdx +50 -45
  227. package/dist/docs/other-features/transformers.mdx +5 -1
  228. package/dist/docs/other-features/violation-messages.mdx +52 -56
  229. package/dist/docs/phoenix/admin.mdx +9 -24
  230. package/dist/docs/phoenix/application-states.mdx +9 -7
  231. package/dist/docs/phoenix/configurator-interface.mdx +184 -80
  232. package/dist/docs/phoenix/deployments.mdx +1 -1
  233. package/dist/docs/phoenix/domain-model.mdx +4 -0
  234. package/dist/docs/phoenix/expression-context.mdx +11 -3
  235. package/dist/docs/phoenix/finalization.mdx +1 -1
  236. package/dist/docs/phoenix/getting-started.mdx +1 -1
  237. package/dist/docs/phoenix/layout-slots.mdx +114 -0
  238. package/dist/docs/phoenix/localization.mdx +3 -22
  239. package/dist/docs/phoenix/phoenix-cli.mdx +48 -48
  240. package/dist/docs/phoenix/project-structure.mdx +23 -10
  241. package/dist/docs/phoenix/quickstart.mdx +2 -2
  242. package/dist/docs/phoenix/sdk-builder-workflow.mdx +8 -8
  243. package/dist/docs/phoenix/testing.mdx +140 -0
  244. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  245. package/dist/docs/phoenix/webhooks.mdx +2 -2
  246. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  247. package/dist/docs/relations/hierarchy.mdx +13 -2
  248. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  249. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  250. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  251. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  252. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  253. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  254. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  255. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  256. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  257. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  258. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  259. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  260. package/dist/domain/admin-domain/index.d.ts +9 -5
  261. package/dist/domain/admin-domain/index.js +1 -1
  262. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  263. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  264. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  265. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  266. package/dist/domain/application/application-config.d.ts +26 -35
  267. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  268. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  269. package/dist/domain/application/assistant/assistant-manifest.d.ts +11 -1
  270. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  271. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  272. package/dist/domain/application/assistant/assistant-value-type.js +1 -1
  273. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  274. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  275. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  276. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  277. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  278. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -11
  279. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  280. package/dist/domain/application/assistant/index.d.ts +6 -1
  281. package/dist/domain/application/assistant/index.js +1 -1
  282. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  283. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  284. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  285. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  286. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  287. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  288. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  289. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  290. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  291. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  292. package/dist/domain/application/assistant-field-options.d.ts +1 -2
  293. package/dist/domain/application/assistant-mutations.d.ts +2 -4
  294. package/dist/domain/application/assistant-mutations.js +1 -1
  295. package/dist/domain/application/assistant-recipe-groups.d.ts +2 -6
  296. package/dist/domain/application/configurator-builder.d.ts +31 -17
  297. package/dist/domain/application/configurator-builder.js +1 -1
  298. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  299. package/dist/domain/application/index.d.ts +2 -6
  300. package/dist/domain/application/index.js +1 -1
  301. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  302. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  303. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  304. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  305. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  306. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  307. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  308. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  309. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  310. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  311. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  312. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  313. package/dist/domain/available-system-components.js +1 -1
  314. package/dist/domain/core/action/action-factory.d.ts +11 -0
  315. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  316. package/dist/domain/core/action/index.d.ts +2 -0
  317. package/dist/domain/core/action/index.js +1 -0
  318. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  319. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  320. package/dist/domain/core/component/debug-state-component.js +1 -0
  321. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  322. package/dist/domain/core/component/domain-component-optic.js +16 -0
  323. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  324. package/dist/domain/core/component/drag-state-component.js +1 -0
  325. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  326. package/dist/domain/core/component/export-state-component.js +1 -0
  327. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  328. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  329. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  330. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  331. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  332. package/dist/domain/core/component/hover-state-component.js +1 -0
  333. package/dist/domain/core/component/index.d.ts +18 -0
  334. package/dist/domain/core/component/index.js +1 -0
  335. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  336. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  337. package/dist/domain/core/component/navigation-state-component.js +1 -0
  338. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  339. package/dist/domain/core/component/selection-state-component.js +1 -0
  340. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  341. package/dist/domain/core/component/system-component-builder.js +1 -0
  342. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  343. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  344. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  345. package/dist/domain/core/component/tool-state-component.js +1 -0
  346. package/dist/domain/{components → core/component}/updates.d.ts +1 -2
  347. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  348. package/dist/domain/core/component/view-state-component.js +1 -0
  349. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  350. package/dist/domain/core/component/viewport-state-component.js +1 -0
  351. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  352. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  353. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  354. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  355. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  356. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  357. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  358. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  359. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  360. package/dist/domain/core/data-schema/data-schema.js +1 -0
  361. package/dist/domain/core/data-schema/index.d.ts +7 -0
  362. package/dist/domain/core/data-schema/index.js +1 -0
  363. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  364. package/dist/domain/core/decoder/create-decoder.js +1 -0
  365. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  366. package/dist/domain/core/decoder/decoder.js +1 -0
  367. package/dist/domain/core/decoder/index.d.ts +2 -0
  368. package/dist/domain/core/decoder/index.js +1 -0
  369. package/dist/domain/core/domain-factory.d.ts +4 -5
  370. package/dist/domain/core/domain-factory.js +1 -1
  371. package/dist/domain/core/domain.d.ts +4 -5
  372. package/dist/domain/core/domain.js +1 -1
  373. package/dist/domain/core/emission/index.d.ts +8 -0
  374. package/dist/domain/core/emission/index.js +1 -0
  375. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  376. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  377. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  378. package/dist/domain/core/emission/state-emission.js +1 -0
  379. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  380. package/dist/domain/core/emission/state-update-emission.js +1 -0
  381. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  382. package/dist/domain/core/emission/state-validation-result.js +1 -0
  383. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  384. package/dist/domain/core/emission/transformation-log.js +1 -0
  385. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  386. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  387. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  388. package/dist/domain/core/emission/transformer-log.js +1 -0
  389. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  390. package/dist/domain/core/emission/transformer-phase.js +1 -0
  391. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  392. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  393. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  394. package/dist/domain/core/expression/constant-expressions.js +1 -0
  395. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  396. package/dist/domain/core/expression/custom-expression.js +1 -0
  397. package/dist/domain/core/expression/expression.d.ts +46 -0
  398. package/dist/domain/core/expression/expression.js +1 -0
  399. package/dist/domain/core/expression/index.d.ts +4 -0
  400. package/dist/domain/core/expression/index.js +1 -0
  401. package/dist/domain/core/index.d.ts +13 -17
  402. package/dist/domain/core/index.js +1 -1
  403. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  404. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  405. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  406. package/dist/domain/core/invariant/index.d.ts +5 -0
  407. package/dist/domain/core/invariant/index.js +1 -0
  408. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  409. package/dist/domain/core/invariant/invariants.js +1 -0
  410. package/dist/domain/core/invariant/violation-component.js +1 -0
  411. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  412. package/dist/domain/core/invariant/violation.js +1 -0
  413. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  414. package/dist/domain/core/model/index.d.ts +6 -0
  415. package/dist/domain/core/model/index.js +1 -0
  416. package/dist/domain/core/{model.d.ts → model/model.d.ts} +1 -1
  417. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  418. package/dist/domain/core/model/reflection.js +1 -0
  419. package/dist/domain/core/recipe/index.d.ts +1 -0
  420. package/dist/domain/core/recipe/index.js +1 -0
  421. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  422. package/dist/domain/core/recipe/recipes.js +1 -0
  423. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  424. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  425. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  426. package/dist/domain/core/relation/component-factories.js +1 -0
  427. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  428. package/dist/domain/core/relation/composed-of.js +1 -0
  429. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  430. package/dist/domain/core/relation/index.d.ts +8 -0
  431. package/dist/domain/core/relation/index.js +1 -0
  432. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  433. package/dist/domain/core/relation/indirect-relation.js +1 -0
  434. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  435. package/dist/domain/core/relation/reference-component.js +1 -0
  436. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  437. package/dist/domain/core/relation/reference-field.js +1 -0
  438. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  439. package/dist/domain/core/relation/relation-factory.js +1 -0
  440. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  441. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  442. package/dist/domain/core/schema/index.d.ts +3 -0
  443. package/dist/domain/core/schema/index.js +1 -0
  444. package/dist/domain/core/schema/schema-validator.js +1 -0
  445. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  446. package/dist/domain/core/state/id-sequence.js +1 -0
  447. package/dist/domain/core/state/index.d.ts +3 -0
  448. package/dist/domain/core/state/index.js +1 -0
  449. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  450. package/dist/domain/core/state/migrations.js +1 -0
  451. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  452. package/dist/domain/domain-builder.d.ts +11 -11
  453. package/dist/domain/domain-builder.js +1 -1
  454. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  455. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  456. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  457. package/dist/domain/domain-context/action-system/index.js +1 -0
  458. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  459. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  460. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  461. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  462. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  463. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  464. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  465. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  466. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  467. package/dist/domain/domain-context/index.d.ts +8 -18
  468. package/dist/domain/domain-context/index.js +1 -1
  469. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  470. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  471. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  472. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  473. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  474. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  475. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  476. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  477. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  478. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  479. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  480. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  481. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  482. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  483. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  484. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  485. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  486. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  487. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  488. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  489. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  490. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  491. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  492. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  493. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  494. package/dist/domain/domain-context/store-system/index.js +1 -0
  495. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  496. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  497. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  498. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  499. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  500. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  501. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  502. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  503. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  504. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  505. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  506. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  507. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  508. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  509. package/dist/domain/domain-context/transformers/context.js +1 -1
  510. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  511. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  512. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  513. package/dist/domain/domain-context/transformers/index.js +1 -1
  514. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  515. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  516. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  517. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  518. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  519. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  520. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  521. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  522. package/dist/domain/domain-runtime/access/types.js +1 -1
  523. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  524. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  525. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  526. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  527. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  528. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  529. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  530. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  531. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  532. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  533. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  534. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  535. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  536. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  537. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  538. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  539. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  540. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  541. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  542. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  543. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  544. package/dist/domain/domain-runtime/errors/index.js +1 -0
  545. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  546. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  547. package/dist/domain/domain-runtime/index.d.ts +1 -0
  548. package/dist/domain/domain-runtime/index.js +1 -1
  549. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  550. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  551. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  552. package/dist/domain/domain-runtime/spec/index.js +1 -1
  553. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  554. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  555. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  556. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  557. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  558. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  559. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  560. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  561. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  562. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  563. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  564. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  565. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  566. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  567. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  568. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  569. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  570. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  571. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  572. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  573. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  574. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  575. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  576. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  577. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  578. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  579. package/dist/domain/domain-runtime/spec/types.d.ts +4 -4
  580. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  581. package/dist/domain/extensions/angle-indicator.js +1 -0
  582. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  583. package/dist/domain/extensions/attribute-switch.js +1 -0
  584. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  585. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  586. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  587. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  588. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  589. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  590. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +2 -2
  591. package/dist/domain/extensions/canvas-config.js +1 -0
  592. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  593. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  594. package/dist/domain/extensions/canvas-padding.js +1 -0
  595. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  596. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  597. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  598. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  599. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  600. package/dist/domain/extensions/client-side-image.js +1 -0
  601. package/dist/domain/extensions/color-value.js +1 -0
  602. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  603. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  604. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +3 -3
  605. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  606. package/dist/domain/extensions/common/index.d.ts +4 -0
  607. package/dist/domain/extensions/common/index.js +1 -0
  608. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  609. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  610. package/dist/domain/extensions/custom-price-footer.js +1 -0
  611. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  612. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  613. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  614. package/dist/domain/extensions/dimension-indicator.js +1 -0
  615. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +4 -3
  616. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  617. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +4 -3
  618. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  619. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +4 -3
  620. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  621. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  622. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  623. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  624. package/dist/domain/extensions/entity-header.js +1 -0
  625. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  626. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  627. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  628. package/dist/domain/extensions/finalize-action.js +1 -0
  629. package/dist/domain/extensions/finalize-component.js +1 -0
  630. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  631. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  632. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  633. package/dist/domain/extensions/fixed-header.js +1 -0
  634. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  635. package/dist/domain/extensions/floating-header.js +1 -0
  636. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  637. package/dist/domain/extensions/hidden-header.js +1 -0
  638. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  639. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  640. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +3 -3
  641. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  642. package/dist/domain/extensions/index.d.ts +69 -0
  643. package/dist/domain/extensions/index.js +1 -0
  644. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +4 -3
  645. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  646. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  647. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  648. package/dist/domain/extensions/navigation-steps.js +1 -0
  649. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  650. package/dist/domain/extensions/offset-anchors.js +1 -0
  651. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  652. package/dist/domain/extensions/offset-indicator.js +1 -0
  653. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  654. package/dist/domain/extensions/offset.js +1 -0
  655. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  656. package/dist/domain/extensions/other-action.js +1 -0
  657. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  658. package/dist/domain/extensions/property-page.js +1 -0
  659. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  660. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  661. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  662. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  663. package/dist/domain/extensions/rotatable.js +1 -0
  664. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  665. package/dist/domain/extensions/rotation-handle.js +1 -0
  666. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  667. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  668. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  669. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  670. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  671. package/dist/domain/extensions/scene-entity-control.js +1 -0
  672. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  673. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  674. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  675. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  676. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  677. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  678. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  679. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  680. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  681. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  682. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  683. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  684. package/dist/domain/extensions/selectable-component.js +1 -0
  685. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  686. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  687. package/dist/domain/extensions/simple-summary.js +1 -0
  688. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  689. package/dist/domain/extensions/size.js +1 -0
  690. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  691. package/dist/domain/extensions/sketching-draw.js +1 -0
  692. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  693. package/dist/domain/extensions/sketching-edit.js +1 -0
  694. package/dist/domain/extensions/summary-component.js +1 -0
  695. package/dist/domain/extensions/text-value.js +1 -0
  696. package/dist/domain/extensions/tool-controls.js +1 -0
  697. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  698. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  699. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  700. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  701. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  702. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  703. package/dist/domain/extensions/view-controls.js +1 -0
  704. package/dist/domain/index.d.ts +2 -32
  705. package/dist/domain/index.js +1 -1
  706. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  707. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  708. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  709. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  710. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  711. package/dist/domain/mocks/create-mock-domain.js +1 -1
  712. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  713. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  714. package/dist/domain/mocks/create-test-application-config.js +1 -0
  715. package/dist/domain/mocks/index.d.ts +1 -0
  716. package/dist/domain/mocks/index.js +1 -1
  717. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  718. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  719. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  720. package/dist/domain/projections/collision-projections.d.ts +1 -1
  721. package/dist/domain/projections/composition-projections.d.ts +1 -1
  722. package/dist/domain/projections/composition-projections.js +1 -1
  723. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  724. package/dist/domain/projections/index.d.ts +1 -1
  725. package/dist/domain/projections/position-projections.d.ts +1 -1
  726. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  727. package/dist/domain/projections/snap-matching.d.ts +1 -2
  728. package/dist/domain/projections/snap-utils.d.ts +1 -2
  729. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  730. package/dist/domain/projections/validation-projections.d.ts +3 -20
  731. package/dist/domain/projections/validation-projections.js +1 -1
  732. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  733. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  734. package/dist/domain/system-components/admin-sidebar.js +1 -1
  735. package/dist/domain/system-components/angle-dimension.js +1 -1
  736. package/dist/domain/system-components/application-config.d.ts +3 -3
  737. package/dist/domain/system-components/application-config.js +1 -1
  738. package/dist/domain/system-components/attribute-selection.js +1 -1
  739. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  740. package/dist/domain/system-components/bounding-box-component.js +1 -1
  741. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  742. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  743. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  744. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  745. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  746. package/dist/domain/system-components/child-entity-selection.js +1 -1
  747. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  748. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  749. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  750. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  751. package/dist/domain/system-components/collision-geometry.js +1 -1
  752. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  753. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  754. package/dist/domain/system-components/common/index.d.ts +0 -4
  755. package/dist/domain/system-components/common/index.js +1 -1
  756. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  757. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  758. package/dist/domain/system-components/common/recipes.js +1 -1
  759. package/dist/domain/system-components/constraint.d.ts +11 -24
  760. package/dist/domain/system-components/constraint.js +1 -1
  761. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  762. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  763. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  764. package/dist/domain/system-components/detail.js +1 -1
  765. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  766. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  767. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  768. package/dist/domain/system-components/distance-dimension.js +1 -1
  769. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  770. package/dist/domain/system-components/drag-handle.js +1 -1
  771. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  772. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  773. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  774. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  775. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  776. package/dist/domain/system-components/generic-dimension.js +1 -1
  777. package/dist/domain/system-components/hidden-entity.js +1 -1
  778. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  779. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  780. package/dist/domain/system-components/index.d.ts +0 -68
  781. package/dist/domain/system-components/index.js +1 -1
  782. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  783. package/dist/domain/system-components/material-override-transformer.js +1 -1
  784. package/dist/domain/system-components/material-swatch.js +1 -1
  785. package/dist/domain/system-components/navigation-page.js +1 -1
  786. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  787. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  788. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  789. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  790. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  791. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  792. package/dist/domain/system-components/pivot-point.js +1 -1
  793. package/dist/domain/system-components/price.js +1 -1
  794. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  795. package/dist/domain/system-components/projected-entities.js +1 -1
  796. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  797. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  798. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  799. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  800. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  801. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  802. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  803. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  804. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  805. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  806. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  807. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  808. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  809. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  810. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  811. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  812. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  813. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  814. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  815. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  816. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  817. package/dist/domain/system-components/scene-entity-object.js +1 -1
  818. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  819. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  820. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  821. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  822. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  823. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  824. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  825. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  826. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  827. package/dist/domain/system-components/sketching-line.js +1 -1
  828. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  829. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  830. package/dist/domain/system-components/sketching.d.ts +1 -1
  831. package/dist/domain/system-components/sketching.js +1 -1
  832. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  833. package/dist/domain/system-components/snap-axis.js +1 -1
  834. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  835. package/dist/domain/system-components/snap-edge.js +1 -1
  836. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  837. package/dist/domain/system-components/snap-plane.js +1 -1
  838. package/dist/domain/system-components/snap-point.d.ts +1 -1
  839. package/dist/domain/system-components/snap-point.js +1 -1
  840. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  841. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  842. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  843. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  844. package/dist/domain/utils/eval-cache.d.ts +2 -3
  845. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  846. package/dist/domain/utils/memo-eval.d.ts +2 -4
  847. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  848. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  849. package/dist/editor/mocks/EditorMockContext.js +1 -1
  850. package/dist/i18n/locales/cs/messages.js +1 -1
  851. package/dist/i18n/locales/da/messages.js +1 -1
  852. package/dist/i18n/locales/de/messages.js +1 -1
  853. package/dist/i18n/locales/de-AT/messages.js +1 -1
  854. package/dist/i18n/locales/en/messages.js +1 -1
  855. package/dist/i18n/locales/en-AU/messages.js +1 -1
  856. package/dist/i18n/locales/en-GB/messages.js +1 -1
  857. package/dist/i18n/locales/es/messages.js +1 -1
  858. package/dist/i18n/locales/fr/messages.js +1 -1
  859. package/dist/i18n/locales/hu/messages.js +1 -1
  860. package/dist/i18n/locales/it/messages.js +1 -1
  861. package/dist/i18n/locales/nl/messages.js +1 -1
  862. package/dist/i18n/locales/pl/messages.js +1 -1
  863. package/dist/i18n/locales/pt/messages.js +1 -1
  864. package/dist/i18n/locales/ro/messages.js +1 -1
  865. package/dist/i18n/locales/sk/messages.js +1 -1
  866. package/dist/i18n/locales/tr/messages.js +1 -1
  867. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  868. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  869. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  870. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  871. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  872. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  873. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  874. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  875. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +81 -68
  876. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  877. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  878. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  879. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +2 -0
  880. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  881. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  882. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  883. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  884. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  885. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  886. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  887. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  888. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  889. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  890. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  891. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  892. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  893. package/dist/phoenix/commands/deploy.js +1 -1
  894. package/dist/phoenix/commands/init.d.ts +4 -4
  895. package/dist/phoenix/commands/init.js +1 -1
  896. package/dist/phoenix/commands/prettier.js +1 -1
  897. package/dist/phoenix/scripts/build-admin.js +1 -1
  898. package/dist/phoenix/services/source-archive.d.ts +1 -0
  899. package/dist/phoenix/services/source-archive.js +1 -1
  900. package/dist/phoenix/utils/git/index.d.ts +1 -0
  901. package/dist/phoenix/utils/git/index.js +1 -0
  902. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  903. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  904. package/dist/phoenix/utils/index.d.ts +1 -0
  905. package/dist/phoenix/utils/index.js +1 -1
  906. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  907. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  908. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  909. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  910. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  911. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  912. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  913. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  914. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  915. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  916. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  917. package/dist/react-sdk/domain-context/index.js +1 -1
  918. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +6 -0
  919. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  920. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  921. package/dist/ui-sdk/theme/types.d.ts +1 -1
  922. package/dist/webhook/builders/common.d.ts +5 -0
  923. package/dist/webhook/builders/webhook-builder.js +1 -1
  924. package/package.json +3 -3
  925. package/schema/domain-spec.json +1115 -209
  926. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  927. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  928. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  929. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  930. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  931. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  932. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  933. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  934. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  935. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  936. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  937. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  938. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  939. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  940. package/dist/domain/actions/action-factory.d.ts +0 -10
  941. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  942. package/dist/domain/application/element-registration.js +0 -1
  943. package/dist/domain/application/handler-registration.js +0 -1
  944. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  945. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  946. package/dist/domain/application/resource-builder.d.ts +0 -13
  947. package/dist/domain/application/resource-builder.js +0 -1
  948. package/dist/domain/components/debug-state-component.js +0 -1
  949. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  950. package/dist/domain/components/domain-component-optic.js +0 -16
  951. package/dist/domain/components/drag-state-component.js +0 -1
  952. package/dist/domain/components/export-state-component.js +0 -1
  953. package/dist/domain/components/fullscreen-state-component.js +0 -1
  954. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  955. package/dist/domain/components/hover-state-component.js +0 -1
  956. package/dist/domain/components/index.d.ts +0 -2
  957. package/dist/domain/components/index.js +0 -1
  958. package/dist/domain/components/navigation-state-component.js +0 -1
  959. package/dist/domain/components/selection-state-component.js +0 -1
  960. package/dist/domain/components/system-component-builder.js +0 -1
  961. package/dist/domain/components/system-virtual-entity.js +0 -1
  962. package/dist/domain/components/tool-state-component.js +0 -1
  963. package/dist/domain/components/view-state-component.js +0 -1
  964. package/dist/domain/components/viewport-state-component.js +0 -1
  965. package/dist/domain/core/expression.d.ts +0 -50
  966. package/dist/domain/core/json-schema.js +0 -1
  967. package/dist/domain/core/migrations.js +0 -1
  968. package/dist/domain/core/reflection.js +0 -1
  969. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  970. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  971. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  972. package/dist/domain/expressions/constant-expressions.js +0 -1
  973. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  974. package/dist/domain/expressions/custom-expression.js +0 -1
  975. package/dist/domain/expressions/index.d.ts +0 -1
  976. package/dist/domain/expressions/index.js +0 -1
  977. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  978. package/dist/domain/invariants/custom-invariants.js +0 -1
  979. package/dist/domain/invariants/invariants.d.ts +0 -68
  980. package/dist/domain/invariants/invariants.js +0 -1
  981. package/dist/domain/invariants/violation-component.js +0 -1
  982. package/dist/domain/invariants/violation.js +0 -1
  983. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  984. package/dist/domain/relations/all-of-type-relation.js +0 -1
  985. package/dist/domain/relations/component-factories.js +0 -1
  986. package/dist/domain/relations/composed-of.js +0 -1
  987. package/dist/domain/relations/direct-relation.d.ts +0 -29
  988. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  989. package/dist/domain/relations/indirect-relation.js +0 -1
  990. package/dist/domain/relations/reference-component.js +0 -1
  991. package/dist/domain/relations/relation-factory.d.ts +0 -19
  992. package/dist/domain/relations/relation-factory.js +0 -1
  993. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  994. package/dist/domain/system-components/angle-indicator.js +0 -1
  995. package/dist/domain/system-components/attribute-switch.js +0 -1
  996. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  997. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  998. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  999. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1000. package/dist/domain/system-components/canvas-config.js +0 -1
  1001. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1002. package/dist/domain/system-components/canvas-padding.js +0 -1
  1003. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1004. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1005. package/dist/domain/system-components/client-side-image.js +0 -1
  1006. package/dist/domain/system-components/color-value.js +0 -1
  1007. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1008. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1009. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1010. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1011. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1012. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1013. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1014. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1015. package/dist/domain/system-components/entity-header.js +0 -1
  1016. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1017. package/dist/domain/system-components/finalize-action.js +0 -1
  1018. package/dist/domain/system-components/finalize-component.js +0 -1
  1019. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1020. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1021. package/dist/domain/system-components/fixed-header.js +0 -1
  1022. package/dist/domain/system-components/floating-header.js +0 -1
  1023. package/dist/domain/system-components/hidden-header.js +0 -1
  1024. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1025. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1026. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1027. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1028. package/dist/domain/system-components/navigation-steps.js +0 -1
  1029. package/dist/domain/system-components/offset-anchors.js +0 -1
  1030. package/dist/domain/system-components/offset-indicator.js +0 -1
  1031. package/dist/domain/system-components/offset.js +0 -1
  1032. package/dist/domain/system-components/other-action.js +0 -1
  1033. package/dist/domain/system-components/property-page.js +0 -1
  1034. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1035. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1036. package/dist/domain/system-components/rotatable.js +0 -1
  1037. package/dist/domain/system-components/rotation-handle.js +0 -1
  1038. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1039. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1040. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1041. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1042. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1043. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1044. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1045. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1046. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1047. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1048. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1049. package/dist/domain/system-components/selectable-component.js +0 -1
  1050. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1051. package/dist/domain/system-components/simple-summary.js +0 -1
  1052. package/dist/domain/system-components/size.js +0 -1
  1053. package/dist/domain/system-components/sketching-draw.js +0 -1
  1054. package/dist/domain/system-components/sketching-edit.js +0 -1
  1055. package/dist/domain/system-components/summary-component.js +0 -1
  1056. package/dist/domain/system-components/text-value.js +0 -1
  1057. package/dist/domain/system-components/tool-controls.js +0 -1
  1058. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1059. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1060. package/dist/domain/system-components/view-controls.js +0 -1
  1061. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1062. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1063. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1064. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1065. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1066. /package/dist/domain/core/{action.js → action/action.js} +0 -0
  1067. /package/dist/domain/core/{enhanced-json-schema.js → component/component-reader-types.js} +0 -0
  1068. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1069. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1070. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1071. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1072. /package/dist/domain/core/{expression.js → data-schema/data-cell-value.js} +0 -0
  1073. /package/dist/domain/core/{schema-validator.js → data-schema/data-schema-array-field.js} +0 -0
  1074. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-field-object.js} +0 -0
  1075. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field.js} +0 -0
  1076. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1077. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1078. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1079. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1080. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1081. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1082. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1083. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1084. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1085. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1086. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1087. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1088. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1089. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1090. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1091. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1092. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1093. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1094. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1095. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1096. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1097. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1098. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1099. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1100. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1101. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1102. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1103. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1104. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1105. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1106. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1107. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1108. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1109. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1110. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1111. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1112. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1113. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1114. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1115. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1116. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1117. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1118. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1119. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1120. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as n}from"../model/index.js";import{Relation as f}from"./relation.js";let l=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,n]of Object.entries(i))if(n.kind===o&&n.target===e&&("allOfType"===t.kind||"allOfType"===n.kind||t.field===n.field))return{entityKey:t.target,name:r,relation:n}},T=(e,t)=>{let r=t.aliases.get(e);return r||[e]};export const Relations=(O,N,E)=>{let{allNames:I,resolvedShapes:_}=N,a=[...I].map(String),s=(e,t)=>n(_,e).fieldSchemas.has(t),d={};for(let[e,n]of Object.entries(O)){let l=E.at(e);if(!I.has(e)){l.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,a));continue}for(let[T,O]of Object.entries(n)){if(!o(T,l))continue;if(!I.has(O.target)){l.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,T,O.target,a));continue}if("direct"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,e));continue}if(!s(e,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,T,O.field));continue}}else if("indirect"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,O.target));continue}if(!s(O.target,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,T,O.field,O.target));continue}}let n=f(T,O,e,N.aliases,l);n&&(d[e]||(d[e]={}),d[e][n.name]=n)}}for(let[e,i]of Object.entries(d)){let o=E.at(e);for(let[n,f]of Object.entries(i)){if(f.target===e)continue;let i=l(e,f,d);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,n,f.kind,f.target,"allOfType"===f.kind?void 0:f.field,f.composedOf));continue}f.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,n,i.entityKey,i.name))}}((e,i,o)=>{let n=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=T(t,i),o=T(e.target,i);for(let e of r){let t=n.get(e);for(let r of(t||(t=new Set,n.set(e,t)),o))t.add(r)}}let f=new Set(i.rootEntityTypes),l=[...i.rootEntityTypes];for(;l.length>0;){let e=l.shift(),t=n.get(e);if(t)for(let e of t)f.has(e)||(f.add(e),l.push(e))}let O=i.rootEntityTypes.map(String);for(let e of i.entityTypes)f.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),O))})(d,N,E);let{components:R,expressions:c}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(d);return e({entries:d,components:R,expressions:c})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as E}from"../model/index.js";import{referenceFieldType as n}from"./reference-field-type.js";import{relationFieldMismatch as f}from"./relation-field-mismatch.js";import{Relation as l}from"./relation.js";let T=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,E]of Object.entries(i))if(E.kind===o&&E.target===e&&("allOfType"===t.kind||"allOfType"===E.kind||t.field===E.field))return{entityKey:t.target,name:r,relation:E}},N=(e,t)=>{let r=t.aliases.get(e);return r||[e]},a=(e,i,o)=>{let{entityKey:E,relationName:n,field:f,fieldOwner:l,related:T,relatedEntityTypes:N,cardinality:a}=i;switch(e.kind){case"notReference":o.error(t.RELATION_FIELD_NOT_REFERENCE,r.RELATION_FIELD_NOT_REFERENCE(E,n,f,l));break;case"otherEntityTypes":o.error(t.RELATION_FIELD_REFERENCES_OTHER_TYPES,r.RELATION_FIELD_REFERENCES_OTHER_TYPES(E,n,f,l,e.referenced,T,N));break;case"cardinality":o.error(t.RELATION_FIELD_CARDINALITY_MISMATCH,r.RELATION_FIELD_CARDINALITY_MISMATCH(E,n,f,a,e.shape,e.required))}};export const Relations=(O,_,I,s)=>{let{allNames:d,resolvedShapes:R}=_,c=[...d].map(String),L=(e,t)=>E(R,e).fieldSchemas.has(t),A={};for(let[e,T]of Object.entries(O)){let O=s.at(e);if(!d.has(e)){O.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,c));continue}for(let[s,p]of Object.entries(T)){if(!o(s,O))continue;if(!d.has(p.target)){O.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,s,p.target,c));continue}if("direct"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,e));continue}if(!L(e,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,s,p.field));continue}}else if("indirect"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,p.target));continue}if(!L(p.target,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,s,p.field,p.target));continue}}if("allOfType"!==p.kind){let[t,r]="direct"===p.kind?[e,p.target]:[p.target,e],i=N(r,_).map(String),o=N(t,_).flatMap(e=>{let t=E(R,e).fieldSchemas.get(p.field);return t?[n(t,_,I)]:[]}),l=f(p,o,i);l&&a(l,{entityKey:e,relationName:s,field:p.field,fieldOwner:t,related:r,relatedEntityTypes:i,cardinality:p.cardinality},O.at(s))}let T=l(s,p,e,_.aliases,O);T&&(A[e]||(A[e]={}),A[e][T.name]=T)}}for(let[e,i]of Object.entries(A)){let o=s.at(e);for(let[E,n]of Object.entries(i)){if(n.target===e)continue;let i=T(e,n,A);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,E,n.kind,n.target,"allOfType"===n.kind?void 0:n.field,n.composedOf));continue}n.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,E,i.entityKey,i.name))}}((e,i,o)=>{let E=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=N(t,i),o=N(e.target,i);for(let e of r){let t=E.get(e);for(let r of(t||(t=new Set,E.set(e,t)),o))t.add(r)}}let n=new Set(i.rootEntityTypes),f=[...i.rootEntityTypes];for(;f.length>0;){let e=f.shift(),t=E.get(e);if(t)for(let e of t)n.has(e)||(n.add(e),f.push(e))}let l=i.rootEntityTypes.map(String);for(let e of i.entityTypes)n.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),l))})(A,_,s);let{components:p,expressions:m}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(A);return e({entries:A,components:p,expressions:m})};
@@ -1 +1 @@
1
- import{isArray as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"#package/domain";import{DiagnosticCode as r,diagnosticMessages as i}from"../../../../errors/index.js";import{ASSISTANT_HINTS as n}from"../../../raw-spec/index.js";import{createSchemaRefResolver as s,isNullableSchema as o,phxDefinitionRefName as a}from"../../common/index.js";import{resolveAssistantFieldType as l}from"./assistant-field-type.js";let p="AnyDomainEntity",S={section:"childRecipes",component:"childEntityRecipes",mutation:"addChild"},N={section:"replaceRecipes",component:"replaceEntityRecipes",mutation:"replaceEntity"},T=new Set(["id","type","meta"]),d=new Set(["Query","Mutation","Navigation","RecipeGroup","Recipe","DryRun","DryRunError","FieldOption","JSON","String","Int","Float","Boolean","ID"]),c=(e,t)=>{if(!t||0===t.length)return e;let r=`One of: ${t.map(e=>`"${e}"`).join(", ")}.`;return e?/[.!?]$/.test(e)?`${e} ${r}`:`${e}. ${r}`:r},f=new Set(["id","type"]),m="The raw stored value: a string, a message descriptor or a multilingual object.",A=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],u=(e,t,{model:r,components:i})=>{let n=new Set([e,...[...r.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]);return i.filter(({componentName:e,typeOrAlias:r})=>e===t&&n.has(r)).map(({instanceName:e})=>String(e))},_=(...e)=>n.filter(t=>e.some(e=>e?.includes(t))),E=(e,t,n,s)=>{let{model:o}=n,a=new Map,l=new Map;for(let[p,{groups:S,hints:N}]of Object.entries(e)){let e=o.entityTypes.find(e=>e===p),T=e?[e]:[...o.aliases].find(([e])=>e===p)?.[1];if(!T){s.at(p).error(r.ASSISTANT_UNKNOWN_TYPE,i.ASSISTANT_UNKNOWN_TYPE(t.section,p));continue}for(let[e,o]of(T.forEach(e=>l.set(e,_(l.get(e),N))),Object.entries(S))){let l=s.at(p,"groups",e),S=`${p}.groups.${e}`,N={groupId:o?.as??e,instanceName:e,...o?.description===void 0?{}:{description:o.description},dryRuns:o?.allowDryRuns??!0};for(let s of T){let o=u(s,t.component,n),T=a.get(s)??[],d=T.find(e=>e.group.groupId===N.groupId);o.includes(e)?d?l.error(r.ASSISTANT_DUPLICATE_RECIPE_GROUP,i.ASSISTANT_DUPLICATE_RECIPE_GROUP(t,s,N.groupId,[d.entry,S])):a.set(s,[...T,{group:N,entry:S,entryCtx:l}]):l.error(r.ASSISTANT_UNKNOWN_RECIPE_GROUP,i.ASSISTANT_UNKNOWN_RECIPE_GROUP(t,p,e,s,o))}}}let p=o.entityTypes.flatMap(e=>{let t=a.get(e);return t?[{entityType:e,groups:t}]:[]});return{groups:Object.fromEntries(p.map(({entityType:e,groups:t})=>[e,t.map(({group:e})=>e)])),hints:l,metaEntries:new Map(p.flatMap(({entityType:e,groups:[t]})=>t?[[e,t.entryCtx]]:[]))}},I=e=>`${e}Meta`,O=e=>`${e.charAt(0).toUpperCase()+e.slice(1)}Result`,y=e=>{let t=(({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type))(e);return e.$ref||1!==t.length?e:t[0]},h=(e,t)=>{let{type:r,enumValues:i,localized:n,description:s}=l(e,t),o={...r,nonNull:!1},a=n?`${c(s,i)??""} ${m}`.trim():c(s,i);return{type:{...n?{kind:"scalar",name:"JSON",nonNull:!1}:o,nonNull:r.nonNull},...void 0===a?{}:{description:a}}},g=(t,r)=>{let i=(t=>{let r=y(t),i=r?.type==="array"&&r.items&&!e(r.items)?y(r.items):void 0,n=i??r;if(n?.$ref!==void 0&&"$DomainEntity"===a(n.$ref))return{target:n.references??p,list:void 0!==i}})(t);if(i)return{kind:"edge",...i,nullable:o(t,r),...void 0===t.description?{}:{description:t.description}};let{type:n,enumValues:s,localized:S,description:N}=l(t,r),T=c(N,s);return S?{kind:"value",type:{kind:"scalar",name:"JSON",nonNull:n.nonNull},description:`${N??""} ${m}`.trim()}:{kind:"value",type:n,...void 0===T?{}:{description:T}}},v=(e,t)=>{let{type:r,enumValues:i,localized:n,description:s}=l(e,t);return{type:{kind:"value",type:r},localized:!0===n,description:s,enumValues:i}},R=(e,t,n,s,o)=>{let a=t.startsWith("$")?((e,t,n,s)=>{let o=((e,t,{expressions:r,entityTypes:i})=>{let n=i.find(t=>t===e);for(let i of void 0===n?[e]:r.entityExpressions.get(n)?.shapeGroups??[]){let e=[...r.expressions.get(i)?.values()??[]].find(e=>e.name===t);if(e?.declaredSchema)return{implementation:e.implementation,declaredSchema:e.declaredSchema}}})(e.name,t,n);if(!o)return void s.error(r.ASSISTANT_UNKNOWN_FIELD,i.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t));let{implementation:a}=o;if("violations"===a.kind)return void s.error(r.ASSISTANT_UNSUPPORTED_EXPRESSION,i.ASSISTANT_UNSUPPORTED_EXPRESSION(e.name,t));if("relation"===a.kind){let[{target:e,cardinality:t}]=a.params;return{type:{kind:"edge",target:e,cardinality:t},localized:!1,description:void 0}}return v(o.declaredSchema,n.resolveRef)})(e,t,s,o):((e,t,{resolveRef:n},s)=>{let o=Object.entries(e.shape.properties).find(([e])=>e===t)?.[1];return o?v(o,n):void s.error(r.ASSISTANT_UNKNOWN_FIELD,i.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t))})(e,t,s,o);if(!a)return;let l=n?.as??(t.startsWith("$")?`_${t.slice(1)}`:t);return T.has(l)?void o.error(r.ASSISTANT_RESERVED_FIELD_NAME,i.ASSISTANT_RESERVED_FIELD_NAME(e.name,t,l)):{name:l,source:t,type:a.type,localized:a.localized,description:c(n?.description??a.description,a.enumValues),describedByManifest:n?.description!==void 0,enumValues:a.enumValues,valueDescription:n?.description??a.description}},M=(e,t,n,s,o)=>{let a=new Map,l=new Set(n);for(let s of[...t.flat(),...n]){let t=a.get(s.name);t?t.source!==s.source?o.error(r.ASSISTANT_FIELD_NAME_CONFLICT,i.ASSISTANT_FIELD_NAME_CONFLICT(e,s.name,[t.source,s.source])):l.has(s)&&s.describedByManifest&&a.set(s.name,{...t,description:s.description,describedByManifest:!0,valueDescription:s.valueDescription}):a.set(s.name,s)}return[...a.values()].map(e=>{let t=e.enumValues&&s(e.source);return t?{...e,enumValues:t,description:c(e.valueDescription,t)}:e})};export const resolveAssistantManifest=(e,{model:t,states:n,phxDefinitions:o,expressions:a,components:T,actions:y},v)=>{let b=v.errors.length,D=v.at("entities"),C=s(t.commonTypes,o);for(let e of t.resolvedShapes.keys())d.has(e)&&v.error(r.ASSISTANT_RESERVED_TYPE_NAME,i.ASSISTANT_RESERVED_TYPE_NAME(e,[...d]));let P=((e,t,r)=>{let i=new Map;for(let n of e){let e=[];for(let[i,s]of Object.entries(n.entries)){let o=R(n,i,s,t,r.at(n.name,i));o&&e.push(o)}i.set(n.name,e)}return i})(((e,t,n)=>{let s=[];for(let[r,i]of t.resolvedShapes){let t=e[r];t&&s.push({name:r,shape:i,entries:t})}let o=new Set(t.resolvedShapes.keys());for(let t of Object.keys(e))o.has(t)||n.at(t).error(r.ASSISTANT_UNKNOWN_TYPE,i.ASSISTANT_UNKNOWN_TYPE("entities",t));return s})(e.entities??{},t,D),{resolveRef:C,expressions:a,entityTypes:t.entityTypes},D),U=M(p,[],P.get(p)??[],()=>void 0,v),j=new Map([[p,U]]);for(let e of t.aliases.keys())e!==p&&j.set(e,M(e,[U],P.get(e)??[],()=>void 0,v));for(let e of t.entityTypes){let r=[p,...[...t.aliases].filter(([t,r])=>t!==p&&r.includes(e)).map(([e])=>e)],i=[...t.resolvedShapes].find(([t])=>t===e)?.[1];j.set(e,M(e,r.map(e=>j.get(e)??[]),P.get(e)??[],e=>{let t=Object.entries(i?.properties??{}).find(([t])=>t===e)?.[1];return t&&l(t,C).enumValues},v))}let L=Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries((j.get(e)??[]).map(({name:e,source:t,localized:r})=>[e,r?{source:t,localized:!0}:{source:t}]))])),$=E(e.childRecipes??{},S,{model:t,components:T},v.at("childRecipes")),w=E(e.replaceRecipes??{},N,{model:t,components:T},v.at("replaceRecipes")),W=((e,t,n)=>{let s=new Set;for(let o of Object.keys(e)){let e=t.entityTypes.find(e=>e===o),a=e?[e]:[...t.aliases].find(([e])=>e===o)?.[1];a?a.forEach(e=>s.add(e)):n.at(o).error(r.ASSISTANT_UNKNOWN_TYPE,i.ASSISTANT_UNKNOWN_TYPE("deletable",o))}return t.entityTypes.filter(e=>s.has(e))})(e.deletable??{},t,v.at("deletable")),F=((e,t,n)=>{let{model:s}=t,o=((e,t,n)=>{let s=new Map;for(let[o,a]of Object.entries(e)){let e=t.entityTypes.find(e=>e===o),l=e?[e]:[...t.aliases].find(([e])=>e===o)?.[1],p=[...t.resolvedShapes].find(([e])=>e===o)?.[1];if(!l||!p){n.at(o).error(r.ASSISTANT_UNKNOWN_TYPE,i.ASSISTANT_UNKNOWN_TYPE("writable",o));continue}for(let e of Object.keys(a)){let t=n.at(o,e);e.startsWith("$")||f.has(e)?t.error(r.ASSISTANT_NOT_WRITABLE,i.ASSISTANT_NOT_WRITABLE(o,e)):A(p.properties,e)?l.forEach(t=>{let r=s.get(t)??new Map;s.set(t,r.has(e)?r:r.set(e,o))}):t.error(r.ASSISTANT_UNKNOWN_FIELD,i.ASSISTANT_UNKNOWN_FIELD("writable",o,e))}}return s})(e,s,n);return s.entityTypes.flatMap(e=>{let a=[...s.resolvedShapes].find(([t])=>t===e)?.[1],p=[...o.get(e)??[]].flatMap(([s,o])=>{let p=a&&A(a.properties,s);return(p&&((e,{property:t,writableKey:n},s,{resolveRef:o,exposed:a,sources:p},S)=>{let N=Object.entries(A(p,e)??{}),T=a.get(e)?.find(({source:e})=>e===t)?.name??N.find(([,{source:e}])=>e===t)?.[0],d=void 0===T?N.find(([e])=>e===t)?.[1]:void 0;if(d)return void S.at(n,t).error(r.ASSISTANT_FIELD_NAME_CONFLICT,i.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[d.source,t],`${n}.${t}`));let{type:f,enumValues:u,localized:_,description:E}=l(s,o),I={...f,nonNull:!1},O=T??t,y=void 0===T?c(E,u):void 0;return _?{name:O,property:t,type:{kind:"scalar",name:"JSON",nonNull:!1},description:y?`${y} ${m}`:m}:{name:O,property:t,type:I,...void 0===y?{}:{description:y}}})(e,{property:s,writableKey:o},p,t,n))??[]});return p.length>0?[{entityType:e,fields:p}]:[]})})(e.writable??{},{model:t,resolveRef:C,exposed:P,sources:L},v.at("writable")),k=((e,t,n,s)=>{let{model:o}=n,a=new Map;for(let[l,p]of Object.entries(e)){let e=o.entityTypes.find(e=>e===l),T=e?[e]:[...o.aliases].find(([e])=>e===l)?.[1]??[];for(let[e,o]of Object.entries(p)){let p=o?.options;if(!p)continue;let d=s.at(l,e,"options"),c=`${l}.${e}`;for(let s of T){let o=t.find(e=>e.entityType===s)?.fields.find(t=>t.property===e);if(!o)continue;let l=p.as??`${o.name}Options`,T=u(s,p.componentType,n),f=a.get(s)??[],m=f.find(e=>e.options.edgeName===l||e.options.field===o.name);if(T.includes(p.instanceName))if(l===S.section||l===N.section)d.error(r.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME,i.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME(c,l,o.name));else if(m)d.error(r.ASSISTANT_DUPLICATE_OPTIONS_EDGE,i.ASSISTANT_DUPLICATE_OPTIONS_EDGE(s,m.options.edgeName===l?{edgeName:l}:{field:o.name},[m.entry,c]));else{let e={field:o.name,edgeName:l,componentType:p.componentType,instanceName:p.instanceName,validate:p.validate??!0,dryRuns:p.allowDryRuns??!0};a.set(s,[...f,{options:e,hints:_(p.hints),entry:c,entryCtx:d}])}else d.error(r.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT,i.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT(c,p,s,T))}}}return a})(e.writable??{},F,{model:t,components:T},v.at("writable"));var K=[$.metaEntries,w.metaEntries,new Map([...k].flatMap(([e,[t]])=>t?[[e,t.entryCtx]]:[]))];for(let e of t.entityTypes){let n=K.flatMap(t=>t.get(e)??[])[0],s=I(e);n&&[...t.resolvedShapes.keys()].some(e=>e===s)&&n.error(r.ASSISTANT_META_TYPE_NAME_CONFLICT,i.ASSISTANT_META_TYPE_NAME_CONFLICT(e,s))}let Y=t.entityTypes.filter(e=>($.groups[e]?.length??0)>0||(w.groups[e]?.length??0)>0||(k.get(e)?.length??0)>0).map(I),V=((e,{actions:t,resolveRef:n,builtInMutations:s,typeNames:o},a)=>{let l=[],p=[...t.values()].map(e=>String(e.name));for(let[S,N]of Object.entries(e)){let e=a.at(S),T=[...t.values()].find(e=>e.name===S);if(!T){e.error(r.ASSISTANT_UNKNOWN_ACTION,i.ASSISTANT_UNKNOWN_ACTION(S,p));continue}let d=N?.as??S,c=l.find(e=>e.fieldName===d),f=O(d);if(s.has(d)||c){e.error(r.ASSISTANT_MUTATION_NAME_CONFLICT,i.ASSISTANT_MUTATION_NAME_CONFLICT(S,d,c?`"assistant.actions.${c.actionName}" already exposes`:"the built-in mutation of that name already takes"));continue}if(o.has(f)||l.some(e=>O(e.fieldName)===f)){e.error(r.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT,i.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT(S,d,f));continue}let m=N?.description??T.description;l.push({fieldName:d,actionName:S,...void 0===m?{}:{description:m},args:Object.fromEntries(Object.entries(T.params).map(([e,{schema:t}])=>[e,h(t,n)])),result:Object.fromEntries(Object.entries(T.result).map(([e,t])=>[e,g(t,n)]))})}return l})(e.actions??{},{actions:y,resolveRef:C,builtInMutations:new Set(["deleteEntity",S.mutation,N.mutation,...F.map(({entityType:e})=>`modify${e}`)]),typeNames:new Set([...d,...t.resolvedShapes.keys(),...Y])},v.at("actions"));if(!(v.errors.length>b))return{entityTypes:t.entityTypes,aliases:Object.fromEntries(t.aliases),exampleType:t.rootEntityTypes[0]??t.entityTypes[0],states:{navigationStates:n.navigationStates,viewStates:n.viewStates,toolStates:n.toolStates},deletableTypes:W,writableTypes:F,actionFields:V,childRecipes:Object.fromEntries(Object.entries($.groups).map(([e,t])=>[e,{groups:t,hints:$.hints.get(e)??[]}])),replaceRecipes:Object.fromEntries(Object.entries(w.groups).map(([e,t])=>[e,{groups:t,hints:w.hints.get(e)??[]}])),optionsEdges:Object.fromEntries([...k].map(([e,t])=>[e,t.map(({options:e,hints:t})=>({options:e,hints:t}))])),fields:Object.fromEntries([...j].map(([e,t])=>[e,t.map(e=>({name:e.name,source:e.source,localized:e.localized,type:e.type,...void 0===e.description?{}:{description:e.description}}))]))}};export const createAssistantSchema=(e,n,s)=>{let o=resolveAssistantManifest(e,n,s);if(o)try{return{...t(o),resolved:o}}catch(e){s.error(r.ASSISTANT_INVALID_SCHEMA,i.ASSISTANT_INVALID_SCHEMA([e instanceof Error?e.message:String(e)]));return}};
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{ASSISTANT_HINTS as t,AssistantFieldClashError as i,buildAssistantManifest as r,describeAssistantValues as n,mergeAssistantFields as s,resolveAssistantField as o}from"#package/domain";import{DiagnosticCode as a,diagnosticMessages as l}from"../../../../errors/index.js";import{createSchemaRefResolver as S,isNullableSchema as p,phxDefinitionRefName as N}from"../../common/index.js";import{resolveAssistantFieldType as T}from"./assistant-field-type.js";let c="AnyDomainEntity",d="RecipeGroup",f="Recipe",A="DryRun",E="FieldOption",m={section:"childRecipes",component:"childEntityRecipes",mutation:"addChild"},_={section:"replaceRecipes",component:"replaceEntityRecipes",mutation:"replaceEntity"},u=new Set(["id","type","meta"]),O=new Set(["Query","Mutation","Navigation",d,f,A,"DryRunError",E,"JSON","String","Int","Float","Boolean","ID"]),I=new Set([d,f,E,A]),y=new Set(["id","type"]),b="A string, a message descriptor or a multilingual object; passed without translation.",h=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],g=(e,{property:t,writableKey:i},r,{resolveRef:s,exposed:o,sources:S},p)=>{let N=Object.entries(h(S,e)??{}),c=o.get(e)?.find(({source:e})=>e===t)?.name??N.find(([,{source:e}])=>e===t)?.[0],d=void 0===c?N.find(([e])=>e===t)?.[1]:void 0;if(d)return void p.at(i,t).error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[d.source,t],`${i}.${t}`));let{type:f,enumValues:A,localized:E,description:m}=T(r,s),_={...f,nonNull:!1},u=c??t,O=void 0===c?n(m,A):void 0;return E?{name:u,property:t,type:{kind:"scalar",name:"JSON",nonNull:!1},description:O?`${O} ${b}`:b}:{name:u,property:t,type:_,...void 0===O?{}:{description:O}}},v=(e,t,{model:i,components:r})=>{let n=new Set([e,...[...i.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]);return r.filter(({componentName:e,typeOrAlias:i})=>e===t&&n.has(i)).map(({instanceName:e})=>String(e))},R=(...e)=>t.filter(t=>e.some(e=>e?.includes(t))),j=(e,t,i,r)=>{let{model:n}=i,s=new Map,o=new Map;for(let[S,{groups:p,hints:N}]of Object.entries(e)){let e=n.entityTypes.find(e=>e===S),T=e?[e]:[...n.aliases].find(([e])=>e===S)?.[1];if(!T){r.at(S).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE(t.section,S));continue}for(let[e,n]of(T.forEach(e=>o.set(e,R(o.get(e),N))),Object.entries(p))){let o=r.at(S,"groups",e),p=`${S}.groups.${e}`,N={groupId:n?.as??e,instanceName:e,...n?.description===void 0?{}:{description:n.description},dryRuns:n?.allowDryRuns??!0};for(let r of T){let n=v(r,t.component,i),T=s.get(r)??[],c=T.find(e=>e.group.groupId===N.groupId);n.includes(e)?c?o.error(a.ASSISTANT_DUPLICATE_RECIPE_GROUP,l.ASSISTANT_DUPLICATE_RECIPE_GROUP(t,r,N.groupId,[c.entry,p])):s.set(r,[...T,{group:N,entry:p,entryCtx:o}]):o.error(a.ASSISTANT_UNKNOWN_RECIPE_GROUP,l.ASSISTANT_UNKNOWN_RECIPE_GROUP(t,S,e,r,n))}}}let S=n.entityTypes.flatMap(e=>{let t=s.get(e);return t?[{entityType:e,groups:t}]:[]});return{groups:Object.fromEntries(S.map(({entityType:e,groups:t})=>[e,t.map(({group:e})=>e)])),hints:o,metaEntries:new Map(S.flatMap(({entityType:e,groups:[t]})=>t?[[e,t.entryCtx]]:[]))}},M=e=>`${e}Meta`,D=e=>`${e.charAt(0).toUpperCase()+e.slice(1)}Result`,C=e=>{let t=(({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type))(e);return e.$ref||1!==t.length?e:t[0]},P=(e,t)=>{let{type:i,enumValues:r,localized:s,description:o}=T(e,t),a={...i,nonNull:!1},l=s?`${n(o,r)??""} ${b}`.trim():n(o,r);return{type:{...s?{kind:"scalar",name:"JSON",nonNull:!1}:a,nonNull:i.nonNull},...void 0===l?{}:{description:l}}},L=(t,i)=>{let r=(t=>{let i=C(t),r=i?.type==="array"&&i.items&&!e(i.items)?C(i.items):void 0,n=r??i;if(n?.$ref!==void 0&&"$DomainEntity"===N(n.$ref))return{target:n.references??c,list:void 0!==r}})(t);if(r)return{kind:"edge",...r,nullable:p(t,i),...void 0===t.description?{}:{description:t.description}};let{type:s,enumValues:o,localized:a,description:l}=T(t,i),S=n(l,o);return a?{kind:"value",type:{kind:"scalar",name:"JSON",nonNull:s.nonNull},description:`${l??""} ${b}`.trim()}:{kind:"value",type:s,...void 0===S?{}:{description:S}}},U=(e,t)=>{let{type:i,enumValues:r,localized:n,description:s}=T(e,t);return{type:{kind:"value",type:i},localized:!0===n,description:s,enumValues:r}},w=(e,t,i,r,s)=>{let o=t.startsWith("$")?((e,t,i,r)=>{let n=((e,t,{expressions:i,entityTypes:r})=>{let n=r.find(t=>t===e);for(let r of void 0===n?[e]:i.entityExpressions.get(n)?.shapeGroups??[]){let e=[...i.expressions.get(r)?.values()??[]].find(e=>e.name===t);if(e?.declaredSchema)return{implementation:e.implementation,declaredSchema:e.declaredSchema}}})(e.name,t,i);if(!n)return void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t));let{implementation:s}=n;if("violations"===s.kind)return void r.error(a.ASSISTANT_UNSUPPORTED_EXPRESSION,l.ASSISTANT_UNSUPPORTED_EXPRESSION(e.name,t));if("relation"===s.kind){let[{target:e,cardinality:t}]=s.params;return{type:{kind:"edge",target:e,cardinality:t},localized:!1,description:void 0}}return U(n.declaredSchema,i.resolveRef)})(e,t,r,s):((e,t,{resolveRef:i},r)=>{let n=Object.entries(e.shape.properties).find(([e])=>e===t)?.[1];return n?U(n,i):void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t))})(e,t,r,s);if(!o)return;let S=i?.as??(t.startsWith("$")?`_${t.slice(1)}`:t);return u.has(S)?void s.error(a.ASSISTANT_RESERVED_FIELD_NAME,l.ASSISTANT_RESERVED_FIELD_NAME(e.name,t,S)):{name:S,source:t,type:o.type,localized:o.localized,description:n(i?.description??o.description,o.enumValues),describedByManifest:i?.description!==void 0,enumValues:o.enumValues,valueDescription:i?.description??o.description,...i?.lenses?.length?{lenses:[...new Set(i.lenses)]}:{}}},$=(e,t,i,r,n)=>s(t,i,r,(t,i,r)=>{n.error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[i,r]))});export const resolveAssistantManifest=(e,{model:t,states:i,phxDefinitions:r,expressions:n,components:s,actions:p},N)=>{let d=N.errors.length,f=N.at("entities"),A=S(t.commonTypes,r);for(let e of t.resolvedShapes.keys())O.has(e)&&N.error(a.ASSISTANT_RESERVED_TYPE_NAME,l.ASSISTANT_RESERVED_TYPE_NAME(e,[...O]));let E=((e,t,i)=>{let r=new Map;for(let n of e){let e=[];for(let[r,s]of Object.entries(n.entries)){let o=w(n,r,s,t,i.at(n.name,r));o&&e.push(o)}r.set(n.name,e)}return r})(((e,t,i)=>{let r=[];for(let[i,n]of t.resolvedShapes){let t=e[i];t&&r.push({name:i,shape:n,entries:t})}let n=new Set(t.resolvedShapes.keys());for(let t of Object.keys(e))n.has(t)||i.at(t).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("entities",t));return r})(e.entities??{},t,f),{resolveRef:A,expressions:n,entityTypes:t.entityTypes},f),u=$(c,[],E.get(c)??[],()=>void 0,N),C=new Map([[c,u]]);for(let e of t.aliases.keys())e!==c&&C.set(e,$(e,[u],E.get(e)??[],()=>void 0,N));for(let e of t.entityTypes){let i=[c,...[...t.aliases].filter(([t,i])=>t!==c&&i.includes(e)).map(([e])=>e)],r=[...t.resolvedShapes].find(([t])=>t===e)?.[1];C.set(e,$(e,i.map(e=>C.get(e)??[]),E.get(e)??[],e=>{let t=Object.entries(r?.properties??{}).find(([t])=>t===e)?.[1];return t&&T(t,A).enumValues},N))}let U=Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries((C.get(e)??[]).map(({name:e,source:t,localized:i})=>[e,i?{source:t,localized:!0}:{source:t}]))])),F=j(e.childRecipes??{},m,{model:t,components:s},N.at("childRecipes")),W=j(e.replaceRecipes??{},_,{model:t,components:s},N.at("replaceRecipes")),k=((e,t,i)=>{let r=new Set;for(let n of Object.keys(e)){let e=t.entityTypes.find(e=>e===n),s=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1];s?s.forEach(e=>r.add(e)):i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("deletable",n))}return t.entityTypes.filter(e=>r.has(e))})(e.deletable??{},t,N.at("deletable")),K=((e,t,i)=>{let{model:r}=t,n=((e,t,i)=>{let r=new Map;for(let[n,s]of Object.entries(e)){let e=t.entityTypes.find(e=>e===n),o=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1],S=[...t.resolvedShapes].find(([e])=>e===n)?.[1];if(!o||!S){i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("writable",n));continue}for(let e of Object.keys(s)){let t=i.at(n,e);e.startsWith("$")||y.has(e)?t.error(a.ASSISTANT_NOT_WRITABLE,l.ASSISTANT_NOT_WRITABLE(n,e)):h(S.properties,e)?o.forEach(t=>{let i=r.get(t)??new Map;r.set(t,i.has(e)?i:i.set(e,n))}):t.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("writable",n,e))}}return r})(e,r,i);return r.entityTypes.flatMap(e=>{let s=[...r.resolvedShapes].find(([t])=>t===e)?.[1],o=[...n.get(e)??[]].flatMap(([r,n])=>{let o=s&&h(s.properties,r);return(o&&g(e,{property:r,writableKey:n},o,t,i))??[]});return o.length>0?[{entityType:e,fields:o}]:[]})})(e.writable??{},{model:t,resolveRef:A,exposed:E,sources:U},N.at("writable")),V=((e,t,i,r)=>{let{model:n}=i,s=new Map;for(let[o,S]of Object.entries(e)){let e=n.entityTypes.find(e=>e===o),p=e?[e]:[...n.aliases].find(([e])=>e===o)?.[1]??[];for(let[e,n]of Object.entries(S)){let S=n?.options;if(!S)continue;let N=r.at(o,e,"options"),T=`${o}.${e}`;for(let r of p){let n=t.find(e=>e.entityType===r)?.fields.find(t=>t.property===e);if(!n)continue;let o=S.as??`${n.name}Options`,p=v(r,S.componentType,i),c=s.get(r)??[],d=c.find(e=>e.options.edgeName===o||e.options.field===n.name);if(p.includes(S.instanceName))if(o===m.section||o===_.section)N.error(a.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME,l.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME(T,o,n.name));else if(d)N.error(a.ASSISTANT_DUPLICATE_OPTIONS_EDGE,l.ASSISTANT_DUPLICATE_OPTIONS_EDGE(r,d.options.edgeName===o?{edgeName:o}:{field:n.name},[d.entry,T]));else{let e={field:n.name,edgeName:o,componentType:S.componentType,instanceName:S.instanceName,validate:S.validate??!0,dryRuns:S.allowDryRuns??!0};s.set(r,[...c,{options:e,hints:R(S.hints),entry:T,entryCtx:N}])}else N.error(a.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT,l.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT(T,S,r,p))}}}return s})(e.writable??{},K,{model:t,components:s},N.at("writable"));var Y=[F.metaEntries,W.metaEntries,new Map([...V].flatMap(([e,[t]])=>t?[[e,t.entryCtx]]:[]))];for(let e of t.entityTypes){let i=Y.flatMap(t=>t.get(e)??[])[0],r=M(e);i&&[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(a.ASSISTANT_META_TYPE_NAME_CONFLICT,l.ASSISTANT_META_TYPE_NAME_CONFLICT(e,r))}let x=t.entityTypes.filter(e=>(F.groups[e]?.length??0)>0||(W.groups[e]?.length??0)>0||(V.get(e)?.length??0)>0).map(M),G=((e,{actions:t,resolveRef:i,builtInMutations:r,typeNames:n},s)=>{let o=[],S=[...t.values()].map(e=>String(e.name));for(let[p,N]of Object.entries(e)){let e=s.at(p),T=[...t.values()].find(e=>e.name===p);if(!T){e.error(a.ASSISTANT_UNKNOWN_ACTION,l.ASSISTANT_UNKNOWN_ACTION(p,S));continue}let c=N?.as??p,d=o.find(e=>e.fieldName===c),f=D(c);if(r.has(c)||d){e.error(a.ASSISTANT_MUTATION_NAME_CONFLICT,l.ASSISTANT_MUTATION_NAME_CONFLICT(p,c,d?`"assistant.actions.${d.actionName}" already exposes`:"the built-in mutation of that name already takes"));continue}if(n.has(f)||o.some(e=>D(e.fieldName)===f)){e.error(a.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT,l.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT(p,c,f));continue}let A=N?.description??T.description;o.push({fieldName:c,actionName:p,...void 0===A?{}:{description:A},args:Object.fromEntries(Object.entries(T.params).map(([e,{schema:t}])=>[e,P(t,i)])),result:Object.fromEntries(Object.entries(T.result).map(([e,t])=>[e,L(t,i)]))})}return o})(e.actions??{},{actions:p,resolveRef:A,builtInMutations:new Set(["deleteEntity",m.mutation,_.mutation,...K.map(({entityType:e})=>`modify${e}`)]),typeNames:new Set([...O,...t.resolvedShapes.keys(),...x])},N.at("actions")),z=((e,t)=>{let i=e.lenses??{},r=new Set;for(let[n,s]of Object.entries(e.entities??{}))for(let[e,o]of Object.entries(s))for(let s of o?.lenses??[])Object.hasOwn(i,s)?r.add(s):t.at("entities",n,e,"lenses").error(a.ASSISTANT_UNKNOWN_LENS,l.ASSISTANT_UNKNOWN_LENS(`${n}.${e}`,s,Object.keys(i)));for(let e of Object.keys(i))I.has(e)?t.at("lenses",e).error(a.ASSISTANT_RESERVED_LENS_NAME,l.ASSISTANT_RESERVED_LENS_NAME(e,[...I])):r.has(e)||t.at("lenses",e).error(a.ASSISTANT_EMPTY_LENS,l.ASSISTANT_EMPTY_LENS(e));return Object.fromEntries(Object.entries(i).map(([e,{description:t,maxDepth:i}])=>[e,{description:t,maxDepth:i??1}]))})(e,N);if(N.errors.length>d)return;let B=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{hints:R(t.hints),groups:Object.entries(t.groups).map(([e,t])=>({instanceName:e,groupId:t?.as??e,...t?.description===void 0?{}:{description:t.description},dryRuns:t?.allowDryRuns??!0}))}]));return{declarations:{entities:Object.fromEntries(Object.keys(e.entities??{}).map(e=>[e,(E.get(e)??[]).map(e=>({name:e.name,source:e.source,type:e.type,localized:e.localized,describedByManifest:e.describedByManifest,...void 0===e.description?{}:{description:e.description},...void 0===e.valueDescription?{}:{valueDescription:e.valueDescription},...void 0===e.enumValues?{}:{enumValues:e.enumValues},...void 0===e.lenses?{}:{lenses:e.lenses}}))])),enumValues:Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries(Object.entries(t.resolvedShapes.get(e)?.properties??{}).flatMap(([e,t])=>{let i=T(t,A).enumValues;return i?[[e,i]]:[]}))])),deletable:Object.keys(e.deletable??{}),writable:Object.fromEntries(Object.entries(e.writable??{}).map(([e,i])=>[e,Object.fromEntries(Object.entries(i).map(([i,r])=>[i,{defaultOptionsName:r?.options?.as===void 0,members:Object.fromEntries(t.entityTypes.filter(i=>i===e||[...t.aliases].find(([t])=>t===e)?.[1].includes(i)).flatMap(r=>{let n=h(t.resolvedShapes.get(r)?.properties??{},i),s=n&&g(r,{property:i,writableKey:e},n,{model:t,resolveRef:A,exposed:new Map,sources:{}},N.at("writable")),o=V.get(r)?.find(t=>t.entry===`${e}.${i}`);return s?[[r,{field:s,...T(n,A).localized?{exposedDescription:b}:{},...o?{options:{options:o.options,hints:o.hints}}:{}}]]:[]}))}]))])),childRecipes:B(e.childRecipes??{}),replaceRecipes:B(e.replaceRecipes??{})},entityTypes:t.entityTypes,aliases:Object.fromEntries(t.aliases),exampleType:t.rootEntityTypes[0]??t.entityTypes[0],states:{navigationStates:i.navigationStates,viewStates:i.viewStates,toolStates:i.toolStates},deletableTypes:k,writableTypes:K,actionFields:G,childRecipes:Object.fromEntries(Object.entries(F.groups).map(([e,t])=>[e,{groups:t,hints:F.hints.get(e)??[]}])),replaceRecipes:Object.fromEntries(Object.entries(W.groups).map(([e,t])=>[e,{groups:t,hints:W.hints.get(e)??[]}])),optionsEdges:Object.fromEntries([...V].map(([e,t])=>[e,t.map(({options:e,hints:t})=>({options:e,hints:t}))])),fields:Object.fromEntries([...C].map(([e,t])=>[e,t.map(t=>o(t,E.get(e)??[]))])),lenses:z}};export const createAssistantSchema=(e,t,n)=>{let s=resolveAssistantManifest(e,t,n);if(s)try{return{...r(s),resolved:s}}catch(e){if(e instanceof i)return void n.at("entities").error(a.ASSISTANT_FIELD_SHAPE_CONFLICT,l.ASSISTANT_FIELD_SHAPE_CONFLICT(e.fieldName,e.exposures));n.error(a.ASSISTANT_INVALID_SCHEMA,l.ASSISTANT_INVALID_SCHEMA([e instanceof Error?e.message:String(e)]));return}};
@@ -5,6 +5,8 @@ import { Env } from './env.js';
5
5
  /**
6
6
  * Validated infrastructure settings — env vars, ACL, resources.
7
7
  * Used by codegen for builder chain methods and env reader generation.
8
+ * No two entries of `resources` share a name: generated code and webhooks
9
+ * identify a resource by its name alone.
8
10
  * `env` is a `Env`-branded value once validated (keys conform to
9
11
  * `/^[A-Z_][A-Z0-9_]*$/`), or `undefined` when no `env:` block was declared.
10
12
  */
@@ -1 +1 @@
1
- import{Branded as o}from"@salsita-ai/common/utils";import{Env as r}from"./env.js";export const Infra=(e,s)=>{let i;if(void 0===e.env||void 0!==(i=r(e.env,s)))return o({env:i,acl:e.acl,resources:e.resources,resourcesConfig:e.resourcesConfig})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as r,diagnosticMessages as o}from"../../../errors/index.js";import{Env as s}from"./env.js";export const Infra=(n,t)=>{let i;if((void 0===n.env||void 0!==(i=s(n.env,t)))&&((e,s)=>{let n=new Map,t=!0;for(let[i,a]of(e??[]).entries()){let e=n.get(a.name);if(void 0===e){n.set(a.name,i);continue}s.at("resources",String(i),"name").error(r.DUPLICATE_RESOURCE_NAME,o.DUPLICATE_RESOURCE_NAME(a.name,e,i)),t=!1}return t})(n.resources,t))return e({env:i,acl:n.acl,resources:n.resources,resourcesConfig:n.resourcesConfig})};
@@ -1,6 +1,6 @@
1
1
  import type { AccessLevel } from '@salsita-ai/contracts/api';
2
2
  import { type ChatStreamChunk } from '@salsita-ai/contracts/chat';
3
- import { type AssistantChatConnection, type AuthorizedPhoenixApiClient, type ChatToolCall, type ChatToolCallResult, type ConfigurationPayload, type ConfigurationSchema, type waitForFinalizationResultSettings } from './contract.js';
3
+ import { type AssistantChatConnection, type AssistantEarlierThread, type AssistantThreadCompaction, type AuthorizedPhoenixApiClient, type ChatToolCall, type ChatToolCallResult, type ConfigurationPayload, type ConfigurationSchema, type waitForFinalizationResultSettings } from './contract.js';
4
4
  import type { components } from './phoenix-api.js';
5
5
  export declare class AuthorizedClient<FINALIZE_DATA extends Record<string, unknown>, FINALIZE_RESULT extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> implements AuthorizedPhoenixApiClient<FINALIZE_DATA, FINALIZE_RESULT, FRONTEND_DATA> {
6
6
  private readonly _baseUrl;
@@ -26,6 +26,8 @@ export declare class AuthorizedClient<FINALIZE_DATA extends Record<string, unkno
26
26
  getSpeechToText: (configurationId: string, blob: Blob) => Promise<string>;
27
27
  getTextToSpeech: (configurationId: string, content: string) => Promise<Blob>;
28
28
  getAssistantChatConnection: (configurationId: string) => AssistantChatConnection;
29
+ compactAssistantThread: (configurationId: string) => Promise<AssistantThreadCompaction>;
30
+ getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
29
31
  sendMessage: (configurationId: string, content: string, context?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
30
32
  sendToolCallResults: (configurationId: string, calls: ChatToolCall[], results: ChatToolCallResult[], agent?: string) => Promise<ReadableStream<ChatStreamChunk>>;
31
33
  generateShareLink: (configurationId: string, revisionId: string, expiration: number, access: AccessLevel, baseUrl: string | undefined) => Promise<{
@@ -1 +1 @@
1
- import{match as t}from"ts-pattern";import{InfoError as a}from"@salsita-ai/common/utils";import{isChatError as e}from"@salsita-ai/contracts/chat";import{createApiBaseClient as r}from"./base-client.js";import{InvalidAccessKeyError as i}from"./contract.js";let o=()=>new TransformStream({transform(t,a){a.enqueue(t)}}),n=async(t,a)=>{for(;;){let{done:r,value:i}=await t.read();if(r){await a.close();break}for(let t of i.split("\n").filter(t=>""!==t.trim()).map(t=>JSON.parse(t))){if(e(t))return void await a.abort(Error(t.error));await a.write(t)}}},s=(e,r)=>{let o=`${r} API request failed: ${JSON.stringify(e)}`;return t(e).with({statusCode:403,invalidAccessKey:!0},()=>new i).with({statusCode:403},()=>new a(o)).otherwise(()=>Error(o))};export class AuthorizedClient{_baseUrl;_getAccessToken;_getSessionToken;_client;constructor(t,a,e){this._baseUrl=t,this._getAccessToken=a,this._getSessionToken=e,this._client=r(this._baseUrl)}_authHeaders=async()=>{let t=this._getAccessToken(),a=await this._getSessionToken();return{"X-Access-Key":t,Authorization:`Bearer ${a}`}};getConfiguration=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}",{params:{path:{configurationId:t}},headers:a});if(e.error)throw s(e.error,"getConfiguration");return e.data};updateConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.PUT("/configurations/{configurationId}",{params:{path:{configurationId:t}},body:a,headers:e});if(r.error)throw s(r.error,"updateConfiguration");return r.data};finalize=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/finalize",{params:{path:{configurationId:t,finalizationUuid:a},query:{locale:r}},body:{finalizeData:e,frontendData:i},headers:o});if(n.error)throw s(n.error,"finalize")};waitForFinalizationToComplete=async(t,a,e)=>{let r=e?.pollingFrequency??500,i=Math.ceil((e?.pollingTimeout??3e4)/r);for(let e=0;e<i;e++){let e=await this._authHeaders(),i=await this._client.GET("/configurations/{configurationId}/{finalizationUuid}/state",{params:{path:{configurationId:t,finalizationUuid:a}},headers:e});if(i.error)throw s(i.error,"getFinalizeJobState");let o=i.data;if("completed"===o.state)return o.result[0];if("failed"===o.state)throw Error("finalization failed");if("unknown"===o.state)throw Error("finalization state is unknown");await new Promise(t=>setTimeout(t,r))}throw Error("finalization did not complete within the specified timeout")};getConfigurationRevision=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/revisions/{revisionId}",{params:{path:{configurationId:t,revisionId:a}},headers:e});if(r.error)throw s(r.error,"getConfigurationRevision");return r.data};getChatConversation=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}/chat",{params:{path:{configurationId:t}},headers:a});if(e.error)throw s(e.error,"getChatConversation");return e.data};getSpeechToText=async(t,a)=>{let e=await this._authHeaders(),r=new FormData;r.append("voiceFile",a,"voice.wav");let i=await this._client.POST("/configurations/{configurationId}/chat/stt",{params:{path:{configurationId:t}},headers:e,body:r,bodySerializer:()=>r});if(i.error)throw s(i.error,"getSpeechToText");return i.data.text};getTextToSpeech=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/chat/tts",{params:{path:{configurationId:t}},body:{content:a},headers:e,parseAs:"arrayBuffer"});if(r.error)throw s(r.error,"getTextToSpeech");return new Blob([r.data],{type:"audio/mp3"})};getAssistantChatConnection=t=>({url:new URL(`configurations/${encodeURIComponent(t)}/assistant/chat`,`${this._baseUrl}/`).toString(),headers:this._authHeaders});sendMessage=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/chat/message",{params:{path:{configurationId:t}},body:{content:a,context:e},headers:r,parseAs:"stream"});if(i.error)throw s(i.error,"sendMessage");let h=i.data?.pipeThrough(new TextDecoderStream).getReader();if(!h)throw Error("sendMessage API response did not contain a readable stream");let l=o();return n(h,l.writable.getWriter()),l.readable};sendToolCallResults=async(t,a,e,r)=>{let i=await this._authHeaders(),h=await this._client.POST("/configurations/{configurationId}/chat/tool-calls",{params:{path:{configurationId:t}},body:{agent:r,calls:a,results:e},headers:i,parseAs:"stream"});if(h.error)throw s(h.error,"sendToolCallResults");let l=h.data?.pipeThrough(new TextDecoderStream).getReader();if(!l)throw Error("sendMessage API response did not contain a readable stream");let c=o();return n(l,c.writable.getWriter()),c.readable};generateShareLink=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/share-link",{params:{path:{configurationId:t}},body:{revisionId:a,expiration:e,access:r,baseUrl:i},headers:o});if(n.error)throw s(n.error,"generateShareLink");return n.data};generateUploadLinks=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/image-upload-links",{params:{path:{configurationId:t,finalizationUuid:a}},body:{names:e},headers:r});if(i.error)throw s(i.error,"generateUploadLinks");return i.data.links};getConfigurationPublicUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/public/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw s(r.error,"getConfigurationPublicUploadLink");return r.data};getConfigurationPrivateUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw s(r.error,"getConfigurationPrivateUploadLink");return r.data};getConfigurationPrivateResourceLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw s(r.error,"getConfigurationPrivateUploadLink");return r.data};cloneConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/revisions/{revisionId}/clone",{params:{path:{configurationId:t,revisionId:a}},headers:{...e,"Content-Type":null}});if(r.error)throw s(r.error,"cloneConfiguration");return r.data}}
1
+ import{match as t}from"ts-pattern";import{InfoError as a}from"@salsita-ai/common/utils";import{isChatError as e}from"@salsita-ai/contracts/chat";import{createApiBaseClient as r}from"./base-client.js";import{AssistantRequestError as i,InvalidAccessKeyError as o}from"./contract.js";let n=()=>new TransformStream({transform(t,a){a.enqueue(t)}}),s=async(t,a)=>{for(;;){let{done:r,value:i}=await t.read();if(r){await a.close();break}for(let t of i.split("\n").filter(t=>""!==t.trim()).map(t=>JSON.parse(t))){if(e(t))return void await a.abort(Error(t.error));await a.write(t)}}},h=(e,r)=>{let i=`${r} API request failed: ${JSON.stringify(e)}`;return t(e).with({statusCode:403,invalidAccessKey:!0},()=>new o).with({statusCode:403},()=>new a(i)).otherwise(()=>Error(i))};export class AuthorizedClient{_baseUrl;_getAccessToken;_getSessionToken;_client;constructor(t,a,e){this._baseUrl=t,this._getAccessToken=a,this._getSessionToken=e,this._client=r(this._baseUrl)}_authHeaders=async()=>{let t=this._getAccessToken(),a=await this._getSessionToken();return{"X-Access-Key":t,Authorization:`Bearer ${a}`}};getConfiguration=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getConfiguration");return e.data};updateConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.PUT("/configurations/{configurationId}",{params:{path:{configurationId:t}},body:a,headers:e});if(r.error)throw h(r.error,"updateConfiguration");return r.data};finalize=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/finalize",{params:{path:{configurationId:t,finalizationUuid:a},query:{locale:r}},body:{finalizeData:e,frontendData:i},headers:o});if(n.error)throw h(n.error,"finalize")};waitForFinalizationToComplete=async(t,a,e)=>{let r=e?.pollingFrequency??500,i=Math.ceil((e?.pollingTimeout??3e4)/r);for(let e=0;e<i;e++){let e=await this._authHeaders(),i=await this._client.GET("/configurations/{configurationId}/{finalizationUuid}/state",{params:{path:{configurationId:t,finalizationUuid:a}},headers:e});if(i.error)throw h(i.error,"getFinalizeJobState");let o=i.data;if("completed"===o.state)return o.result[0];if("failed"===o.state)throw Error("finalization failed");if("unknown"===o.state)throw Error("finalization state is unknown");await new Promise(t=>setTimeout(t,r))}throw Error("finalization did not complete within the specified timeout")};getConfigurationRevision=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/revisions/{revisionId}",{params:{path:{configurationId:t,revisionId:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationRevision");return r.data};getChatConversation=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}/chat",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getChatConversation");return e.data};getSpeechToText=async(t,a)=>{let e=await this._authHeaders(),r=new FormData;r.append("voiceFile",a,"voice.wav");let i=await this._client.POST("/configurations/{configurationId}/chat/stt",{params:{path:{configurationId:t}},headers:e,body:r,bodySerializer:()=>r});if(i.error)throw h(i.error,"getSpeechToText");return i.data.text};getTextToSpeech=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/chat/tts",{params:{path:{configurationId:t}},body:{content:a},headers:e,parseAs:"arrayBuffer"});if(r.error)throw h(r.error,"getTextToSpeech");return new Blob([r.data],{type:"audio/mp3"})};getAssistantChatConnection=t=>({url:new URL(`configurations/${encodeURIComponent(t)}/assistant/chat`,`${this._baseUrl}/`).toString(),headers:this._authHeaders});compactAssistantThread=async t=>{let a=await this._authHeaders(),e=await this._client.POST("/configurations/{configurationId}/assistant/chat/compact",{params:{path:{configurationId:t}},headers:{...a,"Content-Type":null}});if(e.error)throw new i(`compactAssistantThread API request failed: ${JSON.stringify(e.error)}`,e.response.status);return e.data};getAssistantEarlierThread=async(t,a,e)=>{let r=await this._authHeaders(),o=await this._client.GET("/configurations/{configurationId}/assistant/chat/threads/{threadId}",{params:{path:{configurationId:t,threadId:a},query:{limit:e}},headers:r});if(o.error)throw new i(`getAssistantEarlierThread API request failed: ${JSON.stringify(o.error)}`,o.response.status);let{messages:n}=o.data;return{threadId:a,messages:Array.isArray(n)?n:[],previousThreadId:o.response.headers.get("x-assistant-previous-thread")}};sendMessage=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/chat/message",{params:{path:{configurationId:t}},body:{content:a,context:e},headers:r,parseAs:"stream"});if(i.error)throw h(i.error,"sendMessage");let o=i.data?.pipeThrough(new TextDecoderStream).getReader();if(!o)throw Error("sendMessage API response did not contain a readable stream");let c=n();return s(o,c.writable.getWriter()),c.readable};sendToolCallResults=async(t,a,e,r)=>{let i=await this._authHeaders(),o=await this._client.POST("/configurations/{configurationId}/chat/tool-calls",{params:{path:{configurationId:t}},body:{agent:r,calls:a,results:e},headers:i,parseAs:"stream"});if(o.error)throw h(o.error,"sendToolCallResults");let c=o.data?.pipeThrough(new TextDecoderStream).getReader();if(!c)throw Error("sendMessage API response did not contain a readable stream");let u=n();return s(c,u.writable.getWriter()),u.readable};generateShareLink=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/share-link",{params:{path:{configurationId:t}},body:{revisionId:a,expiration:e,access:r,baseUrl:i},headers:o});if(n.error)throw h(n.error,"generateShareLink");return n.data};generateUploadLinks=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/image-upload-links",{params:{path:{configurationId:t,finalizationUuid:a}},body:{names:e},headers:r});if(i.error)throw h(i.error,"generateUploadLinks");return i.data.links};getConfigurationPublicUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/public/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPublicUploadLink");return r.data};getConfigurationPrivateUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};getConfigurationPrivateResourceLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};cloneConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/revisions/{revisionId}/clone",{params:{path:{configurationId:t,revisionId:a}},headers:{...e,"Content-Type":null}});if(r.error)throw h(r.error,"cloneConfiguration");return r.data}}
@@ -1,3 +1,4 @@
1
+ import type { UIMessage } from '@tanstack/ai-client';
1
2
  import type { AccessLevel } from '@salsita-ai/contracts/api';
2
3
  import type { ChatStreamChunk } from '@salsita-ai/contracts/chat';
3
4
  import type { DomainEntity } from '#package/domain';
@@ -88,6 +89,17 @@ export interface AuthorizedPhoenixApiClient<FINALIZE_DATA extends Record<string,
88
89
  getChatConversation: (configurationId: string) => Promise<ChatConversation>;
89
90
  /** Where and how to reach the experimental assistant chat of the configuration. */
90
91
  getAssistantChatConnection: (configurationId: string) => AssistantChatConnection;
92
+ /**
93
+ * Continues the assistant thread of the configuration, which the server no longer lets this session
94
+ * continue, in a new thread that starts from a summary of it. Rejects with an
95
+ * {@link AssistantRequestError} when the server refuses.
96
+ */
97
+ compactAssistantThread: (configurationId: string) => Promise<AssistantThreadCompaction>;
98
+ /**
99
+ * Reads a closed assistant thread of the configuration that a later thread continues, at most
100
+ * `limit` of its newest messages. Rejects with an {@link AssistantRequestError} when the server refuses.
101
+ */
102
+ getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
91
103
  getSpeechToText: (configurationId: string, blob: Blob) => Promise<string>;
92
104
  getTextToSpeech: (configurationId: string, text: string) => Promise<Blob>;
93
105
  sendMessage: (configurationId: string, message: string, state?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
@@ -118,6 +130,28 @@ export interface AssistantChatConnection {
118
130
  */
119
131
  readonly headers: () => Promise<Record<string, string>>;
120
132
  }
133
+ /** An assistant thread that was closed, and the thread that continues it. */
134
+ export interface AssistantThreadCompaction {
135
+ /** The new thread, which the chat of the configuration now runs on. */
136
+ readonly threadId: string;
137
+ /** The closed thread the new one continues. */
138
+ readonly previousThreadId: string;
139
+ }
140
+ /** A closed assistant thread, as the panel paints it above the thread that continues it. */
141
+ export interface AssistantEarlierThread {
142
+ readonly threadId: string;
143
+ readonly messages: ReadonlyArray<UIMessage>;
144
+ /** The thread this one continues in turn; `null` when it is the first of the conversation. */
145
+ readonly previousThreadId: string | null;
146
+ }
147
+ /** A request about an assistant thread that the server answered with a failure. */
148
+ export declare class AssistantRequestError extends Error {
149
+ /** The HTTP status of the answer, which tells a refusal from an outage. */
150
+ readonly status: number;
151
+ constructor(message: string,
152
+ /** The HTTP status of the answer, which tells a refusal from an outage. */
153
+ status: number);
154
+ }
121
155
  export declare class InvalidDeploymentError extends Error {
122
156
  constructor();
123
157
  }
@@ -1 +1 @@
1
- export class InvalidDeploymentError extends Error{constructor(){super(),this.name="InvalidDeployment",this.message="The referenced deployment is invalid."}}export class InvalidAccessKeyError extends Error{constructor(){super("The access token is no longer valid because it expired or the server rejected it. Open the configuration from a fresh link."),this.name="InvalidAccessKey"}}export class ChunkNotFoundError extends Error{chunkKey;constructor(e){super(`Published chunk "${e}" not found`),this.chunkKey=e,this.name="ChunkNotFound"}}export class OAuthStaleConnectionError extends Error{constructor(){super("OAuth connection is stale"),this.name="OAuthStaleConnectionError"}}export class ConfigurationSchemaMismatchError extends Error{details;constructor(e){super("Preset data does not match the configuration schema registered on the server. Why: the preset/demo entity data was changed without re-registering the schema, or the schema drifted. Fix: re-register/redeploy the domain schema, or update the preset data to match the current schema."),this.details=e,this.name="ConfigurationSchemaMismatchError"}}export const isConfigurationSchemaMismatchError=e=>e instanceof ConfigurationSchemaMismatchError;
1
+ export class AssistantRequestError extends Error{status;constructor(e,r){super(e),this.status=r,this.name="AssistantRequestError"}}export class InvalidDeploymentError extends Error{constructor(){super(),this.name="InvalidDeployment",this.message="The referenced deployment is invalid."}}export class InvalidAccessKeyError extends Error{constructor(){super("The access token is no longer valid because it expired or the server rejected it. Open the configuration from a fresh link."),this.name="InvalidAccessKey"}}export class ChunkNotFoundError extends Error{chunkKey;constructor(e){super(`Published chunk "${e}" not found`),this.chunkKey=e,this.name="ChunkNotFound"}}export class OAuthStaleConnectionError extends Error{constructor(){super("OAuth connection is stale"),this.name="OAuthStaleConnectionError"}}export class ConfigurationSchemaMismatchError extends Error{details;constructor(e){super("Preset data does not match the configuration schema registered on the server. Why: the preset/demo entity data was changed without re-registering the schema, or the schema drifted. Fix: re-register/redeploy the domain schema, or update the preset data to match the current schema."),this.details=e,this.name="ConfigurationSchemaMismatchError"}}export const isConfigurationSchemaMismatchError=e=>e instanceof ConfigurationSchemaMismatchError;
@@ -9,5 +9,5 @@ export { MemoryAuthorizedPhoenixApiClient } from './memory-authorized-client.js'
9
9
  export { MemoryAuthenticatedClientPhoenixApiClient, memoryStorage } from './memory-authenticated-client.js';
10
10
  export { createUnsignedJWT } from './unsigned-jwt.js';
11
11
  export type { components as ApiTypes } from './phoenix-api.js';
12
- export type { ConfigurationPayload, ConfigurationSchema, ChatConfiguration, ChatConversation, ChatEmbedding, ChatMessageParam, ChatToolCallResult, Entity, UnauthenticatedPhoenixApiClient, AuthenticatedClientPhoenixApiClient, AuthorizedPhoenixApiClient, AssistantChatConnection, OAuthProvider, OAuthAccessTokenResult, GoogleOAuthConfig, ReleaseToProductionResult, SharePointSiteConfig, } from './contract.js';
13
- export { InvalidAccessKeyError, InvalidDeploymentError, ChunkNotFoundError, OAuthStaleConnectionError, ConfigurationSchemaMismatchError, isConfigurationSchemaMismatchError, } from './contract.js';
12
+ export type { ConfigurationPayload, ConfigurationSchema, ChatConfiguration, ChatConversation, ChatEmbedding, ChatMessageParam, ChatToolCallResult, Entity, UnauthenticatedPhoenixApiClient, AuthenticatedClientPhoenixApiClient, AuthorizedPhoenixApiClient, AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, OAuthProvider, OAuthAccessTokenResult, GoogleOAuthConfig, ReleaseToProductionResult, SharePointSiteConfig, } from './contract.js';
13
+ export { AssistantRequestError, InvalidAccessKeyError, InvalidDeploymentError, ChunkNotFoundError, OAuthStaleConnectionError, ConfigurationSchemaMismatchError, isConfigurationSchemaMismatchError, } from './contract.js';
@@ -1 +1 @@
1
- export{createApiBaseClient}from"./base-client.js";export{AuthorizedClient}from"./authorized-client.js";export{AuthenticatedClient}from"./authenticated-client.js";export{UnauthenticatedClient}from"./unauthenticated-client.js";export{LocalStorageAuthorizedPhoenixApiClient}from"./local-authorized-client.js";export{LocalStorageAuthenticatedClientPhoenixApiClient}from"./local-authenticated-client.js";export{LocalStorageUnauthenticatedPhoenixApiClient}from"./local-unauthenticated-client.js";export{MemoryAuthorizedPhoenixApiClient}from"./memory-authorized-client.js";export{MemoryAuthenticatedClientPhoenixApiClient,memoryStorage}from"./memory-authenticated-client.js";export{createUnsignedJWT}from"./unsigned-jwt.js";export{InvalidAccessKeyError,InvalidDeploymentError,ChunkNotFoundError,OAuthStaleConnectionError,ConfigurationSchemaMismatchError,isConfigurationSchemaMismatchError}from"./contract.js";
1
+ export{createApiBaseClient}from"./base-client.js";export{AuthorizedClient}from"./authorized-client.js";export{AuthenticatedClient}from"./authenticated-client.js";export{UnauthenticatedClient}from"./unauthenticated-client.js";export{LocalStorageAuthorizedPhoenixApiClient}from"./local-authorized-client.js";export{LocalStorageAuthenticatedClientPhoenixApiClient}from"./local-authenticated-client.js";export{LocalStorageUnauthenticatedPhoenixApiClient}from"./local-unauthenticated-client.js";export{MemoryAuthorizedPhoenixApiClient}from"./memory-authorized-client.js";export{MemoryAuthenticatedClientPhoenixApiClient,memoryStorage}from"./memory-authenticated-client.js";export{createUnsignedJWT}from"./unsigned-jwt.js";export{AssistantRequestError,InvalidAccessKeyError,InvalidDeploymentError,ChunkNotFoundError,OAuthStaleConnectionError,ConfigurationSchemaMismatchError,isConfigurationSchemaMismatchError}from"./contract.js";
@@ -1,5 +1,5 @@
1
1
  import type { ChatMessageContentChunk, ChatToolCalls } from '@salsita-ai/contracts/chat';
2
- import type { AssistantChatConnection, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
2
+ import type { AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
3
3
  import { LocalStorageAuthenticatedClientPhoenixApiClient } from './local-authenticated-client.js';
4
4
  /**
5
5
  * Local storage implementation for local dev, it does not check for schema changes, so you may need to create new configuration if the schema changes and
@@ -15,6 +15,8 @@ export declare class LocalStorageAuthorizedPhoenixApiClient<FINALIZE_DATA extend
15
15
  waitForFinalizationToComplete: () => Promise<FINALIZE_RESULT>;
16
16
  getConfigurationRevision: (configurationId: string, revisionId: string) => Promise<ConfigurationSchema>;
17
17
  getAssistantChatConnection: () => AssistantChatConnection;
18
+ compactAssistantThread: () => Promise<AssistantThreadCompaction>;
19
+ getAssistantEarlierThread: () => Promise<AssistantEarlierThread>;
18
20
  getChatConversation: (configurationId: string) => Promise<readonly {
19
21
  readonly augmentation?: import("./phoenix-api.js").components['schemas']['ChatMessageAugmentation'];
20
22
  readonly content?: string;
@@ -1 +1 @@
1
- import*as t from"uuid";import{ChunkType as e}from"@salsita-ai/contracts/chat";import{LocalStorageAuthenticatedClientPhoenixApiClient as o}from"./local-authenticated-client.js";let r=(t,o)=>{let r={role:"assistant",content:["I see","Yes","Definitely"][Math.round(2*Math.random())]};return localStorage.setItem(`${o}-chat`,JSON.stringify([...t,r])),Promise.resolve(new ReadableStream({start(t){t.enqueue({type:e.content,content:r.content??""}),t.close()}}))};export class LocalStorageAuthorizedPhoenixApiClient extends o{getConfigurationData=t=>{let e=JSON.parse(localStorage.getItem(t)??"[]");if(!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,o)=>{let r=this.getConfigurationData(e),n=t.v4(),i={...o,configurationId:e,revisionId:n,modelVersion:this._modelVersion};return localStorage.setItem(e,JSON.stringify([...r,i])),Promise.resolve({revisionId:n})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let o=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!o)throw Error("Revision not found!");return Promise.resolve(o)};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getChatConversation=async t=>JSON.parse(localStorage.getItem(`${t}-chat`)??"[]");sendMessage=async(t,e)=>{let o=await this.getChatConversation(t);return localStorage.setItem(`${t}-chat`,JSON.stringify([...o,e])),r(o,t)};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async t=>r(await this.getChatConversation(t),t);generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let o=localStorage.getItem(t);if(!o)throw Error("Configuration not found");let r=JSON.parse(o).find(t=>t.revisionId===e);if(!r)throw Error("Revision not found");return this.createConfiguration(r)}}
1
+ import*as t from"uuid";import{ChunkType as e}from"@salsita-ai/contracts/chat";import{LocalStorageAuthenticatedClientPhoenixApiClient as o}from"./local-authenticated-client.js";let r=(t,o)=>{let r={role:"assistant",content:["I see","Yes","Definitely"][Math.round(2*Math.random())]};return localStorage.setItem(`${o}-chat`,JSON.stringify([...t,r])),Promise.resolve(new ReadableStream({start(t){t.enqueue({type:e.content,content:r.content??""}),t.close()}}))};export class LocalStorageAuthorizedPhoenixApiClient extends o{getConfigurationData=t=>{let e=JSON.parse(localStorage.getItem(t)??"[]");if(!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,o)=>{let r=this.getConfigurationData(e),n=t.v4(),a={...o,configurationId:e,revisionId:n,modelVersion:this._modelVersion};return localStorage.setItem(e,JSON.stringify([...r,a])),Promise.resolve({revisionId:n})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let o=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!o)throw Error("Revision not found!");return Promise.resolve(o)};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getChatConversation=async t=>JSON.parse(localStorage.getItem(`${t}-chat`)??"[]");sendMessage=async(t,e)=>{let o=await this.getChatConversation(t);return localStorage.setItem(`${t}-chat`,JSON.stringify([...o,e])),r(o,t)};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async t=>r(await this.getChatConversation(t),t);generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let o=localStorage.getItem(t);if(!o)throw Error("Configuration not found");let r=JSON.parse(o).find(t=>t.revisionId===e);if(!r)throw Error("Revision not found");return this.createConfiguration(r)}}
@@ -1,4 +1,4 @@
1
- import type { AssistantChatConnection, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
1
+ import type { AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
2
2
  import { MemoryAuthenticatedClientPhoenixApiClient } from './memory-authenticated-client.js';
3
3
  /**
4
4
  * Memory implementation for local dev, it does not check for schema changes, so you may need to create new configuration if the schema changes and
@@ -15,6 +15,8 @@ export declare class MemoryAuthorizedPhoenixApiClient<FINALIZE_DATA extends Reco
15
15
  getConfigurationRevision: (configurationId: string, revisionId: string) => Promise<ConfigurationSchema>;
16
16
  getChatConversation: () => Promise<never>;
17
17
  getAssistantChatConnection: () => AssistantChatConnection;
18
+ compactAssistantThread: () => Promise<AssistantThreadCompaction>;
19
+ getAssistantEarlierThread: () => Promise<AssistantEarlierThread>;
18
20
  sendMessage: () => Promise<never>;
19
21
  getSpeechToText: () => Promise<never>;
20
22
  getTextToSpeech: () => Promise<never>;
@@ -1 +1 @@
1
- import*as t from"uuid";import{MemoryAuthenticatedClientPhoenixApiClient as e,memoryStorage as o}from"./memory-authenticated-client.js";export class MemoryAuthorizedPhoenixApiClient extends e{getConfigurationData=t=>{let e=o.get(t);if(!e||!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,r)=>{let n=this.getConfigurationData(e),i=t.v4(),a={...r,configurationId:e,revisionId:i,modelVersion:this._modelVersion};return o.set(e,[...n,a]),Promise.resolve({revisionId:i})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let o=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!o)throw Error("Revision not found!");return Promise.resolve(o)};getChatConversation=async()=>{throw Error("Not implemented!")};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};sendMessage=async()=>{throw Error("Not implemented!")};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async()=>{throw Error("Not implemented!")};generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let r=o.get(t);if(!r)throw Error("Configuration not found");let n=r.find(t=>t.revisionId===e);if(!n)throw Error("Revision not found");return this.createConfiguration(n)}}
1
+ import*as e from"uuid";import{MemoryAuthenticatedClientPhoenixApiClient as t,memoryStorage as r}from"./memory-authenticated-client.js";export class MemoryAuthorizedPhoenixApiClient extends t{getConfigurationData=e=>{let t=r.get(e);if(!t||!t||0===t.length)throw Error("Configuration not found!");return t};getConfiguration=e=>{let t=this.getConfigurationData(e);return Promise.resolve(t[t.length-1])};updateConfiguration=(t,o)=>{let n=this.getConfigurationData(t),i=e.v4(),a={...o,configurationId:t,revisionId:i,modelVersion:this._modelVersion};return r.set(t,[...n,a]),Promise.resolve({revisionId:i})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(e,t)=>{let r=this.getConfigurationData(e).find(e=>e.revisionId===t);if(!r)throw Error("Revision not found!");return Promise.resolve(r)};getChatConversation=async()=>{throw Error("Not implemented!")};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};sendMessage=async()=>{throw Error("Not implemented!")};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async()=>{throw Error("Not implemented!")};generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(e,t)=>{let o=r.get(e);if(!o)throw Error("Configuration not found");let n=o.find(e=>e.revisionId===t);if(!n)throw Error("Revision not found");return this.createConfiguration(n)}}