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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +5 -1
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/legacy-admin/Application.js +1 -1
  4. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  5. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  6. package/dist/application-spec/core/index.d.ts +1 -3
  7. package/dist/application-spec/core/index.js +1 -1
  8. package/dist/application-spec/core/json-schema.d.ts +2 -52
  9. package/dist/application-spec/core/markers/index.d.ts +1 -1
  10. package/dist/application-spec/core/markers/index.js +1 -1
  11. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  12. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  13. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  14. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  15. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  16. package/dist/application-spec/errors/diagnostic-codes.d.ts +8 -1
  17. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  18. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  19. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  20. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  21. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  22. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  24. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  25. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +1 -1
  27. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  29. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +1 -1
  30. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +1 -2
  31. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +1 -2
  32. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +1 -2
  33. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +1 -1
  34. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
  35. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -2
  36. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
  37. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
  38. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
  39. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +1 -2
  40. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  41. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  42. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +1 -1
  43. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +1 -2
  44. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +1 -2
  45. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +1 -2
  47. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  48. package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
  49. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +1 -1
  50. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  51. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +96 -31
  52. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +1 -1
  53. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  54. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  55. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  56. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  57. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  58. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  59. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  60. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  61. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  62. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  63. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  64. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  65. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  66. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  67. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  68. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  69. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  70. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  71. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  72. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  73. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  74. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  75. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  76. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  77. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  78. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  79. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  80. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  81. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  82. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  83. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  84. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  85. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  86. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  87. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  88. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  89. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  90. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  91. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  92. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  93. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  94. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  95. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  96. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  97. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  98. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  99. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  100. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  101. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  102. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  103. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  104. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  105. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  106. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  108. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  109. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  110. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  111. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  112. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  113. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  114. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  115. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  116. package/dist/client/authorized-client.d.ts +3 -1
  117. package/dist/client/authorized-client.js +1 -1
  118. package/dist/client/contract.d.ts +30 -1
  119. package/dist/client/contract.js +1 -1
  120. package/dist/client/index.d.ts +1 -1
  121. package/dist/client/local-authorized-client.d.ts +3 -1
  122. package/dist/client/local-authorized-client.js +1 -1
  123. package/dist/client/memory-authorized-client.d.ts +4 -1
  124. package/dist/client/memory-authorized-client.js +1 -1
  125. package/dist/client/phoenix-api.d.ts +259 -1
  126. package/dist/configurator/ConfiguratorApp.js +1 -1
  127. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  128. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +64 -6
  129. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  130. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  131. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  132. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  133. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  134. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -9
  135. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  136. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  137. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  138. package/dist/configurator/common/configurator-interface.d.ts +2 -2
  139. package/dist/configurator/common/configurator-interface.js +1 -1
  140. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  141. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  142. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  143. package/dist/configurator/configurator-context/index.d.ts +0 -5
  144. package/dist/configurator/configurator-context/index.js +1 -1
  145. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  146. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  147. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  148. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  149. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  150. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  151. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  152. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  153. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  154. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  155. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  156. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  157. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  158. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  159. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  160. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  161. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  162. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  163. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  164. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  165. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  166. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  167. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  168. package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
  169. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  170. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  171. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  172. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  173. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  174. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  175. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  176. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  177. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  178. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  179. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  180. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  181. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  182. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  183. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  184. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  185. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  186. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  187. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  188. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  189. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  190. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  191. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  192. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  193. package/dist/docs/index.json +1 -1
  194. package/dist/docs/phoenix/configurator-interface.mdx +1 -1
  195. package/dist/docs/phoenix/domain-model.mdx +4 -1
  196. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  197. package/dist/docs/phoenix/migration-guide.mdx +3 -3
  198. package/dist/docs/phoenix/phoenix-cli.mdx +40 -7
  199. package/dist/docs/phoenix/project-structure.mdx +23 -19
  200. package/dist/docs/phoenix/sdk-builder-workflow.mdx +2 -2
  201. package/dist/docs/phoenix/webhooks.mdx +9 -1
  202. package/dist/domain/application/application-config.d.ts +6 -24
  203. package/dist/domain/application/assistant/assistant-manifest.d.ts +13 -3
  204. package/dist/domain/application/assistant/assistant-manifest.js +1 -1
  205. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +5 -9
  206. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  207. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  208. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  209. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  210. package/dist/domain/application/assistant/index.d.ts +3 -3
  211. package/dist/domain/application/assistant/index.js +1 -1
  212. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  213. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -4
  214. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  215. package/dist/domain/application/assistant-mutations.js +1 -1
  216. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  217. package/dist/domain/available-system-components/available-system-components.js +1 -0
  218. package/dist/domain/available-system-components/index.d.ts +1 -0
  219. package/dist/domain/available-system-components/index.js +1 -0
  220. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  221. package/dist/domain/domain-builder/domain-builder.js +1 -0
  222. package/dist/domain/domain-builder/index.d.ts +1 -0
  223. package/dist/domain/domain-builder/index.js +1 -0
  224. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  225. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  226. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  227. package/dist/domain/extensions/export-images/index.js +1 -1
  228. package/dist/domain/extensions/index.d.ts +1 -1
  229. package/dist/domain/extensions/index.js +1 -1
  230. package/dist/domain/index.d.ts +3 -2
  231. package/dist/domain/index.js +1 -1
  232. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  233. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  234. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  235. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  236. package/dist/domain/spec/application/configurator-states.js +1 -0
  237. package/dist/domain/spec/application/index.d.ts +5 -0
  238. package/dist/domain/spec/application/index.js +1 -0
  239. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  240. package/dist/domain/spec/components/bindings/index.js +1 -0
  241. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  242. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  243. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  244. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  245. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  246. package/dist/domain/spec/components/component-entry.js +1 -0
  247. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  248. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  249. package/dist/domain/spec/components/component-filters.js +1 -0
  250. package/dist/domain/spec/components/components.d.ts +4 -0
  251. package/dist/domain/spec/components/components.js +1 -0
  252. package/dist/domain/spec/components/index.d.ts +6 -0
  253. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  254. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  255. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  256. package/dist/domain/spec/enhanced-json/index.js +1 -0
  257. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  258. package/dist/domain/spec/expressions/expression.js +1 -0
  259. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  260. package/dist/domain/spec/expressions/expressions.js +1 -0
  261. package/dist/domain/spec/expressions/index.d.ts +5 -0
  262. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  263. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  264. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  265. package/dist/domain/spec/index.d.ts +9 -0
  266. package/dist/domain/spec/index.js +1 -0
  267. package/dist/domain/spec/invariants/index.d.ts +2 -0
  268. package/dist/domain/spec/invariants/index.js +1 -0
  269. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  270. package/dist/domain/spec/invariants/invariant.js +1 -0
  271. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  272. package/dist/domain/spec/invariants/invariants.js +1 -0
  273. package/dist/domain/spec/json-schema.d.ts +52 -0
  274. package/dist/domain/spec/json-schema.js +1 -0
  275. package/dist/domain/spec/markers/index.d.ts +3 -0
  276. package/dist/domain/spec/markers/index.js +1 -0
  277. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  278. package/dist/domain/spec/markers/msg-marker.js +1 -0
  279. package/dist/domain/spec/model/aliases.d.ts +9 -0
  280. package/dist/domain/spec/model/aliases.js +1 -0
  281. package/dist/domain/spec/model/common-types.d.ts +15 -0
  282. package/dist/domain/spec/model/common-types.js +1 -0
  283. package/dist/domain/spec/model/defaults.d.ts +33 -0
  284. package/dist/domain/spec/model/defaults.js +1 -0
  285. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  286. package/dist/domain/spec/model/entity-types.js +1 -0
  287. package/dist/domain/spec/model/index.d.ts +7 -0
  288. package/dist/domain/spec/model/index.js +1 -0
  289. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  290. package/dist/domain/spec/model/model-version-key.js +1 -0
  291. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  292. package/dist/domain/spec/model/names/action-name.js +1 -0
  293. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  294. package/dist/domain/spec/model/names/alias-name.js +1 -0
  295. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  296. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  297. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  298. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  299. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  300. package/dist/domain/spec/model/names/expression-name.js +1 -0
  301. package/dist/domain/spec/model/names/index.d.ts +9 -0
  302. package/dist/domain/spec/model/names/index.js +1 -0
  303. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  304. package/dist/domain/spec/model/names/instance-name.js +1 -0
  305. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  306. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  307. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  308. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  309. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  310. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  311. package/dist/domain/spec/model/presets.d.ts +30 -0
  312. package/dist/domain/spec/model/presets.js +1 -0
  313. package/dist/domain/spec/sections/actions.d.ts +23 -0
  314. package/dist/domain/spec/sections/actions.js +1 -0
  315. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  316. package/dist/domain/spec/sections/app-metadata.js +1 -0
  317. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  318. package/dist/domain/spec/sections/application-version.js +1 -0
  319. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  320. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  321. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  322. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  323. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  324. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  325. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  326. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  327. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  328. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  329. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  330. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  331. package/dist/domain/spec/sections/index.d.ts +9 -0
  332. package/dist/domain/spec/sections/index.js +1 -0
  333. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  334. package/dist/domain/spec/sections/infra/acl.js +1 -0
  335. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  336. package/dist/domain/spec/sections/infra/index.js +1 -0
  337. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  338. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  339. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  340. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  341. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  342. package/dist/domain/spec/sections/state-value.js +1 -0
  343. package/dist/domain/spec/sections/theme.d.ts +10 -0
  344. package/dist/domain/spec/sections/theme.js +1 -0
  345. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  346. package/dist/domain/spec/sections/transformers.js +1 -0
  347. package/dist/domain/spec/sections/ui.d.ts +12 -0
  348. package/dist/domain/spec/sections/ui.js +1 -0
  349. package/dist/domain/system-definitions.js +1 -1
  350. package/dist/domain/utils/index.d.ts +2 -0
  351. package/dist/domain/utils/index.js +1 -0
  352. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  353. package/dist/i18n/locales/cs/messages.js +1 -1
  354. package/dist/i18n/locales/da/messages.js +1 -1
  355. package/dist/i18n/locales/de/messages.js +1 -1
  356. package/dist/i18n/locales/de-AT/messages.js +1 -1
  357. package/dist/i18n/locales/en/messages.js +1 -1
  358. package/dist/i18n/locales/en-AU/messages.js +1 -1
  359. package/dist/i18n/locales/en-GB/messages.js +1 -1
  360. package/dist/i18n/locales/es/messages.js +1 -1
  361. package/dist/i18n/locales/fr/messages.js +1 -1
  362. package/dist/i18n/locales/hu/messages.js +1 -1
  363. package/dist/i18n/locales/it/messages.js +1 -1
  364. package/dist/i18n/locales/nl/messages.js +1 -1
  365. package/dist/i18n/locales/pl/messages.js +1 -1
  366. package/dist/i18n/locales/pt/messages.js +1 -1
  367. package/dist/i18n/locales/ro/messages.js +1 -1
  368. package/dist/i18n/locales/sk/messages.js +1 -1
  369. package/dist/i18n/locales/tr/messages.js +1 -1
  370. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  371. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  372. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  373. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  374. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  375. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  376. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  377. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  378. package/dist/phoenix/application-spec/index.d.ts +1 -0
  379. package/dist/phoenix/application-spec/index.js +1 -1
  380. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  381. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  382. package/dist/phoenix/bin.js +1 -1
  383. package/dist/phoenix/cli.js +1 -1
  384. package/dist/phoenix/commands/activate-deployment.js +1 -1
  385. package/dist/phoenix/commands/build.js +1 -1
  386. package/dist/phoenix/commands/changelog.js +1 -1
  387. package/dist/phoenix/commands/check.js +1 -1
  388. package/dist/phoenix/commands/clean.js +1 -1
  389. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  390. package/dist/phoenix/commands/create-environment.js +1 -1
  391. package/dist/phoenix/commands/data.js +1 -1
  392. package/dist/phoenix/commands/deploy.js +1 -1
  393. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  394. package/dist/phoenix/commands/dev.js +4 -5
  395. package/dist/phoenix/commands/docs.js +1 -1
  396. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  397. package/dist/phoenix/commands/fix.js +1 -1
  398. package/dist/phoenix/commands/index.d.ts +1 -1
  399. package/dist/phoenix/commands/index.js +1 -1
  400. package/dist/phoenix/commands/inspect-assets.js +1 -1
  401. package/dist/phoenix/commands/list-environments.js +1 -1
  402. package/dist/phoenix/commands/login.d.ts +4 -1
  403. package/dist/phoenix/commands/login.js +2 -2
  404. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  405. package/dist/phoenix/commands/register-deployment.js +1 -1
  406. package/dist/phoenix/commands/scene.js +1 -1
  407. package/dist/phoenix/commands/screenshot.js +1 -1
  408. package/dist/phoenix/commands/state.js +1 -1
  409. package/dist/phoenix/commands/story-build.js +3 -3
  410. package/dist/phoenix/commands/story-create.js +1 -1
  411. package/dist/phoenix/commands/story-dev.js +2 -2
  412. package/dist/phoenix/commands/sync.js +1 -1
  413. package/dist/phoenix/commands/variants.js +1 -1
  414. package/dist/phoenix/editor-server/commands-router.js +1 -1
  415. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  416. package/dist/phoenix/editor-server/editor-server.js +1 -1
  417. package/dist/phoenix/editor-server/spec-router.js +1 -1
  418. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  419. package/dist/phoenix/lingui/index.d.ts +1 -0
  420. package/dist/phoenix/lingui/index.js +1 -0
  421. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  422. package/dist/phoenix/lingui/lingui.js +1 -0
  423. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  424. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  425. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  426. package/dist/phoenix/services/cli-credentials.js +1 -1
  427. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  428. package/dist/phoenix/services/cli-exit.js +1 -0
  429. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  430. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  431. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  432. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  433. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  434. package/dist/phoenix/services/deployment/index.js +1 -0
  435. package/dist/phoenix/services/index.d.ts +5 -1
  436. package/dist/phoenix/services/index.js +1 -1
  437. package/dist/phoenix/services/lingui-watcher.js +1 -1
  438. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  439. package/dist/phoenix/services/phoenix-store.js +1 -1
  440. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  441. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  442. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  443. package/dist/phoenix/services/session/index.d.ts +2 -0
  444. package/dist/phoenix/services/session/index.js +1 -0
  445. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  446. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  447. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  448. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  449. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  450. package/dist/phoenix/services/telemetry/index.js +1 -0
  451. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  452. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  453. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  454. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  455. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  456. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  457. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  458. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  459. package/dist/phoenix/services/vite-config.js +1 -1
  460. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  461. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  462. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  463. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  464. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  465. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  466. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  467. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  468. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  469. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  470. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  471. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  472. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  473. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  474. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  475. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  476. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  477. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  478. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  479. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  480. package/dist/react-sdk/domain-application-context/index.js +1 -1
  481. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  482. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  483. package/dist/react-sdk/index.d.ts +5 -0
  484. package/dist/react-sdk/index.js +1 -1
  485. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  486. package/dist/react-sdk/integration/index.d.ts +1 -0
  487. package/dist/react-sdk/integration/index.js +1 -0
  488. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  489. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  490. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  491. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  492. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  493. package/dist/react-sdk/notifications/index.d.ts +1 -0
  494. package/dist/react-sdk/notifications/index.js +1 -0
  495. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  496. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  497. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  498. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  499. package/dist/react-sdk/preset-selection/index.js +1 -0
  500. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  501. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  502. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  503. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  504. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  505. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  506. package/dist/ui-sdk/icons/__generated/index.d.ts +2 -0
  507. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  508. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  509. package/dist/ui-sdk/theme/types.d.ts +1 -1
  510. package/dist/watch/glob-matcher.d.ts +4 -4
  511. package/dist/watch/glob-matcher.js +1 -1
  512. package/dist/watch/watch.d.ts +4 -4
  513. package/dist/watch/watch.js +1 -1
  514. package/package.json +3 -3
  515. package/schema/domain-spec.json +22 -4
  516. package/dist/application-spec/core/components/index.d.ts +0 -2
  517. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  518. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  519. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  520. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  521. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  522. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  523. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  524. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  525. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  526. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  527. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  528. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  529. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  530. package/dist/domain/available-system-components.d.ts +0 -11
  531. package/dist/domain/available-system-components.js +0 -1
  532. package/dist/domain/domain-builder.js +0 -1
  533. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  534. package/dist/phoenix/services/lingui.d.ts +0 -15
  535. package/dist/phoenix/services/lingui.js +0 -1
  536. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  537. package/dist/phoenix/services/phoenix-application.js +0 -1
  538. /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
  539. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  540. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  541. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  542. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  543. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  544. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  545. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  546. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  547. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  548. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  549. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  550. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  551. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  552. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  553. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  554. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  555. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  556. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  557. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  558. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1,12 +1,5 @@
