@salsita-ai/sdk 0.50.0-develop.9267bdc12e → 0.50.0-develop.98166fe7c3

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 (554) hide show
  1. package/README.md +14 -13
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  16. package/dist/application-spec/core/components/component-filter.js +1 -0
  17. package/dist/application-spec/core/components/index.d.ts +2 -0
  18. package/dist/application-spec/core/components/index.js +1 -0
  19. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  21. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  22. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  23. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  24. package/dist/application-spec/core/expressions/index.js +1 -0
  25. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  26. package/dist/application-spec/core/expressions/relation-expression-params.js +1 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  52. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  53. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  54. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +11 -8
  55. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  56. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  57. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  59. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  62. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  63. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  64. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  65. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  66. package/dist/application-spec/generate-application/code/templates/globals.js +7 -5
  67. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -1
  68. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  70. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  71. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  73. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  74. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  75. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +1 -1
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  79. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
  80. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  81. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  82. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  83. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  84. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  85. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  86. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  87. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  88. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  89. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  90. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  91. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  92. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  93. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  94. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  95. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  96. package/dist/application-spec/generate-application/index.d.ts +2 -0
  97. package/dist/application-spec/generate-application/index.js +1 -1
  98. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +4 -3
  99. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -3
  100. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  101. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  102. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +13 -5
  103. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  104. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +4 -3
  105. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +6 -2
  106. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  107. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  108. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  109. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  110. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  111. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  112. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  113. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  114. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  115. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  116. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  117. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  118. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  119. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  120. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  121. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  122. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  123. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  124. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +3 -2
  125. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  126. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  127. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  128. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  129. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  130. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  131. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  132. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  133. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  134. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  135. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  136. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  137. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  138. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  139. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  140. package/dist/application-spec/index.d.ts +1 -0
  141. package/dist/application-spec/index.js +1 -1
  142. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  143. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  144. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  145. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  146. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  147. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  148. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  149. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +15 -2
  150. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  151. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  152. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  153. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  154. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  155. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  156. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  157. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  158. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  159. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  160. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  161. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  162. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  163. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  164. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  165. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  166. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  167. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  168. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  169. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  170. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  171. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  172. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  173. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  174. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  175. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  176. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  177. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  178. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  179. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  180. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  181. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  183. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  184. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  185. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  186. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  187. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  188. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  189. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  190. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  191. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  192. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  193. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  194. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  195. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  196. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  197. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  198. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  199. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  200. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  201. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  202. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  203. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  204. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  205. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  206. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  207. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  208. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  209. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  210. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  211. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  212. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  213. package/dist/client/phoenix-api.d.ts +463 -0
  214. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +36 -1
  215. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  216. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  217. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  218. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  219. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +17 -3
  220. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  221. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  222. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  223. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  224. package/dist/configurator/common/configurator-interface.d.ts +22 -1
  225. package/dist/configurator/common/configurator-interface.js +1 -1
  226. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  227. package/dist/configurator/common/frontend-analytics.js +1 -1
  228. package/dist/configurator/common/index.d.ts +2 -0
  229. package/dist/configurator/common/index.js +1 -1
  230. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  231. package/dist/configurator/common/use-finalize-action.js +1 -0
  232. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  233. package/dist/configurator/common/use-reset-camera.js +1 -0
  234. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  235. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  236. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  237. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  238. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  239. package/dist/configurator/pages/default-configurator-elements.d.ts +8 -0
  240. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  241. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  242. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  243. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  244. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  245. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  246. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  247. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  248. package/dist/configurator/pages/default-elements/index.js +1 -0
  249. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  250. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  251. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  252. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  253. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  254. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  255. package/dist/configurator/pages/index.d.ts +1 -0
  256. package/dist/configurator/pages/index.js +1 -1
  257. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  258. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  259. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  260. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  261. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  262. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  263. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  264. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  265. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  266. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  267. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  268. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  269. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  270. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  271. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  272. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  273. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  274. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  275. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  276. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  277. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  278. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  279. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  280. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  281. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  282. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  283. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  284. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  285. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  286. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  287. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  288. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  289. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  290. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  291. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  292. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  293. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  294. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  295. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  296. package/dist/configurator/ui/assistant/form/index.js +1 -0
  297. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  298. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  299. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  300. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  301. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  302. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  303. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  304. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  305. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  306. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  307. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  308. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  309. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  310. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  311. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  312. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  313. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  314. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  315. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  316. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  317. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  318. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  319. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  320. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  321. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  322. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  323. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  324. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  325. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  326. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  327. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  328. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  329. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  330. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  331. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  332. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  333. package/dist/configurator/ui/configurator-layout/{universal → slots/desktop-sidebar}/DesktopSidebar.d.ts +23 -14
  334. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  335. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  336. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  337. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  338. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  339. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  340. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  341. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  342. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  343. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -1
  344. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +2 -2
  345. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  346. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  347. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  348. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  349. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  350. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  351. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  352. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  353. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  354. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  355. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  356. package/dist/docs/fabs/basic.mdx +2 -2
  357. package/dist/docs/index.json +32 -1
  358. package/dist/docs/layouts/custom-layout.mdx +1636 -183
  359. package/dist/docs/layouts/header/fixed.mdx +2 -2
  360. package/dist/docs/layouts/header/floating.mdx +2 -2
  361. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  362. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  363. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  364. package/dist/docs/other-features/transformers.mdx +4 -0
  365. package/dist/docs/phoenix/application-states.mdx +9 -7
  366. package/dist/docs/phoenix/components.mdx +6 -0
  367. package/dist/docs/phoenix/configurator-interface.mdx +135 -18
  368. package/dist/docs/phoenix/deployments.mdx +2 -6
  369. package/dist/docs/phoenix/domain-model.mdx +2 -0
  370. package/dist/docs/phoenix/finalization.mdx +1 -1
  371. package/dist/docs/phoenix/getting-started.mdx +2 -1
  372. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  373. package/dist/docs/phoenix/localization.mdx +10 -6
  374. package/dist/docs/phoenix/migration-guide.mdx +21 -8
  375. package/dist/docs/phoenix/phoenix-cli.mdx +51 -11
  376. package/dist/docs/phoenix/project-structure.mdx +33 -13
  377. package/dist/docs/phoenix/sdk-builder-workflow.mdx +2 -2
  378. package/dist/docs/phoenix/testing.mdx +140 -0
  379. package/dist/docs/phoenix/webhooks.mdx +21 -4
  380. package/dist/domain/application/application-config.d.ts +3 -1
  381. package/dist/domain/application/assistant/assistant-fields.d.ts +8 -1
  382. package/dist/domain/application/assistant/assistant-fields.js +1 -1
  383. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  384. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  385. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  386. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +11 -1
  387. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  388. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  389. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  390. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  391. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  392. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  393. package/dist/domain/application/assistant/index.d.ts +5 -1
  394. package/dist/domain/application/assistant/index.js +1 -1
  395. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  396. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  397. package/dist/domain/application/configurator-builder.d.ts +4 -1
  398. package/dist/domain/application/configurator-builder.js +1 -1
  399. package/dist/domain/core/invariant/violation.d.ts +50 -2
  400. package/dist/domain/core/invariant/violation.js +1 -1
  401. package/dist/domain/core/model/model.d.ts +1 -1
  402. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  403. package/dist/domain/domain-context/index.d.ts +1 -1
  404. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  405. package/dist/domain/domain-context/undo-system.js +1 -1
  406. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  407. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  408. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  409. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  410. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  411. package/dist/domain/extensions/attribute-switch.js +1 -1
  412. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  413. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  414. package/dist/domain/extensions/client-side-image.js +1 -1
  415. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  416. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  417. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  418. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  419. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  420. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  421. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  422. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  423. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  424. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  425. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  426. package/dist/domain/extensions/offset-indicator.js +1 -1
  427. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  428. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  429. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  430. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  431. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  432. package/dist/domain/mocks/create-test-application-config.js +1 -0
  433. package/dist/domain/mocks/index.d.ts +1 -0
  434. package/dist/domain/mocks/index.js +1 -1
  435. package/dist/domain/system-components/application-config.d.ts +2 -2
  436. package/dist/domain/system-components/child-entity-selection.js +1 -1
  437. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  438. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  439. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  440. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  441. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  442. package/dist/domain/system-components/common/recipes.js +1 -1
  443. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  444. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  445. package/dist/domain/system-components/constraint.d.ts +10 -23
  446. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  447. package/dist/domain/system-components/drag-handle.js +1 -1
  448. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  449. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  450. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  451. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  452. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  453. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  454. package/dist/domain/system-components/material-swatch.js +1 -1
  455. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  456. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  457. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  458. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  459. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  460. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  461. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  462. package/dist/globals/index.d.ts +2 -0
  463. package/dist/i18n/locales/cs/messages.js +1 -1
  464. package/dist/i18n/locales/da/messages.js +1 -1
  465. package/dist/i18n/locales/de/messages.js +1 -1
  466. package/dist/i18n/locales/de-AT/messages.js +1 -1
  467. package/dist/i18n/locales/en/messages.js +1 -1
  468. package/dist/i18n/locales/en-AU/messages.js +1 -1
  469. package/dist/i18n/locales/en-GB/messages.js +1 -1
  470. package/dist/i18n/locales/es/messages.js +1 -1
  471. package/dist/i18n/locales/fr/messages.js +1 -1
  472. package/dist/i18n/locales/hu/messages.js +1 -1
  473. package/dist/i18n/locales/it/messages.js +1 -1
  474. package/dist/i18n/locales/nl/messages.js +1 -1
  475. package/dist/i18n/locales/pl/messages.js +1 -1
  476. package/dist/i18n/locales/pt/messages.js +1 -1
  477. package/dist/i18n/locales/ro/messages.js +1 -1
  478. package/dist/i18n/locales/sk/messages.js +1 -1
  479. package/dist/i18n/locales/tr/messages.js +1 -1
  480. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  481. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  482. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  483. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  484. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  485. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  486. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -1
  487. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  488. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  489. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  490. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  491. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  492. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  493. package/dist/phoenix/application-spec/project-files.js +1 -1
  494. package/dist/phoenix/bin.d.ts +2 -0
  495. package/dist/phoenix/bin.js +2 -0
  496. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  497. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  498. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  499. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  500. package/dist/phoenix/check-configs/index.d.ts +8 -0
  501. package/dist/phoenix/check-configs/index.js +1 -0
  502. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  503. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  504. package/dist/phoenix/cli.d.ts +0 -1
  505. package/dist/phoenix/cli.js +1 -2
  506. package/dist/phoenix/commands/check.js +1 -1
  507. package/dist/phoenix/commands/deploy.js +1 -1
  508. package/dist/phoenix/commands/deps/deps.d.ts +52 -0
  509. package/dist/phoenix/commands/deps/deps.js +3 -0
  510. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  511. package/dist/phoenix/commands/deps/index.js +1 -0
  512. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  513. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  514. package/dist/phoenix/commands/dev.js +5 -5
  515. package/dist/phoenix/commands/fix.js +1 -1
  516. package/dist/phoenix/commands/index.d.ts +1 -0
  517. package/dist/phoenix/commands/index.js +1 -1
  518. package/dist/phoenix/commands/prettier.js +1 -1
  519. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -0
  520. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  521. package/dist/phoenix/services/lingui.d.ts +8 -0
  522. package/dist/phoenix/services/lingui.js +1 -1
  523. package/dist/phoenix/services/source-archive.d.ts +1 -0
  524. package/dist/phoenix/services/source-archive.js +1 -1
  525. package/dist/phoenix/services/swc.js +1 -1
  526. package/dist/phoenix/services/vite-config.js +1 -1
  527. package/dist/phoenix/utils/index.d.ts +2 -1
  528. package/dist/phoenix/utils/index.js +1 -1
  529. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  530. package/dist/phoenix/utils/node-version/index.js +1 -0
  531. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  532. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  533. package/dist/phoenix/utils/run-command.d.ts +11 -0
  534. package/dist/phoenix/utils/run-command.js +1 -1
  535. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  536. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  537. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  538. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  539. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  540. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  541. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  542. package/dist/react-sdk/domain-context/index.js +1 -1
  543. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  544. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  545. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  546. package/dist/ui-sdk/theme/types.d.ts +1 -1
  547. package/package.json +46 -35
  548. package/schema/domain-spec.json +1201 -217
  549. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  550. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  551. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +0 -16
  552. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  553. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  554. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -1 +1 @@