1
- import { Branded } from '@salsita-ai/common/utils';
1
+ import type { Theme as ThemeData } from '#package/domain';
2
2
  import type { MergedTheme } from '../../merge/index.js';
3
- /**
4
- * Validated theme configuration for the configurator UI.
5
- * Preset identifies a built-in theme from getPhoenixThemes(),
6
- * options provides partial overrides passed to the theme factory.
7
- */
8
- export type Theme = Branded<'Theme', {
9
- readonly preset: string;
10
- readonly options: Readonly<Record<string, unknown>>;
11
- }>;
3
+ /** The validated theme configuration; see {@link ThemeData | Theme} in `domain`. */
4
+ export type Theme = ThemeData;
12
5
  export declare const Theme: (merged: MergedTheme) => Theme;
@@ -1,13 +1,6 @@
1
- import { Branded } from '@salsita-ai/common/utils';
1
+ import type { SpecTransformers } from '#package/domain';
2
2
  import type { ParseContext } from '../../../core/index.js';
3
- import type { MergedTransformers, TransformerEntry } from '../../merge/index.js';
4
- /**
5
- * Validated transformer declarations. Each transformer is applied during
6
- * domain state transitions to enforce business rules (e.g. "fixLegsForCircleTop").
7
- * Every entry's name must match a file basename in `src/transformers/`
8
- * (modulo case + dashes — kebab-case files and camelCase YAML names are
9
- * treated as equivalent since runtime matching happens on the `.build('name')`
10
- * label, not the filename).
11
- */
12
- export type Transformers = Branded<'Transformers', readonly TransformerEntry[]>;
3
+ import type { MergedTransformers } from '../../merge/index.js';
4
+ /** The validated transformer declarations; see {@link SpecTransformers} in `domain`. */
5
+ export type Transformers = SpecTransformers;
13
6
  export declare const Transformers: (merged: MergedTransformers, transformerFiles: readonly string[], ctx: ParseContext) => Transformers;
@@ -1,14 +1,5 @@
1
- import { Branded } from '@salsita-ai/common/utils';
1
+ import type { Ui as UiData } from '#package/domain';
2
2
  import type { MergedUi } from '../../merge/index.js';
3
- /**
4
- * Validated UI configuration for the configurator.
5
- * Controls preview behavior, expansion mode, and locale settings.
6
- */
7
- export type Ui = Branded<'Ui', {
8
- readonly preview?: 'always' | 'never' | 'auto' | 'hide';
9
- readonly alwaysExpand?: boolean;
10
- readonly appLoader?: 'legacy' | 'universal';
11
- readonly availableLocales: readonly string[];
12
- readonly textLanguages?: readonly string[];
13
- }>;
3
+ /** The validated user interface configuration; see {@link UiData | Ui} in `domain`. */
4
+ export type Ui = UiData;
14
5
  export declare const Ui: (merged: MergedUi) => Ui;
@@ -1,6 +1,6 @@
1
1
  import type { AccessLevel } from '@salsita-ai/contracts/api';
2
2
  import { type ChatStreamChunk } from '@salsita-ai/contracts/chat';
3
- import { type AssistantChatConnection, type AssistantEarlierThread, type AssistantThreadCompaction, type AuthorizedPhoenixApiClient, type ChatToolCall, type ChatToolCallResult, type ConfigurationPayload, type ConfigurationSchema, type waitForFinalizationResultSettings } from './contract.js';
3
+ import { type AssistantChatConnection, type AssistantEarlierThread, type AssistantImageUpload, type AssistantThreadCompaction, type AuthorizedPhoenixApiClient, type ChatToolCall, type ChatToolCallResult, type ConfigurationPayload, type ConfigurationSchema, type waitForFinalizationResultSettings } from './contract.js';
4
4
  import type { components } from './phoenix-api.js';
5
5
  export declare class AuthorizedClient<FINALIZE_DATA extends Record<string, unknown>, FINALIZE_RESULT extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> implements AuthorizedPhoenixApiClient<FINALIZE_DATA, FINALIZE_RESULT, FRONTEND_DATA> {
6
6
  private readonly _baseUrl;
@@ -28,6 +28,8 @@ export declare class AuthorizedClient<FINALIZE_DATA extends Record<string, unkno
28
28
  getAssistantChatConnection: (configurationId: string) => AssistantChatConnection;
29
29
  compactAssistantThread: (configurationId: string) => Promise<AssistantThreadCompaction>;
30
30
  getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
31
+ uploadAssistantImage: (configurationId: string, image: Blob) => Promise<AssistantImageUpload>;
32
+ getAssistantImage: (configurationId: string, imageId: string) => Promise<Blob>;
31
33
  sendMessage: (configurationId: string, content: string, context?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
32
34
  sendToolCallResults: (configurationId: string, calls: ChatToolCall[], results: ChatToolCallResult[], agent?: string) => Promise<ReadableStream<ChatStreamChunk>>;
33
35
  generateShareLink: (configurationId: string, revisionId: string, expiration: number, access: AccessLevel, baseUrl: string | undefined) => Promise<{
@@ -1 +1 @@
1
- import{match as t}from"ts-pattern";import{InfoError as a}from"@salsita-ai/common/utils";import{isChatError as e}from"@salsita-ai/contracts/chat";import{createApiBaseClient as r}from"./base-client.js";import{AssistantRequestError as i,InvalidAccessKeyError as o}from"./contract.js";let n=()=>new TransformStream({transform(t,a){a.enqueue(t)}}),s=async(t,a)=>{for(;;){let{done:r,value:i}=await t.read();if(r){await a.close();break}for(let t of i.split("\n").filter(t=>""!==t.trim()).map(t=>JSON.parse(t))){if(e(t))return void await a.abort(Error(t.error));await a.write(t)}}},h=(e,r)=>{let i=`${r} API request failed: ${JSON.stringify(e)}`;return t(e).with({statusCode:403,invalidAccessKey:!0},()=>new o).with({statusCode:403},()=>new a(i)).otherwise(()=>Error(i))};export class AuthorizedClient{_baseUrl;_getAccessToken;_getSessionToken;_client;constructor(t,a,e){this._baseUrl=t,this._getAccessToken=a,this._getSessionToken=e,this._client=r(this._baseUrl)}_authHeaders=async()=>{let t=this._getAccessToken(),a=await this._getSessionToken();return{"X-Access-Key":t,Authorization:`Bearer ${a}`}};getConfiguration=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getConfiguration");return e.data};updateConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.PUT("/configurations/{configurationId}",{params:{path:{configurationId:t}},body:a,headers:e});if(r.error)throw h(r.error,"updateConfiguration");return r.data};finalize=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/finalize",{params:{path:{configurationId:t,finalizationUuid:a},query:{locale:r}},body:{finalizeData:e,frontendData:i},headers:o});if(n.error)throw h(n.error,"finalize")};waitForFinalizationToComplete=async(t,a,e)=>{let r=e?.pollingFrequency??500,i=Math.ceil((e?.pollingTimeout??3e4)/r);for(let e=0;e<i;e++){let e=await this._authHeaders(),i=await this._client.GET("/configurations/{configurationId}/{finalizationUuid}/state",{params:{path:{configurationId:t,finalizationUuid:a}},headers:e});if(i.error)throw h(i.error,"getFinalizeJobState");let o=i.data;if("completed"===o.state)return o.result[0];if("failed"===o.state)throw Error("finalization failed");if("unknown"===o.state)throw Error("finalization state is unknown");await new Promise(t=>setTimeout(t,r))}throw Error("finalization did not complete within the specified timeout")};getConfigurationRevision=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/revisions/{revisionId}",{params:{path:{configurationId:t,revisionId:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationRevision");return r.data};getChatConversation=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}/chat",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getChatConversation");return e.data};getSpeechToText=async(t,a)=>{let e=await this._authHeaders(),r=new FormData;r.append("voiceFile",a,"voice.wav");let i=await this._client.POST("/configurations/{configurationId}/chat/stt",{params:{path:{configurationId:t}},headers:e,body:r,bodySerializer:()=>r});if(i.error)throw h(i.error,"getSpeechToText");return i.data.text};getTextToSpeech=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/chat/tts",{params:{path:{configurationId:t}},body:{content:a},headers:e,parseAs:"arrayBuffer"});if(r.error)throw h(r.error,"getTextToSpeech");return new Blob([r.data],{type:"audio/mp3"})};getAssistantChatConnection=t=>({url:new URL(`configurations/${encodeURIComponent(t)}/assistant/chat`,`${this._baseUrl}/`).toString(),headers:this._authHeaders});compactAssistantThread=async t=>{let a=await this._authHeaders(),e=await this._client.POST("/configurations/{configurationId}/assistant/chat/compact",{params:{path:{configurationId:t}},headers:{...a,"Content-Type":null}});if(e.error)throw new i(`compactAssistantThread API request failed: ${JSON.stringify(e.error)}`,e.response.status);return e.data};getAssistantEarlierThread=async(t,a,e)=>{let r=await this._authHeaders(),o=await this._client.GET("/configurations/{configurationId}/assistant/chat/threads/{threadId}",{params:{path:{configurationId:t,threadId:a},query:{limit:e}},headers:r});if(o.error)throw new i(`getAssistantEarlierThread API request failed: ${JSON.stringify(o.error)}`,o.response.status);let{messages:n}=o.data;return{threadId:a,messages:Array.isArray(n)?n:[],previousThreadId:o.response.headers.get("x-assistant-previous-thread")}};sendMessage=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/chat/message",{params:{path:{configurationId:t}},body:{content:a,context:e},headers:r,parseAs:"stream"});if(i.error)throw h(i.error,"sendMessage");let o=i.data?.pipeThrough(new TextDecoderStream).getReader();if(!o)throw Error("sendMessage API response did not contain a readable stream");let c=n();return s(o,c.writable.getWriter()),c.readable};sendToolCallResults=async(t,a,e,r)=>{let i=await this._authHeaders(),o=await this._client.POST("/configurations/{configurationId}/chat/tool-calls",{params:{path:{configurationId:t}},body:{agent:r,calls:a,results:e},headers:i,parseAs:"stream"});if(o.error)throw h(o.error,"sendToolCallResults");let c=o.data?.pipeThrough(new TextDecoderStream).getReader();if(!c)throw Error("sendMessage API response did not contain a readable stream");let u=n();return s(c,u.writable.getWriter()),u.readable};generateShareLink=async(t,a,e,r,i)=>{let o=await this._authHeaders(),n=await this._client.POST("/configurations/{configurationId}/share-link",{params:{path:{configurationId:t}},body:{revisionId:a,expiration:e,access:r,baseUrl:i},headers:o});if(n.error)throw h(n.error,"generateShareLink");return n.data};generateUploadLinks=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/image-upload-links",{params:{path:{configurationId:t,finalizationUuid:a}},body:{names:e},headers:r});if(i.error)throw h(i.error,"generateUploadLinks");return i.data.links};getConfigurationPublicUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/public/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPublicUploadLink");return r.data};getConfigurationPrivateUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};getConfigurationPrivateResourceLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};cloneConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/revisions/{revisionId}/clone",{params:{path:{configurationId:t,revisionId:a}},headers:{...e,"Content-Type":null}});if(r.error)throw h(r.error,"cloneConfiguration");return r.data}}
1
+ import{match as t}from"ts-pattern";import{InfoError as a}from"@salsita-ai/common/utils";import{isChatError as e}from"@salsita-ai/contracts/chat";import{createApiBaseClient as r}from"./base-client.js";import{AssistantRequestError as i,InvalidAccessKeyError as s}from"./contract.js";let o=()=>new TransformStream({transform(t,a){a.enqueue(t)}}),n=async(t,a)=>{for(;;){let{done:r,value:i}=await t.read();if(r){await a.close();break}for(let t of i.split("\n").filter(t=>""!==t.trim()).map(t=>JSON.parse(t))){if(e(t))return void await a.abort(Error(t.error));await a.write(t)}}},h=(e,r)=>{let i=`${r} API request failed: ${JSON.stringify(e)}`;return t(e).with({statusCode:403,invalidAccessKey:!0},()=>new s).with({statusCode:403},()=>new a(i)).otherwise(()=>Error(i))};export class AuthorizedClient{_baseUrl;_getAccessToken;_getSessionToken;_client;constructor(t,a,e){this._baseUrl=t,this._getAccessToken=a,this._getSessionToken=e,this._client=r(this._baseUrl)}_authHeaders=async()=>{let t=this._getAccessToken(),a=await this._getSessionToken();return{"X-Access-Key":t,Authorization:`Bearer ${a}`}};getConfiguration=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getConfiguration");return e.data};updateConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.PUT("/configurations/{configurationId}",{params:{path:{configurationId:t}},body:a,headers:e});if(r.error)throw h(r.error,"updateConfiguration");return r.data};finalize=async(t,a,e,r,i)=>{let s=await this._authHeaders(),o=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/finalize",{params:{path:{configurationId:t,finalizationUuid:a},query:{locale:r}},body:{finalizeData:e,frontendData:i},headers:s});if(o.error)throw h(o.error,"finalize")};waitForFinalizationToComplete=async(t,a,e)=>{let r=e?.pollingFrequency??500,i=Math.ceil((e?.pollingTimeout??3e4)/r);for(let e=0;e<i;e++){let e=await this._authHeaders(),i=await this._client.GET("/configurations/{configurationId}/{finalizationUuid}/state",{params:{path:{configurationId:t,finalizationUuid:a}},headers:e});if(i.error)throw h(i.error,"getFinalizeJobState");let s=i.data;if("completed"===s.state)return s.result[0];if("failed"===s.state)throw Error("finalization failed");if("unknown"===s.state)throw Error("finalization state is unknown");await new Promise(t=>setTimeout(t,r))}throw Error("finalization did not complete within the specified timeout")};getConfigurationRevision=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/revisions/{revisionId}",{params:{path:{configurationId:t,revisionId:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationRevision");return r.data};getChatConversation=async t=>{let a=await this._authHeaders(),e=await this._client.GET("/configurations/{configurationId}/chat",{params:{path:{configurationId:t}},headers:a});if(e.error)throw h(e.error,"getChatConversation");return e.data};getSpeechToText=async(t,a)=>{let e=await this._authHeaders(),r=new FormData;r.append("voiceFile",a,"voice.wav");let i=await this._client.POST("/configurations/{configurationId}/chat/stt",{params:{path:{configurationId:t}},headers:e,body:r,bodySerializer:()=>r});if(i.error)throw h(i.error,"getSpeechToText");return i.data.text};getTextToSpeech=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/chat/tts",{params:{path:{configurationId:t}},body:{content:a},headers:e,parseAs:"arrayBuffer"});if(r.error)throw h(r.error,"getTextToSpeech");return new Blob([r.data],{type:"audio/mp3"})};getAssistantChatConnection=t=>({url:new URL(`configurations/${encodeURIComponent(t)}/assistant/chat`,`${this._baseUrl}/`).toString(),headers:this._authHeaders});compactAssistantThread=async t=>{let a=await this._authHeaders(),e=await this._client.POST("/configurations/{configurationId}/assistant/chat/compact",{params:{path:{configurationId:t}},headers:{...a,"Content-Type":null}});if(e.error)throw new i(`compactAssistantThread API request failed: ${JSON.stringify(e.error)}`,e.response.status);return e.data};getAssistantEarlierThread=async(t,a,e)=>{let r=await this._authHeaders(),s=await this._client.GET("/configurations/{configurationId}/assistant/chat/threads/{threadId}",{params:{path:{configurationId:t,threadId:a},query:{limit:e}},headers:r});if(s.error)throw new i(`getAssistantEarlierThread API request failed: ${JSON.stringify(s.error)}`,s.response.status);let{messages:o}=s.data;return{threadId:a,messages:Array.isArray(o)?o:[],previousThreadId:s.response.headers.get("x-assistant-previous-thread")}};uploadAssistantImage=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/assistant/images",{params:{path:{configurationId:t}},headers:{...e,"Content-Type":a.type},body:a.type,bodySerializer:()=>a});if(r.error)throw new i(`uploadAssistantImage API request failed: ${JSON.stringify(r.error)}`,r.response.status,"false"===r.response.headers.get("x-assistant-thread-continuable"));return{imageId:r.data.imageId}};getAssistantImage=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/assistant/images/{imageId}",{params:{path:{configurationId:t,imageId:a}},headers:e,parseAs:"blob"});if(r.error)throw new i(`getAssistantImage API request failed: ${JSON.stringify(r.error)}`,r.response.status);return r.data};sendMessage=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/chat/message",{params:{path:{configurationId:t}},body:{content:a,context:e},headers:r,parseAs:"stream"});if(i.error)throw h(i.error,"sendMessage");let s=i.data?.pipeThrough(new TextDecoderStream).getReader();if(!s)throw Error("sendMessage API response did not contain a readable stream");let u=o();return n(s,u.writable.getWriter()),u.readable};sendToolCallResults=async(t,a,e,r)=>{let i=await this._authHeaders(),s=await this._client.POST("/configurations/{configurationId}/chat/tool-calls",{params:{path:{configurationId:t}},body:{agent:r,calls:a,results:e},headers:i,parseAs:"stream"});if(s.error)throw h(s.error,"sendToolCallResults");let u=s.data?.pipeThrough(new TextDecoderStream).getReader();if(!u)throw Error("sendMessage API response did not contain a readable stream");let c=o();return n(u,c.writable.getWriter()),c.readable};generateShareLink=async(t,a,e,r,i)=>{let s=await this._authHeaders(),o=await this._client.POST("/configurations/{configurationId}/share-link",{params:{path:{configurationId:t}},body:{revisionId:a,expiration:e,access:r,baseUrl:i},headers:s});if(o.error)throw h(o.error,"generateShareLink");return o.data};generateUploadLinks=async(t,a,e)=>{let r=await this._authHeaders(),i=await this._client.POST("/configurations/{configurationId}/{finalizationUuid}/image-upload-links",{params:{path:{configurationId:t,finalizationUuid:a}},body:{names:e},headers:r});if(i.error)throw h(i.error,"generateUploadLinks");return i.data.links};getConfigurationPublicUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/public/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPublicUploadLink");return r.data};getConfigurationPrivateUploadLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private/upload",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};getConfigurationPrivateResourceLink=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/resources/{key}/private",{params:{path:{configurationId:t,key:a}},headers:e});if(r.error)throw h(r.error,"getConfigurationPrivateUploadLink");return r.data};cloneConfiguration=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.POST("/configurations/{configurationId}/revisions/{revisionId}/clone",{params:{path:{configurationId:t,revisionId:a}},headers:{...e,"Content-Type":null}});if(r.error)throw h(r.error,"cloneConfiguration");return r.data}}
@@ -100,6 +100,20 @@ export interface AuthorizedPhoenixApiClient<FINALIZE_DATA extends Record<string,
100
100
  * `limit` of its newest messages. Rejects with an {@link AssistantRequestError} when the server refuses.