1
- export*from"./aliases.js";export*from"./all-names.js";export*from"./common-types.js";export*from"./configuration-schema.js";export*from"./data-schemas.js";export*from"./defaults.js";export*from"./entity-schema.js";export*from"./entity-types.js";export*from"./model-version.js";export*from"./model-version-key.js";export*from"./names/index.js";export*from"./presets.js";export*from"./resolved-shapes.js";export*from"./session-data-schema.js";export*from"./shapes/index.js";
1
+ export*from"./aliases.js";export*from"./all-names.js";export*from"./common-types.js";export*from"./configuration-schema.js";export*from"./data-schemas.js";export*from"./defaults.js";export*from"./entity-schema.js";export*from"./entity-types.js";export*from"./model-version.js";export*from"./model-version-key.js";export*from"./model-type-resolution.js";export*from"./names/index.js";export*from"./presets.js";export*from"./resolved-shapes.js";export*from"./session-data-schema.js";export*from"./shapes/index.js";
@@ -0,0 +1,10 @@
1
+ import type { PhoenixDefinitions } from '../../../core/index.js';
2
+ import { type ValueTypeResolution } from '../common/index.js';
3
+ import type { ModelVersion } from './model-version.js';
4
+ /** What reading the type of a schema of the model needs: its refs and its entity names. */
5
+ export type ModelTypeResolution = Omit<ValueTypeResolution, 'author' | 'definitions'>;
6
+ /**
7
+ * Resolves the refs of a model's schemas (its common types and the phoenix definitions) and the
8
+ * entity types an entity type or alias name stands for.
9
+ */
10
+ export declare const ModelTypeResolution: (model: ModelVersion, phxDefinitions: PhoenixDefinitions) => ModelTypeResolution;
@@ -0,0 +1 @@
1
+ import{createSchemaRefResolver as e}from"../common/index.js";export const ModelTypeResolution=(o,r)=>({resolveRef:e(o.commonTypes,r),entityTypes:e=>{for(let[r,t]of o.aliases)if(String(r)===e)return t.map(String);return[e]}});
@@ -1 +1 @@
1
- import{isArray as e}from"@salsita-ai/common/utils";import{ASSISTANT_HINTS as t,buildAssistantManifest as i,describeAssistantValues as r,mergeAssistantFields as n}from"#package/domain";import{DiagnosticCode as s,diagnosticMessages as o}from"../../../../errors/index.js";import{createSchemaRefResolver as a,isNullableSchema as l,phxDefinitionRefName as p}from"../../common/index.js";import{resolveAssistantFieldType as S}from"./assistant-field-type.js";let d="AnyDomainEntity",c={section:"childRecipes",component:"childEntityRecipes",mutation:"addChild"},N={section:"replaceRecipes",component:"replaceEntityRecipes",mutation:"replaceEntity"},T=new Set(["id","type","meta"]),f=new Set(["Query","Mutation","Navigation","RecipeGroup","Recipe","DryRun","DryRunError","FieldOption","JSON","String","Int","Float","Boolean","ID"]),m=new Set(["id","type"]),u="A string, a message descriptor or a multilingual object; passed without translation.",A=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],E=(e,{property:t,writableKey:i},n,{resolveRef:a,exposed:l,sources:p},d)=>{let c=Object.entries(A(p,e)??{}),N=l.get(e)?.find(({source:e})=>e===t)?.name??c.find(([,{source:e}])=>e===t)?.[0],T=void 0===N?c.find(([e])=>e===t)?.[1]:void 0;if(T)return void d.at(i,t).error(s.ASSISTANT_FIELD_NAME_CONFLICT,o.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[T.source,t],`${i}.${t}`));let{type:f,enumValues:m,localized:E,description:_}=S(n,a),O={...f,nonNull:!1},y=N??t,I=void 0===N?r(_,m):void 0;return E?{name:y,property:t,type:{kind:"scalar",name:"JSON",nonNull:!1},description:I?`${I} ${u}`:u}:{name:y,property:t,type:O,...void 0===I?{}:{description:I}}},_=(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))},O=(...e)=>t.filter(t=>e.some(e=>e?.includes(t))),y=(e,t,i,r)=>{let{model:n}=i,a=new Map,l=new Map;for(let[p,{groups:S,hints:d}]of Object.entries(e)){let e=n.entityTypes.find(e=>e===p),c=e?[e]:[...n.aliases].find(([e])=>e===p)?.[1];if(!c){r.at(p).error(s.ASSISTANT_UNKNOWN_TYPE,o.ASSISTANT_UNKNOWN_TYPE(t.section,p));continue}for(let[e,n]of(c.forEach(e=>l.set(e,O(l.get(e),d))),Object.entries(S))){let l=r.at(p,"groups",e),S=`${p}.groups.${e}`,d={groupId:n?.as??e,instanceName:e,...n?.description===void 0?{}:{description:n.description},dryRuns:n?.allowDryRuns??!0};for(let r of c){let n=_(r,t.component,i),c=a.get(r)??[],N=c.find(e=>e.group.groupId===d.groupId);n.includes(e)?N?l.error(s.ASSISTANT_DUPLICATE_RECIPE_GROUP,o.ASSISTANT_DUPLICATE_RECIPE_GROUP(t,r,d.groupId,[N.entry,S])):a.set(r,[...c,{group:d,entry:S,entryCtx:l}]):l.error(s.ASSISTANT_UNKNOWN_RECIPE_GROUP,o.ASSISTANT_UNKNOWN_RECIPE_GROUP(t,p,e,r,n))}}}let p=n.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`,h=e=>`${e.charAt(0).toUpperCase()+e.slice(1)}Result`,b=e=>{let t=(({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type))(e);return e.$ref||1!==t.length?e:t[0]},g=(e,t)=>{let{type:i,enumValues:n,localized:s,description:o}=S(e,t),a={...i,nonNull:!1},l=s?`${r(o,n)??""} ${u}`.trim():r(o,n);return{type:{...s?{kind:"scalar",name:"JSON",nonNull:!1}:a,nonNull:i.nonNull},...void 0===l?{}:{description:l}}},v=(t,i)=>{let n=(t=>{let i=b(t),r=i?.type==="array"&&i.items&&!e(i.items)?b(i.items):void 0,n=r??i;if(n?.$ref!==void 0&&"$DomainEntity"===p(n.$ref))return{target:n.references??d,list:void 0!==r}})(t);if(n)return{kind:"edge",...n,nullable:l(t,i),...void 0===t.description?{}:{description:t.description}};let{type:s,enumValues:o,localized:a,description:c}=S(t,i),N=r(c,o);return a?{kind:"value",type:{kind:"scalar",name:"JSON",nonNull:s.nonNull},description:`${c??""} ${u}`.trim()}:{kind:"value",type:s,...void 0===N?{}:{description:N}}},R=(e,t)=>{let{type:i,enumValues:r,localized:n,description:s}=S(e,t);return{type:{kind:"value",type:i},localized:!0===n,description:s,enumValues:r}},M=(e,t,i,n,a)=>{let l=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(s.ASSISTANT_UNKNOWN_FIELD,o.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t));let{implementation:a}=n;if("violations"===a.kind)return void r.error(s.ASSISTANT_UNSUPPORTED_EXPRESSION,o.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 R(n.declaredSchema,i.resolveRef)})(e,t,n,a):((e,t,{resolveRef:i},r)=>{let n=Object.entries(e.shape.properties).find(([e])=>e===t)?.[1];return n?R(n,i):void r.error(s.ASSISTANT_UNKNOWN_FIELD,o.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t))})(e,t,n,a);if(!l)return;let p=i?.as??(t.startsWith("$")?`_${t.slice(1)}`:t);return T.has(p)?void a.error(s.ASSISTANT_RESERVED_FIELD_NAME,o.ASSISTANT_RESERVED_FIELD_NAME(e.name,t,p)):{name:p,source:t,type:l.type,localized:l.localized,description:r(i?.description??l.description,l.enumValues),describedByManifest:i?.description!==void 0,enumValues:l.enumValues,valueDescription:i?.description??l.description}},j=(e,t,i,r,a)=>n(t,i,r,(t,i,r)=>{a.error(s.ASSISTANT_FIELD_NAME_CONFLICT,o.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[i,r]))});export const resolveAssistantManifest=(e,{model:t,states:i,phxDefinitions:r,expressions:n,components:l,actions:p},T)=>{let b=T.errors.length,R=T.at("entities"),D=a(t.commonTypes,r);for(let e of t.resolvedShapes.keys())f.has(e)&&T.error(s.ASSISTANT_RESERVED_TYPE_NAME,o.ASSISTANT_RESERVED_TYPE_NAME(e,[...f]));let C=((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=M(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(s.ASSISTANT_UNKNOWN_TYPE,o.ASSISTANT_UNKNOWN_TYPE("entities",t));return r})(e.entities??{},t,R),{resolveRef:D,expressions:n,entityTypes:t.entityTypes},R),P=j(d,[],C.get(d)??[],()=>void 0,T),U=new Map([[d,P]]);for(let e of t.aliases.keys())e!==d&&U.set(e,j(e,[P],C.get(e)??[],()=>void 0,T));for(let e of t.entityTypes){let i=[d,...[...t.aliases].filter(([t,i])=>t!==d&&i.includes(e)).map(([e])=>e)],r=[...t.resolvedShapes].find(([t])=>t===e)?.[1];U.set(e,j(e,i.map(e=>U.get(e)??[]),C.get(e)??[],e=>{let t=Object.entries(r?.properties??{}).find(([t])=>t===e)?.[1];return t&&S(t,D).enumValues},T))}let w=Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries((U.get(e)??[]).map(({name:e,source:t,localized:i})=>[e,i?{source:t,localized:!0}:{source:t}]))])),L=y(e.childRecipes??{},c,{model:t,components:l},T.at("childRecipes")),$=y(e.replaceRecipes??{},N,{model:t,components:l},T.at("replaceRecipes")),W=((e,t,i)=>{let r=new Set;for(let n of Object.keys(e)){let e=t.entityTypes.find(e=>e===n),a=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1];a?a.forEach(e=>r.add(e)):i.at(n).error(s.ASSISTANT_UNKNOWN_TYPE,o.ASSISTANT_UNKNOWN_TYPE("deletable",n))}return t.entityTypes.filter(e=>r.has(e))})(e.deletable??{},t,T.at("deletable")),F=((e,t,i)=>{let{model:r}=t,n=((e,t,i)=>{let r=new Map;for(let[n,a]of Object.entries(e)){let e=t.entityTypes.find(e=>e===n),l=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1],p=[...t.resolvedShapes].find(([e])=>e===n)?.[1];if(!l||!p){i.at(n).error(s.ASSISTANT_UNKNOWN_TYPE,o.ASSISTANT_UNKNOWN_TYPE("writable",n));continue}for(let e of Object.keys(a)){let t=i.at(n,e);e.startsWith("$")||m.has(e)?t.error(s.ASSISTANT_NOT_WRITABLE,o.ASSISTANT_NOT_WRITABLE(n,e)):A(p.properties,e)?l.forEach(t=>{let i=r.get(t)??new Map;r.set(t,i.has(e)?i:i.set(e,n))}):t.error(s.ASSISTANT_UNKNOWN_FIELD,o.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&&A(s.properties,r);return(o&&E(e,{property:r,writableKey:n},o,t,i))??[]});return o.length>0?[{entityType:e,fields:o}]:[]})})(e.writable??{},{model:t,resolveRef:D,exposed:C,sources:w},T.at("writable")),k=((e,t,i,r)=>{let{model:n}=i,a=new Map;for(let[l,p]of Object.entries(e)){let e=n.entityTypes.find(e=>e===l),S=e?[e]:[...n.aliases].find(([e])=>e===l)?.[1]??[];for(let[e,n]of Object.entries(p)){let p=n?.options;if(!p)continue;let d=r.at(l,e,"options"),T=`${l}.${e}`;for(let r of S){let n=t.find(e=>e.entityType===r)?.fields.find(t=>t.property===e);if(!n)continue;let l=p.as??`${n.name}Options`,S=_(r,p.componentType,i),f=a.get(r)??[],m=f.find(e=>e.options.edgeName===l||e.options.field===n.name);if(S.includes(p.instanceName))if(l===c.section||l===N.section)d.error(s.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME,o.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME(T,l,n.name));else if(m)d.error(s.ASSISTANT_DUPLICATE_OPTIONS_EDGE,o.ASSISTANT_DUPLICATE_OPTIONS_EDGE(r,m.options.edgeName===l?{edgeName:l}:{field:n.name},[m.entry,T]));else{let e={field:n.name,edgeName:l,componentType:p.componentType,instanceName:p.instanceName,validate:p.validate??!0,dryRuns:p.allowDryRuns??!0};a.set(r,[...f,{options:e,hints:O(p.hints),entry:T,entryCtx:d}])}else d.error(s.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT,o.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT(T,p,r,S))}}}return a})(e.writable??{},F,{model:t,components:l},T.at("writable"));var K=[L.metaEntries,$.metaEntries,new Map([...k].flatMap(([e,[t]])=>t?[[e,t.entryCtx]]:[]))];for(let e of t.entityTypes){let i=K.flatMap(t=>t.get(e)??[])[0],r=I(e);i&&[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(s.ASSISTANT_META_TYPE_NAME_CONFLICT,o.ASSISTANT_META_TYPE_NAME_CONFLICT(e,r))}let V=t.entityTypes.filter(e=>(L.groups[e]?.length??0)>0||($.groups[e]?.length??0)>0||(k.get(e)?.length??0)>0).map(I),Y=((e,{actions:t,resolveRef:i,builtInMutations:r,typeNames:n},a)=>{let l=[],p=[...t.values()].map(e=>String(e.name));for(let[S,d]of Object.entries(e)){let e=a.at(S),c=[...t.values()].find(e=>e.name===S);if(!c){e.error(s.ASSISTANT_UNKNOWN_ACTION,o.ASSISTANT_UNKNOWN_ACTION(S,p));continue}let N=d?.as??S,T=l.find(e=>e.fieldName===N),f=h(N);if(r.has(N)||T){e.error(s.ASSISTANT_MUTATION_NAME_CONFLICT,o.ASSISTANT_MUTATION_NAME_CONFLICT(S,N,T?`"assistant.actions.${T.actionName}" already exposes`:"the built-in mutation of that name already takes"));continue}if(n.has(f)||l.some(e=>h(e.fieldName)===f)){e.error(s.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT,o.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT(S,N,f));continue}let m=d?.description??c.description;l.push({fieldName:N,actionName:S,...void 0===m?{}:{description:m},args:Object.fromEntries(Object.entries(c.params).map(([e,{schema:t}])=>[e,g(t,i)])),result:Object.fromEntries(Object.entries(c.result).map(([e,t])=>[e,v(t,i)]))})}return l})(e.actions??{},{actions:p,resolveRef:D,builtInMutations:new Set(["deleteEntity",c.mutation,N.mutation,...F.map(({entityType:e})=>`modify${e}`)]),typeNames:new Set([...f,...t.resolvedShapes.keys(),...V])},T.at("actions"));if(T.errors.length>b)return;let x=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{hints:O(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,(C.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}}))])),enumValues:Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries(Object.entries(t.resolvedShapes.get(e)?.properties??{}).flatMap(([e,t])=>{let i=S(t,D).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=A(t.resolvedShapes.get(r)?.properties??{},i),s=n&&E(r,{property:i,writableKey:e},n,{model:t,resolveRef:D,exposed:new Map,sources:{}},T.at("writable")),o=k.get(r)?.find(t=>t.entry===`${e}.${i}`);return s?[[r,{field:s,...S(n,D).localized?{exposedDescription:u}:{},...o?{options:{options:o.options,hints:o.hints}}:{}}]]:[]}))}]))])),childRecipes:x(e.childRecipes??{}),replaceRecipes:x(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:W,writableTypes:F,actionFields:Y,childRecipes:Object.fromEntries(Object.entries(L.groups).map(([e,t])=>[e,{groups:t,hints:L.hints.get(e)??[]}])),replaceRecipes:Object.fromEntries(Object.entries($.groups).map(([e,t])=>[e,{groups:t,hints:$.hints.get(e)??[]}])),optionsEdges:Object.fromEntries([...k].map(([e,t])=>[e,t.map(({options:e,hints:t})=>({options:e,hints:t}))])),fields:Object.fromEntries([...U].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,t,r)=>{let n=resolveAssistantManifest(e,t,r);if(n)try{return{...i(n),resolved:n}}catch(e){r.error(s.ASSISTANT_INVALID_SCHEMA,o.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}};
@@ -55,6 +55,88 @@ export interface paths {
55
55
  readonly patch?: never
56
56
  readonly trace?: never
57
57
  }
58
+ readonly '/auth/callback': {
59
+ readonly parameters: {
60
+ readonly query?: never
61
+ readonly header?: never
62
+ readonly path?: never
63
+ readonly cookie?: never
64
+ }
65
+ readonly get: operations['completeBrowserLogin']
66
+ readonly put?: never
67
+ readonly post?: never
68
+ readonly delete?: never
69
+ readonly options?: never
70
+ readonly head?: never
71
+ readonly patch?: never
72
+ readonly trace?: never
73
+ }
74
+ readonly '/auth/config': {
75
+ readonly parameters: {
76
+ readonly query?: never
77
+ readonly header?: never
78
+ readonly path?: never
79
+ readonly cookie?: never
80
+ }
81
+ readonly get: operations['getBrowserAuthConfig']
82
+ readonly put?: never
83
+ readonly post?: never
84
+ readonly delete?: never
85
+ readonly options?: never
86
+ readonly head?: never
87
+ readonly patch?: never
88
+ readonly trace?: never
89
+ }
90
+ readonly '/auth/identity': {
91
+ readonly parameters: {
92
+ readonly query?: never
93
+ readonly header?: never
94
+ readonly path?: never
95
+ readonly cookie?: never
96
+ }
97
+ readonly get?: never
98
+ readonly put?: never
99
+ /** @description Resolve a verified customer Cognito identity to a stable Phoenix account and its active workspaces. Creates an empty account on first use; does not grant project or system access. */
100
+ readonly post: operations['resolveIdentity']
101
+ readonly delete?: never
102
+ readonly options?: never
103
+ readonly head?: never
104
+ readonly patch?: never
105
+ readonly trace?: never
106
+ }
107
+ readonly '/auth/login': {
108
+ readonly parameters: {
109
+ readonly query?: never
110
+ readonly header?: never
111
+ readonly path?: never
112
+ readonly cookie?: never
113
+ }
114
+ readonly get: operations['startBrowserLogin']
115
+ readonly put?: never
116
+ readonly post?: never
117
+ readonly delete?: never
118
+ readonly options?: never
119
+ readonly head?: never
120
+ readonly patch?: never
121
+ readonly trace?: never
122
+ }
123
+ readonly '/auth/logout': {
124
+ readonly parameters: {
125
+ readonly query?: never
126
+ readonly header?: never
127
+ readonly path?: never
128
+ readonly cookie?: never
129
+ }
130
+ readonly get?: never
131
+ readonly put?: never
132
+ /** @description Destroy the local session and return the fixed Cognito hosted logout URL. Requires the exact shared Studio Origin. */
133
+ readonly post: operations['endBrowserSession']
134
+ readonly delete?: never
135
+ readonly options?: never
136
+ readonly head?: never
137
+ readonly patch?: never
138
+ readonly trace?: never
139
+ }
58
140
  readonly '/auth/me': {
59
141
  readonly parameters: {
60
142
  readonly query?: never
@@ -72,6 +154,23 @@ export interface paths {
72
154
  readonly patch?: never
73
155
  readonly trace?: never
74
156
  }
157
+ readonly '/auth/session': {
158
+ readonly parameters: {
159
+ readonly query?: never
160
+ readonly header?: never
161
+ readonly path?: never
162
+ readonly cookie?: never
163
+ }
164
+ /** @description Read the opaque browser session and current account status/memberships. Requires the exact shared Studio Origin. */
165
+ readonly get: operations['getBrowserSession']
166
+ readonly put?: never
167
+ readonly post?: never
168
+ readonly delete?: never
169
+ readonly options?: never
170
+ readonly head?: never
171
+ readonly patch?: never
172
+ readonly trace?: never
173
+ }
75
174
  readonly '/auth/token': {
76
175
  readonly parameters: {
77
176
  readonly query?: never
@@ -1603,6 +1702,299 @@ export interface operations {
1603
1702
  }
1604
1703
  }
1605
1704
  }
1705
+ readonly completeBrowserLogin: {
1706
+ readonly parameters: {
1707
+ readonly query: {
1708
+ readonly code: string
1709
+ readonly state: string
1710
+ }
1711
+ readonly header?: never
1712
+ readonly path?: never
1713
+ readonly cookie?: never
1714
+ }
1715
+ readonly requestBody?: never
1716
+ readonly responses: {
1717
+ /** @description Redirect to the configured sign-in or Studio destination. */
1718
+ readonly 302: {
1719
+ headers: {
1720
+ readonly [name: string]: unknown
1721
+ }
1722
+ content: {
1723
+ readonly 'application/json': Record<string, unknown>
1724
+ }
1725
+ }
1726
+ /** @description Bad Request! */
1727
+ readonly 400: {
1728
+ headers: {
1729
+ readonly [name: string]: unknown
1730
+ }
1731
+ content: {
1732
+ readonly 'application/json': components['schemas']['BadRequestError']
1733
+ }
1734
+ }
1735
+ /** @description Unauthorized! */
1736
+ readonly 401: {
1737
+ headers: {
1738
+ readonly [name: string]: unknown
1739
+ }
1740
+ content: {
1741
+ readonly 'application/json': components['schemas']['UnauthorizedError']
1742
+ }
1743
+ }
1744
+ /** @description Forbidden! */
1745
+ readonly 403: {
1746
+ headers: {
1747
+ readonly [name: string]: unknown
1748
+ }
1749
+ content: {
1750
+ readonly 'application/json': components['schemas']['ForbiddenError']
1751
+ }
1752
+ }
1753
+ /** @description Not Found! */
1754
+ readonly 404: {
1755
+ headers: {
1756
+ readonly [name: string]: unknown
1757
+ }
1758
+ content: {
1759
+ readonly 'application/json': components['schemas']['NotFoundError']
1760
+ }
1761
+ }
1762
+ /** @description Service Unavailable! */
1763
+ readonly 503: {
1764
+ headers: {
1765
+ readonly [name: string]: unknown
1766
+ }
1767
+ content: {
1768
+ readonly 'application/json': components['schemas']['ServiceUnavailableError']
1769
+ }
1770
+ }
1771
+ /** @description An unexpected error occurred! */
1772
+ readonly default: {
1773
+ headers: {
1774
+ readonly [name: string]: unknown
1775
+ }
1776
+ content: {
1777
+ readonly 'application/json': components['schemas']['DefaultResponse']
1778
+ }
1779
+ }
1780
+ }
1781
+ }
1782
+ readonly getBrowserAuthConfig: {
1783
+ readonly parameters: {
1784
+ readonly query?: never
1785
+ readonly header?: never
1786
+ readonly path?: never
1787
+ readonly cookie?: never
1788
+ }
1789
+ readonly requestBody?: never
1790
+ readonly responses: {
1791
+ /** @description Shared Studio origin when browser sign-in is configured; null otherwise. */
1792
+ readonly 200: {
1793
+ headers: {
1794
+ readonly [name: string]: unknown
1795
+ }
1796
+ content: {
1797
+ readonly 'application/json': {
1798
+ readonly studioOrigin: string | null
1799
+ }
1800
+ }
1801
+ }
1802
+ /** @description An unexpected error occurred! */
1803
+ readonly default: {
1804
+ headers: {
1805
+ readonly [name: string]: unknown
1806
+ }
1807
+ content: {
1808
+ readonly 'application/json': components['schemas']['DefaultResponse']
1809
+ }
1810
+ }
1811
+ }
1812
+ }
1813
+ readonly resolveIdentity: {
1814
+ readonly parameters: {
1815
+ readonly query?: never
1816
+ readonly header?: never
1817
+ readonly path?: never
1818
+ readonly cookie?: never
1819
+ }
1820
+ readonly requestBody?: never
1821
+ readonly responses: {
1822
+ /** @description The Phoenix account and its active Cognito customer memberships. */
1823
+ readonly 200: {
1824
+ headers: {
1825
+ readonly [name: string]: unknown
1826
+ }
1827
+ content: {
1828
+ readonly 'application/json': {
1829
+ /** Format: uuid */
1830
+ readonly userId: string
1831
+ readonly workspaces: readonly {
1832
+ /** Format: uuid */
1833
+ readonly customerId: string
1834
+ readonly name: string
1835
+ /** @enum {string} */
1836
+ readonly role: 'user' | 'admin' | 'superadmin'
1837
+ readonly slug: string
1838
+ readonly tags: readonly string[]
1839
+ /** @enum {string} */
1840
+ readonly type: 'standard' | 'sdk_builder'
1841
+ }[]
1842
+ }
1843
+ }
1844
+ }
1845
+ /** @description Unauthorized! */
1846
+ readonly 401: {
1847
+ headers: {
1848
+ readonly [name: string]: unknown
1849
+ }
1850
+ content: {
1851
+ readonly 'application/json': components['schemas']['UnauthorizedError']
1852
+ }
1853
+ }
1854
+ /** @description Forbidden! */
1855
+ readonly 403: {
1856
+ headers: {
1857
+ readonly [name: string]: unknown
1858
+ }
1859
+ content: {
1860
+ readonly 'application/json': components['schemas']['ForbiddenError']
1861
+ }
1862
+ }
1863
+ /** @description Not Found! */
1864
+ readonly 404: {
1865
+ headers: {
1866
+ readonly [name: string]: unknown
1867
+ }
1868
+ content: {
1869
+ readonly 'application/json': components['schemas']['NotFoundError']
1870
+ }
1871
+ }
1872
+ /** @description Service Unavailable! */
1873
+ readonly 503: {
1874
+ headers: {
1875
+ readonly [name: string]: unknown
1876
+ }
1877
+ content: {
1878
+ readonly 'application/json': components['schemas']['ServiceUnavailableError']
1879
+ }
1880
+ }
1881
+ /** @description An unexpected error occurred! */
1882
+ readonly default: {
1883
+ headers: {
1884
+ readonly [name: string]: unknown
1885
+ }
1886
+ content: {
1887
+ readonly 'application/json': components['schemas']['DefaultResponse']
1888
+ }
1889
+ }
1890
+ }
1891
+ }
1892
+ readonly startBrowserLogin: {
1893
+ readonly parameters: {
1894
+ readonly query?: never
1895
+ readonly header?: never
1896
+ readonly path?: never
1897
+ readonly cookie?: never
1898
+ }
1899
+ readonly requestBody?: never
1900
+ readonly responses: {
1901
+ /** @description Redirect to the configured sign-in or Studio destination. */
1902
+ readonly 302: {
1903
+ headers: {
1904
+ readonly [name: string]: unknown
1905
+ }
1906
+ content: {
1907
+ readonly 'application/json': Record<string, unknown>
1908
+ }
1909
+ }
1910
+ /** @description Bad Request! */
1911
+ readonly 400: {
1912
+ headers: {
1913
+ readonly [name: string]: unknown
1914
+ }
1915
+ content: {
1916
+ readonly 'application/json': components['schemas']['BadRequestError']
1917
+ }
1918
+ }
1919
+ /** @description Not Found! */
1920
+ readonly 404: {
1921
+ headers: {
1922
+ readonly [name: string]: unknown
1923
+ }
1924
+ content: {
1925
+ readonly 'application/json': components['schemas']['NotFoundError']
1926
+ }
1927
+ }
1928
+ /** @description An unexpected error occurred! */
1929
+ readonly default: {
1930
+ headers: {
1931
+ readonly [name: string]: unknown
1932
+ }
1933
+ content: {
1934
+ readonly 'application/json': components['schemas']['DefaultResponse']
1935
+ }
1936
+ }
1937
+ }
1938
+ }
1939
+ readonly endBrowserSession: {
1940
+ readonly parameters: {
1941
+ readonly query?: never
1942
+ readonly header?: never
1943
+ readonly path?: never
1944
+ readonly cookie?: never
1945
+ }
1946
+ readonly requestBody?: never
1947
+ readonly responses: {
1948
+ /** @description Navigate to this URL to finish hosted logout. */
1949
+ readonly 200: {
1950
+ headers: {
1951
+ readonly [name: string]: unknown
1952
+ }
1953
+ content: {
1954
+ readonly 'application/json': {
1955
+ /** Format: uri */
1956
+ readonly logoutUrl: string
1957
+ }
1958
+ }
1959
+ }
1960
+ /** @description Bad Request! */
1961
+ readonly 400: {
1962
+ headers: {
1963
+ readonly [name: string]: unknown
1964
+ }
1965
+ content: {
1966
+ readonly 'application/json': components['schemas']['BadRequestError']
1967
+ }
1968
+ }
1969
+ /** @description Forbidden! */
1970
+ readonly 403: {
1971
+ headers: {
1972
+ readonly [name: string]: unknown
1973
+ }
1974
+ content: {
1975
+ readonly 'application/json': components['schemas']['ForbiddenError']
1976
+ }
1977
+ }
1978
+ /** @description Not Found! */
1979
+ readonly 404: {
1980
+ headers: {
1981
+ readonly [name: string]: unknown
1982
+ }
1983
+ content: {
1984
+ readonly 'application/json': components['schemas']['NotFoundError']
1985
+ }
1986
+ }
1987
+ /** @description An unexpected error occurred! */
1988
+ readonly default: {
1989
+ headers: {
1990
+ readonly [name: string]: unknown
1991
+ }
1992
+ content: {
1993
+ readonly 'application/json': components['schemas']['DefaultResponse']
1994
+ }
1995
+ }
1996
+ }
1997
+ }
1606
1998
  readonly getApiSession: {
1607
1999
  readonly parameters: {
1608
2000
  readonly query?: never
@@ -1652,6 +2044,77 @@ export interface operations {
1652
2044
  }
1653
2045
  }
1654
2046
  }
2047
+ readonly getBrowserSession: {
2048
+ readonly parameters: {
2049
+ readonly query?: never
2050
+ readonly header?: never
2051
+ readonly path?: never
2052
+ readonly cookie?: never
2053
+ }
2054
+ readonly requestBody?: never
2055
+ readonly responses: {
2056
+ /** @description Current account and fixed session expiry, in Unix milliseconds. */
2057
+ readonly 200: {
2058
+ headers: {
2059
+ readonly [name: string]: unknown
2060
+ }
2061
+ content: {
2062
+ readonly 'application/json': {
2063
+ readonly expiresAt: number
2064
+ /** Format: uuid */
2065
+ readonly userId: string
2066
+ readonly workspaces: readonly {
2067
+ /** Format: uuid */
2068
+ readonly customerId: string
2069
+ readonly name: string
2070
+ /** @enum {string} */
2071
+ readonly role: 'user' | 'admin' | 'superadmin'
2072
+ readonly slug: string
2073
+ readonly tags: readonly string[]
2074
+ /** @enum {string} */
2075
+ readonly type: 'standard' | 'sdk_builder'
2076
+ }[]
2077
+ }
2078
+ }
2079
+ }
2080
+ /** @description Unauthorized! */
2081
+ readonly 401: {
2082
+ headers: {
2083
+ readonly [name: string]: unknown
2084
+ }
2085
+ content: {
2086
+ readonly 'application/json': components['schemas']['UnauthorizedError']
2087
+ }
2088
+ }
2089
+ /** @description Forbidden! */
2090
+ readonly 403: {
2091
+ headers: {
2092
+ readonly [name: string]: unknown
2093
+ }
2094
+ content: {
2095
+ readonly 'application/json': components['schemas']['ForbiddenError']
2096
+ }
2097
+ }
2098
+ /** @description Not Found! */
2099
+ readonly 404: {
2100
+ headers: {
2101
+ readonly [name: string]: unknown
2102
+ }
2103
+ content: {
2104
+ readonly 'application/json': components['schemas']['NotFoundError']
2105
+ }
2106
+ }
2107
+ /** @description An unexpected error occurred! */
2108
+ readonly default: {
2109
+ headers: {
2110
+ readonly [name: string]: unknown
2111
+ }
2112
+ content: {
2113
+ readonly 'application/json': components['schemas']['DefaultResponse']
2114
+ }
2115
+ }
2116
+ }
2117
+ }
1655
2118
  readonly exchangeAuthCode: {
1656
2119
  readonly parameters: {
1657
2120
  readonly query?: never
@@ -2,7 +2,7 @@ import type { AnyClientTool } from '@tanstack/ai';
2
2
  import { type UIMessage } from '@tanstack/ai-client';
3
3
  import { type ObservableWithLastValue } from '@salsita-ai/common/utils';
4
4
  import { type AuthorizedPhoenixApiClient } from '#package/client';
5
- import type { DomainContextSelectors, DomainServicesSelectors, InitializableSystem, SessionAssistantSetup, SpecSelectors } from '#package/domain';
5
+ import type { AssistantManifest, DomainContextSelectors, DomainServicesSelectors, InitializableSystem, SessionAssistantSetup, SpecSelectors } from '#package/domain';
6
6
  import type { ConfiguratorExtensionSelectors } from '../../selectors.js';
7
7
  /** A tool of the assistant that the model calls and the browser runs, as the chat client accepts it. */
8
8
  export type AssistantClientTool = AnyClientTool;
@@ -127,11 +127,31 @@ export declare class AssistantSystem implements InitializableSystem {
127
127
  private readonly _recorder;
128
128
  /** The recorder's subscription to the committed emissions of the store; made by the first `initialize()`. */
129
129
  private _recording;
130
+ /**
131
+ * The tool call of every `apply` by the state it committed or held, for as long as the state
132
+ * lives: an undone state that the undo history dropped is forgotten with it.
133
+ *
134
+ * Accepted: a commit the project's `registerIsUndoable` keeps out of the history never becomes a
135
+ * step, so the row of its `apply` never offers Undo.
136
+ */
137
+ private readonly _applyToolCallIds;
138
+ private readonly _undoTipToolCallId;
130
139
  constructor(_context: AssistantSystemContext);
131
140
  /** The conversation. It never completes, and holds the empty chat whenever no chat is active. */
132
141
  readonly chat$: ObservableWithLastValue<AssistantChatSnapshot>;
133
142
  /** The state of the built-in panel. It never completes. */
134
143
  readonly panel$: ObservableWithLastValue<AssistantPanelSnapshot>;
144
+ /**
145
+ * The `apply` tool call whose committed state is the step of the undo history the configuration is
146
+ * at; nothing when that step is not a change of the assistant. It never completes.
147
+ */
148
+ readonly undoTipToolCallId$: ObservableWithLastValue<string | undefined>;
149
+ /**
150
+ * The manifest the initialized session runs, narrowed by the project's setup handler: what the
151
+ * agent can read, so the panel reads recipes and options the way the agent does. `null` while the
152
+ * assistant is off for the session or its setup failed.
153
+ */
154
+ getSessionManifest: () => AssistantManifest | null;
135
155
  /**
136
156
  * A new configuration load: the chat of the previous one is deactivated and both observables go
137
157
  * back to their empty values. An activation that is still held outlives it and gets the chat of
@@ -227,6 +247,15 @@ export declare class AssistantSystem implements InitializableSystem {
227
247
  * server is therefore gone from the thread and has to be written again.
228
248
  */
229
249
  reloadThread: () => void;
250
+ /**
251
+ * Undoes the changes of the given `apply` tool calls, one undo step at a time, while the step the
252
+ * configuration is at is one of them. A change the user made in between stops it, so it is never
253
+ * taken back; the non-undoable commits made on top of an undone change go with it, as with the
254
+ * toolbar's undo.
255
+ *
256
+ * Accepted: like the toolbar's undo, it does not check the session mode; only `apply` requires `owner`.
257
+ */
258
+ undoToolCalls: (toolCallIds: ReadonlySet<string>) => void;
230
259
  setOpen: (open: boolean) => void;
231
260
  setInputFocused: (isInputFocused: boolean) => void;
232
261
  /**
@@ -237,6 +266,12 @@ export declare class AssistantSystem implements InitializableSystem {
237
266
  private _findRefusedMessageIndex;
238
267
  private _sendOn;
239
268
  private _resume;
269
+ /**
270
+ * The `apply` call whose committed state is the step the configuration is at. Nothing at the bottom
271
+ * of the history, where nothing can be undone: that step was not made by a change it could take back.
272
+ */
273
+ private _findTipToolCallId;
274
+ private _refreshUndoTip;
240
275
  private _committedState;
241
276
  private _patchPanel;
242
277
  /**