101
101
  */
102
102
  getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
103
+ /**
104
+ * Stores an image in the assistant thread of the configuration, creating the thread when there is
105
+ * none yet: a screenshot the assistant took while a reply runs there, or an image the user attaches
106
+ * to their next message. Resolves with the id a tool result or a message references it by. The
107
+ * image is a JPEG or PNG blob of at most 2 MB, sent with its own type. Rejects with an
108
+ * {@link AssistantRequestError} when the server refuses, marked `threadNotContinuable` when the
109
+ * thread can take no new message until it is compacted.
110
+ */
111
+ uploadAssistantImage: (configurationId: string, image: Blob) => Promise<AssistantImageUpload>;
112
+ /**
113
+ * Reads a screenshot of an assistant thread of the configuration by the id its tool result
114
+ * references it by. Rejects with an {@link AssistantRequestError} when the server refuses.
115
+ */
116
+ getAssistantImage: (configurationId: string, imageId: string) => Promise<Blob>;
103
117
  getSpeechToText: (configurationId: string, blob: Blob) => Promise<string>;
104
118
  getTextToSpeech: (configurationId: string, text: string) => Promise<Blob>;
105
119
  sendMessage: (configurationId: string, message: string, state?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
@@ -137,6 +151,11 @@ export interface AssistantThreadCompaction {
137
151
  /** The closed thread the new one continues. */
138
152
  readonly previousThreadId: string;
139
153
  }
154
+ /** A screenshot stored in an assistant thread. */
155
+ export interface AssistantImageUpload {
156
+ /** The id a tool result references the image by, as `assistant-image:<imageId>`. */
157
+ readonly imageId: string;
158
+ }
140
159
  /** A closed assistant thread, as the panel paints it above the thread that continues it. */
141
160
  export interface AssistantEarlierThread {
142
161
  readonly threadId: string;
@@ -148,9 +167,19 @@ export interface AssistantEarlierThread {
148
167
  export declare class AssistantRequestError extends Error {
149
168
  /** The HTTP status of the answer, which tells a refusal from an outage. */
150
169
  readonly status: number;
170
+ /**
171
+ * True when the server refused because the thread cannot be continued until it is compacted, as
172
+ * its `x-assistant-thread-continuable: false` response header says.
173
+ */
174
+ readonly threadNotContinuable: boolean;
151
175
  constructor(message: string,
152
176
  /** The HTTP status of the answer, which tells a refusal from an outage. */
153
- status: number);
177
+ status: number,
178
+ /**
179
+ * True when the server refused because the thread cannot be continued until it is compacted, as
180
+ * its `x-assistant-thread-continuable: false` response header says.
181
+ */
182
+ threadNotContinuable?: boolean);
154
183
  }
155
184
  export declare class InvalidDeploymentError extends Error {
156
185
  constructor();
@@ -1 +1 @@
1
- export class AssistantRequestError extends Error{status;constructor(e,r){super(e),this.status=r,this.name="AssistantRequestError"}}export class InvalidDeploymentError extends Error{constructor(){super(),this.name="InvalidDeployment",this.message="The referenced deployment is invalid."}}export class InvalidAccessKeyError extends Error{constructor(){super("The access token is no longer valid because it expired or the server rejected it. Open the configuration from a fresh link."),this.name="InvalidAccessKey"}}export class ChunkNotFoundError extends Error{chunkKey;constructor(e){super(`Published chunk "${e}" not found`),this.chunkKey=e,this.name="ChunkNotFound"}}export class OAuthStaleConnectionError extends Error{constructor(){super("OAuth connection is stale"),this.name="OAuthStaleConnectionError"}}export class ConfigurationSchemaMismatchError extends Error{details;constructor(e){super("Preset data does not match the configuration schema registered on the server. Why: the preset/demo entity data was changed without re-registering the schema, or the schema drifted. Fix: re-register/redeploy the domain schema, or update the preset data to match the current schema."),this.details=e,this.name="ConfigurationSchemaMismatchError"}}export const isConfigurationSchemaMismatchError=e=>e instanceof ConfigurationSchemaMismatchError;
1
+ export class AssistantRequestError extends Error{status;threadNotContinuable;constructor(e,t,r=!1){super(e),this.status=t,this.threadNotContinuable=r,this.name="AssistantRequestError"}}export class InvalidDeploymentError extends Error{constructor(){super(),this.name="InvalidDeployment",this.message="The referenced deployment is invalid."}}export class InvalidAccessKeyError extends Error{constructor(){super("The access token is no longer valid because it expired or the server rejected it. Open the configuration from a fresh link."),this.name="InvalidAccessKey"}}export class ChunkNotFoundError extends Error{chunkKey;constructor(e){super(`Published chunk "${e}" not found`),this.chunkKey=e,this.name="ChunkNotFound"}}export class OAuthStaleConnectionError extends Error{constructor(){super("OAuth connection is stale"),this.name="OAuthStaleConnectionError"}}export class ConfigurationSchemaMismatchError extends Error{details;constructor(e){super("Preset data does not match the configuration schema registered on the server. Why: the preset/demo entity data was changed without re-registering the schema, or the schema drifted. Fix: re-register/redeploy the domain schema, or update the preset data to match the current schema."),this.details=e,this.name="ConfigurationSchemaMismatchError"}}export const isConfigurationSchemaMismatchError=e=>e instanceof ConfigurationSchemaMismatchError;
@@ -9,5 +9,5 @@ export { MemoryAuthorizedPhoenixApiClient } from './memory-authorized-client.js'
9
9
  export { MemoryAuthenticatedClientPhoenixApiClient, memoryStorage } from './memory-authenticated-client.js';
10
10
  export { createUnsignedJWT } from './unsigned-jwt.js';
11
11
  export type { components as ApiTypes } from './phoenix-api.js';
12
- export type { ConfigurationPayload, ConfigurationSchema, ChatConfiguration, ChatConversation, ChatEmbedding, ChatMessageParam, ChatToolCallResult, Entity, UnauthenticatedPhoenixApiClient, AuthenticatedClientPhoenixApiClient, AuthorizedPhoenixApiClient, AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, OAuthProvider, OAuthAccessTokenResult, GoogleOAuthConfig, ReleaseToProductionResult, SharePointSiteConfig, } from './contract.js';
12
+ export type { ConfigurationPayload, ConfigurationSchema, ChatConfiguration, ChatConversation, ChatEmbedding, ChatMessageParam, ChatToolCallResult, Entity, UnauthenticatedPhoenixApiClient, AuthenticatedClientPhoenixApiClient, AuthorizedPhoenixApiClient, AssistantChatConnection, AssistantEarlierThread, AssistantImageUpload, AssistantThreadCompaction, OAuthProvider, OAuthAccessTokenResult, GoogleOAuthConfig, ReleaseToProductionResult, SharePointSiteConfig, } from './contract.js';
13
13
  export { AssistantRequestError, InvalidAccessKeyError, InvalidDeploymentError, ChunkNotFoundError, OAuthStaleConnectionError, ConfigurationSchemaMismatchError, isConfigurationSchemaMismatchError, } from './contract.js';
@@ -1,5 +1,5 @@
1
1
  import type { ChatMessageContentChunk, ChatToolCalls } from '@salsita-ai/contracts/chat';
2
- import type { AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
2
+ import type { AssistantChatConnection, AssistantEarlierThread, AssistantImageUpload, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
3
3
  import { LocalStorageAuthenticatedClientPhoenixApiClient } from './local-authenticated-client.js';
4
4
  /**
5
5
  * Local storage implementation for local dev, it does not check for schema changes, so you may need to create new configuration if the schema changes and
@@ -17,6 +17,8 @@ export declare class LocalStorageAuthorizedPhoenixApiClient<FINALIZE_DATA extend
17
17
  getAssistantChatConnection: () => AssistantChatConnection;
18
18
  compactAssistantThread: () => Promise<AssistantThreadCompaction>;
19
19
  getAssistantEarlierThread: () => Promise<AssistantEarlierThread>;
20
+ uploadAssistantImage: () => Promise<AssistantImageUpload>;
21
+ getAssistantImage: () => Promise<Blob>;
20
22
  getChatConversation: (configurationId: string) => Promise<readonly {
21
23
  readonly augmentation?: import("./phoenix-api.js").components['schemas']['ChatMessageAugmentation'];
22
24
  readonly content?: string;
@@ -1 +1 @@
1
- import*as t from"uuid";import{ChunkType as e}from"@salsita-ai/contracts/chat";import{LocalStorageAuthenticatedClientPhoenixApiClient as o}from"./local-authenticated-client.js";let r=(t,o)=>{let r={role:"assistant",content:["I see","Yes","Definitely"][Math.round(2*Math.random())]};return localStorage.setItem(`${o}-chat`,JSON.stringify([...t,r])),Promise.resolve(new ReadableStream({start(t){t.enqueue({type:e.content,content:r.content??""}),t.close()}}))};export class LocalStorageAuthorizedPhoenixApiClient extends o{getConfigurationData=t=>{let e=JSON.parse(localStorage.getItem(t)??"[]");if(!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,o)=>{let r=this.getConfigurationData(e),n=t.v4(),a={...o,configurationId:e,revisionId:n,modelVersion:this._modelVersion};return localStorage.setItem(e,JSON.stringify([...r,a])),Promise.resolve({revisionId:n})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let o=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!o)throw Error("Revision not found!");return Promise.resolve(o)};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getChatConversation=async t=>JSON.parse(localStorage.getItem(`${t}-chat`)??"[]");sendMessage=async(t,e)=>{let o=await this.getChatConversation(t);return localStorage.setItem(`${t}-chat`,JSON.stringify([...o,e])),r(o,t)};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async t=>r(await this.getChatConversation(t),t);generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let o=localStorage.getItem(t);if(!o)throw Error("Configuration not found");let r=JSON.parse(o).find(t=>t.revisionId===e);if(!r)throw Error("Revision not found");return this.createConfiguration(r)}}
1
+ import*as t from"uuid";import{ChunkType as e}from"@salsita-ai/contracts/chat";import{LocalStorageAuthenticatedClientPhoenixApiClient as r}from"./local-authenticated-client.js";let o=(t,r)=>{let o={role:"assistant",content:["I see","Yes","Definitely"][Math.round(2*Math.random())]};return localStorage.setItem(`${r}-chat`,JSON.stringify([...t,o])),Promise.resolve(new ReadableStream({start(t){t.enqueue({type:e.content,content:o.content??""}),t.close()}}))};export class LocalStorageAuthorizedPhoenixApiClient extends r{getConfigurationData=t=>{let e=JSON.parse(localStorage.getItem(t)??"[]");if(!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,r)=>{let o=this.getConfigurationData(e),n=t.v4(),a={...r,configurationId:e,revisionId:n,modelVersion:this._modelVersion};return localStorage.setItem(e,JSON.stringify([...o,a])),Promise.resolve({revisionId:n})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let r=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!r)throw Error("Revision not found!");return Promise.resolve(r)};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};uploadAssistantImage=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantImage=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getChatConversation=async t=>JSON.parse(localStorage.getItem(`${t}-chat`)??"[]");sendMessage=async(t,e)=>{let r=await this.getChatConversation(t);return localStorage.setItem(`${t}-chat`,JSON.stringify([...r,e])),o(r,t)};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async t=>o(await this.getChatConversation(t),t);generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let r=localStorage.getItem(t);if(!r)throw Error("Configuration not found");let o=JSON.parse(r).find(t=>t.revisionId===e);if(!o)throw Error("Revision not found");return this.createConfiguration(o)}}
@@ -1,4 +1,4 @@
1
- import type { AssistantChatConnection, AssistantEarlierThread, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
1
+ import type { AssistantChatConnection, AssistantEarlierThread, AssistantImageUpload, AssistantThreadCompaction, AuthorizedPhoenixApiClient, ConfigurationPayload, ConfigurationSchema } from './contract.js';
2
2
  import { MemoryAuthenticatedClientPhoenixApiClient } from './memory-authenticated-client.js';
3
3
  /**
4
4
  * Memory implementation for local dev, it does not check for schema changes, so you may need to create new configuration if the schema changes and
@@ -17,6 +17,9 @@ export declare class MemoryAuthorizedPhoenixApiClient<FINALIZE_DATA extends Reco
17
17
  getAssistantChatConnection: () => AssistantChatConnection;
18
18
  compactAssistantThread: () => Promise<AssistantThreadCompaction>;
19
19
  getAssistantEarlierThread: () => Promise<AssistantEarlierThread>;
20
+ private readonly _assistantImages;
21
+ uploadAssistantImage: (configurationId: string, image: Blob) => Promise<AssistantImageUpload>;
22
+ getAssistantImage: (configurationId: string, imageId: string) => Promise<Blob>;
20
23
  sendMessage: () => Promise<never>;
21
24
  getSpeechToText: () => Promise<never>;
22
25
  getTextToSpeech: () => Promise<never>;
@@ -1 +1 @@
1
- import*as e from"uuid";import{MemoryAuthenticatedClientPhoenixApiClient as t,memoryStorage as r}from"./memory-authenticated-client.js";export class MemoryAuthorizedPhoenixApiClient extends t{getConfigurationData=e=>{let t=r.get(e);if(!t||!t||0===t.length)throw Error("Configuration not found!");return t};getConfiguration=e=>{let t=this.getConfigurationData(e);return Promise.resolve(t[t.length-1])};updateConfiguration=(t,o)=>{let n=this.getConfigurationData(t),i=e.v4(),a={...o,configurationId:t,revisionId:i,modelVersion:this._modelVersion};return r.set(t,[...n,a]),Promise.resolve({revisionId:i})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(e,t)=>{let r=this.getConfigurationData(e).find(e=>e.revisionId===t);if(!r)throw Error("Revision not found!");return Promise.resolve(r)};getChatConversation=async()=>{throw Error("Not implemented!")};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};sendMessage=async()=>{throw Error("Not implemented!")};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async()=>{throw Error("Not implemented!")};generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(e,t)=>{let o=r.get(e);if(!o)throw Error("Configuration not found");let n=o.find(e=>e.revisionId===t);if(!n)throw Error("Revision not found");return this.createConfiguration(n)}}
1
+ import*as t from"uuid";import{MemoryAuthenticatedClientPhoenixApiClient as e,memoryStorage as r}from"./memory-authenticated-client.js";export class MemoryAuthorizedPhoenixApiClient extends e{getConfigurationData=t=>{let e=r.get(t);if(!e||!e||0===e.length)throw Error("Configuration not found!");return e};getConfiguration=t=>{let e=this.getConfigurationData(t);return Promise.resolve(e[e.length-1])};updateConfiguration=(e,o)=>{let n=this.getConfigurationData(e),i=t.v4(),a={...o,configurationId:e,revisionId:i,modelVersion:this._modelVersion};return r.set(e,[...n,a]),Promise.resolve({revisionId:i})};finalize=()=>{throw Error("Not implemented!")};waitForFinalizationToComplete=()=>{throw Error("Not implemented!")};getConfigurationRevision=(t,e)=>{let r=this.getConfigurationData(t).find(t=>t.revisionId===e);if(!r)throw Error("Revision not found!");return Promise.resolve(r)};getChatConversation=async()=>{throw Error("Not implemented!")};getAssistantChatConnection=()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};compactAssistantThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getAssistantEarlierThread=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};_assistantImages=new Map;uploadAssistantImage=async(e,r)=>{let o=t.v4();return this._assistantImages.set(`${e}/${o}`,r),{imageId:o}};getAssistantImage=async(t,e)=>{let r=this._assistantImages.get(`${t}/${e}`);if(!r)throw Error(`Assistant image ${e} was not uploaded for configuration ${t} through this client. Upload it before reading it.`);return r};sendMessage=async()=>{throw Error("Not implemented!")};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async()=>{throw Error("Not implemented!")};generateShareLink=async()=>({link:"https://yourcompany.com/configurator/link-will-not-work-it-is-dummy-link"});generateUploadLinks=async()=>{throw Error("Not implemented!")};getConfigurationPublicUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateUploadLink=async()=>{throw Error("Not implemented!")};getConfigurationPrivateResourceLink=async()=>{throw Error("Not implemented!")};cloneConfiguration=async(t,e)=>{let o=r.get(t);if(!o)throw Error("Configuration not found");let n=o.find(t=>t.revisionId===e);if(!n)throw Error("Revision not found");return this.createConfiguration(n)}}
@@ -379,6 +379,40 @@ export interface paths {
379
379
  readonly patch?: never
380
380
  readonly trace?: never
381
381
  }
382
+ readonly '/configurations/{configurationId}/assistant/images': {
383
+ readonly parameters: {
384
+ readonly query?: never
385
+ readonly header?: never
386
+ readonly path?: never
387
+ readonly cookie?: never
388
+ }
389
+ readonly get?: never
390
+ readonly put?: never
391
+ /** @description Store an image in the caller's thread on the configuration: a screenshot the browser took for a run of the assistant, or an image the user attaches to the message they are about to send. Creates the thread when the caller has none yet. The body is the raw JPEG or PNG image of at most 2 MB, with its type as the content type. The answer carries the id that messages and tool results reference the image by, as `assistant-image:<imageId>`. Answers 409 with the `x-assistant-thread-continuable: false` response header when the thread cannot take a new message of the user (closed, started with another setup or at its size limit) and is not in the middle of a reply (no run running and no client tool call waiting); the thread takes images again once it is compacted. Answers 413 for a body over 2 MB and 415 for any other content type. */
392
+ readonly post: operations['uploadAssistantImage']
393
+ readonly delete?: never
394
+ readonly options?: never
395
+ readonly head?: never
396
+ readonly patch?: never
397
+ readonly trace?: never
398
+ }
399
+ readonly '/configurations/{configurationId}/assistant/images/{imageId}': {
400
+ readonly parameters: {
401
+ readonly query?: never
402
+ readonly header?: never
403
+ readonly path?: never
404
+ readonly cookie?: never
405
+ }
406
+ /** @description Load an image of one of the caller's assistant threads on the configuration, a screenshot or an image the user attached, the earlier threads of the chain included. The bytes never change, so the answer may be cached for good. Answers 404 for an image that is not in one of the caller's threads on this configuration. */
407
+ readonly get: operations['getAssistantImage']
408
+ readonly put?: never
409
+ readonly post?: never
410
+ readonly delete?: never
411
+ readonly options?: never
412
+ readonly head?: never
413
+ readonly patch?: never
414
+ readonly trace?: never
415
+ }
382
416
  readonly '/configurations/{configurationId}/chat': {
383
417
  readonly parameters: {
384
418
  readonly query?: never
@@ -1461,6 +1495,13 @@ export interface components {
1461
1495
  */
1462
1496
  readonly scopes?: readonly string[]
1463
1497
  }
1498
+ /** @description Payload Too Large: The request body is larger than the route's limit. */
1499
+ readonly PayloadTooLargeError: {
1500
+ /** @example Request body is too large */
1501
+ readonly message: string
1502
+ /** @enum {number} */
1503
+ readonly statusCode: 413
1504
+ }
1464
1505
  /**
1465
1506
  * @description The slug of the project, used for repository and domain creation.
1466
1507
  * @example my-project
@@ -1503,6 +1544,13 @@ export interface components {
1503
1544
  /** @enum {number} */
1504
1545
  readonly statusCode: 401
1505
1546
  }
1547
+ /** @description Unsupported Media Type: The request body is of a content type the route does not accept. */
1548
+ readonly UnsupportedMediaTypeError: {
1549
+ /** @example Unsupported Media Type! */
1550
+ readonly message: string
1551
+ /** @enum {number} */
1552
+ readonly statusCode: 415
1553
+ }
1506
1554
  /** @description A webhook resource to which the deployment can send requests. */
1507
1555
  readonly Webhook: {
1508
1556
  /**
@@ -2013,6 +2061,11 @@ export interface operations {
2013
2061
  readonly 'application/json': {
2014
2062
  /** @description The SDK-builder customer (workspace) the API token acts in. */
2015
2063
  readonly customer: {
2064
+ /**
2065
+ * Format: uuid
2066
+ * @description Internal UUID of the SDK-builder workspace.
2067
+ */
2068
+ readonly id: string
2016
2069
  /**
2017
2070
  * @description Display name of the SDK-builder workspace.
2018
2071
  * @example Acme
@@ -2020,6 +2073,7 @@ export interface operations {
2020
2073
  readonly name: string
2021
2074
  readonly slug: components['schemas']['CustomeSlug']
2022
2075
  }
2076
+ /** @description Stable ID of the authenticated builder user. */
2023
2077
  readonly userId: string
2024
2078
  }
2025
2079
  }
@@ -2152,6 +2206,11 @@ export interface operations {
2152
2206
  readonly 'application/json': {
2153
2207
  /** @description The SDK-builder customer (workspace) the API token acts in. */
2154
2208
  readonly customer: {
2209
+ /**
2210
+ * Format: uuid
2211
+ * @description Internal UUID of the SDK-builder workspace.
2212
+ */
2213
+ readonly id: string
2155
2214
  /**
2156
2215
  * @description Display name of the SDK-builder workspace.
2157
2216
  * @example Acme
@@ -2161,7 +2220,7 @@ export interface operations {
2161
2220
  }
2162
2221
  /** @description The API token (`phx_...`). */
2163
2222
  readonly token: string
2164
- /** @description The user who approved the sign-in. */
2223
+ /** @description Stable ID of the builder user who approved the sign-in. */
2165
2224
  readonly userId: string
2166
2225
  }
2167
2226
  }
@@ -3397,6 +3456,202 @@ export interface operations {
3397
3456
  }
3398
3457
  }
3399
3458
  }
3459
+ readonly uploadAssistantImage: {
3460
+ readonly parameters: {
3461
+ readonly query?: never
3462
+ readonly header?: never
3463
+ readonly path: {
3464
+ /** @description The configuration on which the caller's assistant thread is used. */
3465
+ readonly configurationId: components['schemas']['ConfigurationUuid']
3466
+ }
3467
+ readonly cookie?: never
3468
+ }
3469
+ /** @description The JPEG or PNG image. */
3470
+ readonly requestBody: {
3471
+ readonly content: {
3472
+ readonly 'image/jpeg': string
3473
+ readonly 'image/png': string
3474
+ }
3475
+ }
3476
+ readonly responses: {
3477
+ /** @description The image was stored in the thread. */
3478
+ readonly 200: {
3479
+ headers: {
3480
+ readonly [name: string]: unknown
3481
+ }
3482
+ content: {
3483
+ readonly 'application/json': {
3484
+ /**
3485
+ * Format: uuid
3486
+ * @description The id messages and tool results reference the image by.
3487
+ */
3488
+ readonly imageId: string
3489
+ }
3490
+ }
3491
+ }
3492
+ /** @description Bad Request! */
3493
+ readonly 400: {
3494
+ headers: {
3495
+ readonly [name: string]: unknown
3496
+ }
3497
+ content: {
3498
+ readonly 'application/json': components['schemas']['BadRequestError']
3499
+ }
3500
+ }
3501
+ /** @description Unauthorized! */
3502
+ readonly 401: {
3503
+ headers: {
3504
+ readonly [name: string]: unknown
3505
+ }
3506
+ content: {
3507
+ readonly 'application/json': components['schemas']['UnauthorizedError']
3508
+ }
3509
+ }
3510
+ /** @description Forbidden! */
3511
+ readonly 403: {
3512
+ headers: {
3513
+ readonly [name: string]: unknown
3514
+ }
3515
+ content: {
3516
+ readonly 'application/json': components['schemas']['ForbiddenError']
3517
+ }
3518
+ }
3519
+ /** @description Not Found! */
3520
+ readonly 404: {
3521
+ headers: {
3522
+ readonly [name: string]: unknown
3523
+ }
3524
+ content: {
3525
+ readonly 'application/json': components['schemas']['NotFoundError']
3526
+ }
3527
+ }
3528
+ /** @description Conflict! */
3529
+ readonly 409: {
3530
+ headers: {
3531
+ readonly [name: string]: unknown
3532
+ }
3533
+ content: {
3534
+ readonly 'application/json': components['schemas']['ConflictError']
3535
+ }
3536
+ }
3537
+ /** @description Payload Too Large! */
3538
+ readonly 413: {
3539
+ headers: {
3540
+ readonly [name: string]: unknown
3541
+ }
3542
+ content: {
3543
+ readonly 'application/json': components['schemas']['PayloadTooLargeError']
3544
+ }
3545
+ }
3546
+ /** @description Unsupported Media Type! */
3547
+ readonly 415: {
3548
+ headers: {
3549
+ readonly [name: string]: unknown
3550
+ }
3551
+ content: {
3552
+ readonly 'application/json': components['schemas']['UnsupportedMediaTypeError']
3553
+ }
3554
+ }
3555
+ /** @description Bad Gateway! */
3556
+ readonly 502: {
3557
+ headers: {
3558
+ readonly [name: string]: unknown
3559
+ }
3560
+ content: {
3561
+ readonly 'application/json': components['schemas']['BadGatewayError']
3562
+ }
3563
+ }
3564
+ /** @description An unexpected error occurred! */
3565
+ readonly default: {
3566
+ headers: {
3567
+ readonly [name: string]: unknown
3568
+ }
3569
+ content: {
3570
+ readonly 'application/json': components['schemas']['DefaultResponse']
3571
+ }
3572
+ }
3573
+ }
3574
+ }
3575
+ readonly getAssistantImage: {
3576
+ readonly parameters: {
3577
+ readonly query?: never
3578
+ readonly header?: never
3579
+ readonly path: {
3580
+ /** @description The configuration on which the caller's assistant thread is used. */
3581
+ readonly configurationId: components['schemas']['ConfigurationUuid']
3582
+ /** @description The image, as a message or a tool result references it. */
3583
+ readonly imageId: string
3584
+ }
3585
+ readonly cookie?: never
3586
+ }
3587
+ readonly requestBody?: never
3588
+ readonly responses: {
3589
+ /** @description The image. */
3590
+ readonly 200: {
3591
+ headers: {
3592
+ readonly [name: string]: unknown
3593
+ }
3594
+ content: {
3595
+ readonly 'image/jpeg': unknown
3596
+ readonly 'image/png': unknown
3597
+ }
3598
+ }
3599
+ /** @description Bad Request! */
3600
+ readonly 400: {
3601
+ headers: {
3602
+ readonly [name: string]: unknown
3603
+ }
3604
+ content: {
3605
+ readonly 'application/json': components['schemas']['BadRequestError']
3606
+ }
3607
+ }
3608
+ /** @description Unauthorized! */
3609
+ readonly 401: {
3610
+ headers: {
3611
+ readonly [name: string]: unknown
3612
+ }
3613
+ content: {
3614
+ readonly 'application/json': components['schemas']['UnauthorizedError']
3615
+ }
3616
+ }
3617
+ /** @description Forbidden! */
3618
+ readonly 403: {
3619
+ headers: {
3620
+ readonly [name: string]: unknown
3621
+ }
3622
+ content: {
3623
+ readonly 'application/json': components['schemas']['ForbiddenError']
3624
+ }
3625
+ }
3626
+ /** @description Not Found! */
3627
+ readonly 404: {
3628
+ headers: {
3629
+ readonly [name: string]: unknown
3630
+ }
3631
+ content: {
3632
+ readonly 'application/json': components['schemas']['NotFoundError']
3633
+ }
3634
+ }
3635
+ /** @description Bad Gateway! */
3636
+ readonly 502: {
3637
+ headers: {
3638
+ readonly [name: string]: unknown
3639
+ }
3640
+ content: {
3641
+ readonly 'application/json': components['schemas']['BadGatewayError']
3642
+ }
3643
+ }
3644
+ /** @description An unexpected error occurred! */
3645
+ readonly default: {
3646
+ headers: {
3647
+ readonly [name: string]: unknown
3648
+ }
3649
+ content: {
3650
+ readonly 'application/json': components['schemas']['DefaultResponse']
3651
+ }
3652
+ }
3653
+ }
3654
+ }
3400
3655
  readonly getChatConversation: {
3401
3656
  readonly parameters: {
3402
3657
  readonly query?: never
@@ -4889,6 +5144,8 @@ export interface operations {
4889
5144
  readonly requestBody: {
4890
5145
  readonly content: {
4891
5146
  readonly 'application/json': {
5147
+ /** @enum {string} */
5148
+ readonly acceptResponseEncoding?: 'gzip'
4892
5149
  readonly sessionId: string
4893
5150
  }
4894
5151
  }
@@ -4986,6 +5243,7 @@ export interface operations {
4986
5243
  readonly headers?: {
4987
5244
  readonly [key: string]: string
4988
5245
  }
5246
+ readonly isBase64Encoded?: boolean
4989
5247
  readonly requestId: string
4990
5248
  readonly sessionId: string
4991
5249
  readonly status: number
@@ -1 +1 @@
1
- import{jsx as r,jsxs as e}from"react/jsx-runtime";import{I18nProvider as o}from"@lingui/react";import{QueryClientProvider as i}from"@tanstack/react-query";import n from"mui-modal-provider";import{useEffect as t}from"react";import{standardWebComponentProperties as c}from"#package/domain";import{getAvailableLocales as a,resolveLocale as m}from"#package/i18n";import{ApplicationType as l,ApplicationTypeProvider as d,InvalidDeploymentReload as p,LoaderHost as s,SessionServiceProvider as f,useApplicationQueryClient as u,useI18n as h,useSpecAlwaysExpand as g,useSpecAppLoader as x,useSpecPrefetchTextureUrls as j,useSpecPreview as k,useWebComponentProperty$ as v,useWebComponentPropertySetter as b,useWebComponentPropertyValue as y}from"#package/react-sdk";import{SnackbarProvider as C}from"#package/ui-sdk";import{ConfiguratorDataProvider as w}from"./configurator-context/ConfiguratorDataProvider.js";import{ConfiguratorResponsiveProvider as E}from"./configurator-context/ConfiguratorResponsiveProvider.js";import{usePowerRoutingLifecycle as I}from"./configurator-context/configurator-routing/use-power-routing-lifecycle.js";import{ConfiguratorRoutingProvider as L,OnApplicationStartProvider as P,OnRoutingReadyProvider as Z,OnSessionReadyProvider as q,PresetSelectionProvider as A,PreviewApplicationProvider as B}from"./configurator-context/index.js";import{LoadingErrorBoundary as D}from"./pages/error-boundaries/LoadingErrorBoundary.js";import{GeneralErrorFallback as F,RootPage as R}from"./pages/index.js";import{SceneResourcesProvider as S}from"./scene/index.js";import{EncapsulatedConfiguratorTheme as T}from"./ui/index.js";import{AppLoader as U}from"./ui/phoenix-layout-elements/index.js";export const ConfiguratorApp=()=>{let z=u(),G=h(),H=x(),J=k(),K=g(),M=j(),N=b(c.locale),O=v(c.locale);t(()=>{let r=O.subscribe(r=>{let e=m(r,a(G));G.activate(e)}),e=()=>{N(G.locale)};return G.on("change",e),()=>{r.unsubscribe(),G.removeListener("change",e)}},[O,G,N]);let Q=y(c.containerZIndex),V=y(c.power);return(I(),"off"===V)?null:r(d,{type:l.Configurator,children:r(i,{client:z,children:r(T,{children:r(s,{children:r(E,{containerZIndex:Q,children:r(U,{mode:H,children:r(B,{alwaysExpand:K,preview:J,children:r(o,{i18n:G,children:r(C,{maxSnack:5,children:r(D,{FallbackComponent:F,children:r(S,{prefetchTextureUrls:M,children:r(P,{children:r(f,{children:r(q,{children:"on"===V&&r(L,{children:r(w,{children:r(A,{children:r(Z,{children:e(n,{children:[r(p,{}),r(R,{})]})})})})})})})})})})})})})})})})})})})};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{I18nProvider as o}from"@lingui/react";import{QueryClientProvider as i}from"@tanstack/react-query";import n from"mui-modal-provider";import{useEffect as t}from"react";import{standardWebComponentProperties as c}from"#package/domain";import{getAvailableLocales as a,resolveLocale as m}from"#package/i18n";import{ApplicationType as l,ApplicationTypeProvider as d,ConfiguratorDataProvider as p,ConfiguratorRoutingProvider as s,InvalidDeploymentReload as f,LoaderHost as h,OnApplicationStartProvider as u,OnRoutingReadyProvider as x,OnSessionReadyProvider as g,PresetSelectionProvider as j,SessionServiceProvider as k,useApplicationQueryClient as b,useI18n as v,usePowerRoutingLifecycle as y,useSpecAlwaysExpand as C,useSpecAppLoader as w,useSpecPrefetchTextureUrls as E,useSpecPreview as I,useWebComponentProperty$ as L,useWebComponentPropertySetter as Z,useWebComponentPropertyValue as q}from"#package/react-sdk";import{SnackbarProvider as A}from"#package/ui-sdk";import{ConfiguratorResponsiveProvider as B}from"./configurator-context/ConfiguratorResponsiveProvider.js";import{PreviewApplicationProvider as F}from"./configurator-context/index.js";import{LoadingErrorBoundary as P}from"./pages/error-boundaries/LoadingErrorBoundary.js";import{GeneralErrorFallback as R,RootPage as S}from"./pages/index.js";import{SceneResourcesProvider as T}from"./scene/index.js";import{EncapsulatedConfiguratorTheme as U}from"./ui/index.js";import{AppLoader as z}from"./ui/phoenix-layout-elements/index.js";export const ConfiguratorApp=()=>{let D=b(),G=v(),H=w(),J=I(),K=C(),M=E(),N=Z(c.locale),O=L(c.locale);t(()=>{let r=O.subscribe(r=>{let e=m(r,a(G));G.activate(e)}),e=()=>{N(G.locale)};return G.on("change",e),()=>{r.unsubscribe(),G.removeListener("change",e)}},[O,G,N]);let Q=q(c.containerZIndex),V=q(c.power);return(y(),"off"===V)?null:r(d,{type:l.Configurator,children:r(i,{client:D,children:r(U,{children:r(h,{children:r(B,{containerZIndex:Q,children:r(z,{mode:H,children:r(F,{alwaysExpand:K,preview:J,children:r(o,{i18n:G,children:r(A,{maxSnack:5,children:r(P,{FallbackComponent:R,children:r(T,{prefetchTextureUrls:M,children:r(u,{children:r(k,{children:r(g,{children:"on"===V&&r(s,{children:r(p,{children:r(j,{children:r(x,{children:e(n,{children:[r(f,{}),r(S,{})]})})})})})})})})})})})})})})})})})})})};
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{createSessionAssistant as t,isAssistantSetupHandler as n}from"#package/domain";import{AnimationSystem as s,AssistantSystem as o,CameraControlSystem as r,CameraSystem as a,CanvasSystem as i,DragAndDropSystem as g,ExportSystem as m,GraphQLSystem as c,ImageRenderingSystem as l,LayoutSystem as S,SketchingSystem as d}from"./systems/index.js";export const createConfiguratorExtensionSelectors=u=>{let{getState:y,domainContextSelectors:w,specSelectors:C,domainServicesSelectors:f,accessSelectors:p,commonServicesSelectors:h}=u,x=e.withTypes()([C.selectConfiguratorSpec,w.selectInitializationContext],(e,s)=>t({resolved:e.assistant,handler:e.handlers.find(n),inputs:s&&s.access?{role:s.role,sessionData:s.sessionData,access:s.access}:null})),A={getConfigurationId:()=>p.getConfiguratorConfigurationId(),getAuthorizedClient:()=>h.getConfiguratorAuthorizedClient(),getAssistantSetup:()=>x(y()),domainContextSelectors:w,domainServicesSelectors:f,specSelectors:C},I={getSystems:()=>Q,getCanvasSystem:()=>D,getCameraControlSystem:()=>v,getAnimationSystem:()=>b,getDragAndDropSystem:()=>z,getImageRenderingSystem:()=>G,getLayoutSystem:()=>T,getSketchingSystem:()=>j,getExportSystem:()=>k,getCameraSystem:()=>F,getGraphQLSystem:()=>L,getAssistantSystem:()=>R},E={...A,configuratorExtensionSelectors:I},D=new i(A),v=new r({configuratorExtensionSelectors:I}),z=new g(E),b=new s(A),k=new m(E),L=new c({...A,renderScreenshot:async(e,t)=>{let[n]=await I.getImageRenderingSystem().generateImagesFromComponents([e],t,{},{awaitSettledState:!0});if(!n)throw Error("The canvas rendered no image.");return n.blob}}),R=new o(E),T=new S(A),j=new d(E),F=new a(E),G=new l(E),Q={cameraControlSystem:v,layoutSystem:T,sketchingSystem:j,dragAndDropSystem:z,canvasSystem:D,cameraSystem:F,exportSystem:k,imageRenderingSystem:G,animationSystem:b,graphQLSystem:L,assistantSystem:R};return I};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{createSessionAssistant as t,isAssistantSetupHandler as n}from"#package/domain";import{AnimationSystem as s,AssistantSystem as o,CameraControlSystem as r,CameraSystem as a,CanvasSystem as i,DragAndDropSystem as g,ExportSystem as m,GraphQLSystem as l,ImageRenderingSystem as c,LayoutSystem as S,SketchingSystem as d}from"./systems/index.js";export const createConfiguratorExtensionSelectors=u=>{let{getState:y,domainContextSelectors:C,specSelectors:p,domainServicesSelectors:w,accessSelectors:f,commonServicesSelectors:h}=u,A=e.withTypes()([p.selectConfiguratorSpec,C.selectInitializationContext],(e,s)=>t({resolved:e.assistant,handler:e.handlers.find(n),inputs:s&&s.access?{role:s.role,sessionData:s.sessionData,access:s.access}:null})),I={getConfigurationId:()=>f.getConfiguratorConfigurationId(),getAuthorizedClient:()=>h.getConfiguratorAuthorizedClient(),getAssistantSetup:()=>A(y()),domainContextSelectors:C,domainServicesSelectors:w,specSelectors:p},x={getSystems:()=>Q,getCanvasSystem:()=>z,getCameraControlSystem:()=>D,getAnimationSystem:()=>b,getDragAndDropSystem:()=>v,getImageRenderingSystem:()=>G,getLayoutSystem:()=>T,getSketchingSystem:()=>j,getExportSystem:()=>k,getCameraSystem:()=>F,getGraphQLSystem:()=>L,getAssistantSystem:()=>R},E={...I,configuratorExtensionSelectors:x},z=new i(I),D=new r({configuratorExtensionSelectors:x}),v=new g(E),b=new s(I),k=new m(E),L=new l({...I,renderScreenshot:async(e,t)=>{let[n]=await x.getImageRenderingSystem().generateImagesFromComponents([e],t,{},{awaitSettledState:!0});if(!n)throw Error("The canvas rendered no image.");return n.blob},uploadScreenshot:e=>I.getAuthorizedClient().uploadAssistantImage(I.getConfigurationId(),e)}),R=new o(E),T=new S(I),j=new d(E),F=new a(E),G=new c(E),Q={cameraControlSystem:D,layoutSystem:T,sketchingSystem:j,dragAndDropSystem:v,canvasSystem:z,cameraSystem:F,exportSystem:k,imageRenderingSystem:G,animationSystem:b,graphQLSystem:L,assistantSystem:R};return x};