@salsita-ai/sdk 0.50.0-develop.bb71259564 → 0.50.0-develop.bc204720a8

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 (1285) hide show
  1. package/README.md +13 -4
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/common/admin-interface.d.ts +3 -3
  4. package/dist/admin/legacy-admin/Application.js +1 -1
  5. package/dist/application-spec/caching/index.d.ts +6 -1
  6. package/dist/application-spec/caching/index.js +1 -1
  7. package/dist/application-spec/errors/diagnostic-codes.d.ts +5 -0
  8. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  9. package/dist/application-spec/errors/diagnostic-messages.d.ts +9 -0
  10. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  11. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  12. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  13. package/dist/application-spec/generate-application/code/index.d.ts +1 -0
  14. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +4 -3
  15. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  16. package/dist/application-spec/generate-application/code/templates/admin-config.d.ts +1 -1
  17. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -2
  18. package/dist/application-spec/generate-application/code/templates/configurator-config.js +2 -1
  19. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +9 -8
  20. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +3 -3
  21. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-base-configurator-builder.js +2 -1
  22. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +31 -31
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-locale.js +1 -1
  24. package/dist/application-spec/generate-application/code/templates/editor.d.ts +1 -1
  25. package/dist/application-spec/generate-application/code/templates/editor.js +16 -3
  26. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  27. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +15 -15
  28. package/dist/application-spec/generate-application/code/templates/html-index.d.ts +12 -1
  29. package/dist/application-spec/generate-application/code/templates/html-index.js +9 -10
  30. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -2
  31. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  32. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  33. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  34. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  35. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  36. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  37. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +89 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  40. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +46 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.d.ts +3 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.js +3 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.d.ts +1 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.js +1 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.d.ts +3 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.js +48 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.d.ts +3 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.js +38 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.d.ts +3 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.js +35 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.d.ts +3 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.js +61 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.d.ts +3 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.js +7 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.d.ts +3 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.js +79 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.d.ts +1 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.js +1 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.d.ts +3 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.js +52 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.d.ts +3 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.js +49 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.d.ts +3 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.js +62 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.d.ts +3 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.js +40 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.d.ts +3 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.js +65 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.d.ts +3 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.js +58 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.d.ts +3 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.js +41 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.d.ts +3 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.js +24 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.d.ts +3 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.js +44 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.d.ts +3 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.js +74 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.d.ts +3 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.js +8 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.d.ts +1 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.js +1 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.d.ts +3 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.js +48 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.d.ts +3 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.js +64 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.d.ts +3 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.js +62 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.d.ts +3 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.js +1 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.d.ts +3 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.js +59 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.d.ts +3 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.js +46 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.d.ts +1 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.js +1 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.d.ts +3 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.js +43 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.d.ts +3 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.js +30 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/features/localization.d.ts +3 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/features/localization.js +87 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.d.ts +3 -0
  110. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.js +43 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.d.ts +1 -0
  112. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.js +1 -0
  113. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.d.ts +3 -0
  114. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.js +48 -0
  115. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.d.ts +3 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.js +1 -0
  117. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.d.ts +3 -0
  118. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.js +39 -0
  119. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.d.ts +3 -0
  120. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.js +36 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  122. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  123. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/assistant-setup.d.ts +3 -0
  124. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/assistant-setup.js +32 -0
  125. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/authentication.d.ts +3 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/authentication.js +42 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/backend-data.d.ts +3 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/backend-data.js +45 -0
  129. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/entry-and-environment.d.ts +3 -0
  130. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/entry-and-environment.js +38 -0
  131. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/finalization.d.ts +3 -0
  132. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/finalization.js +92 -0
  133. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/index.d.ts +1 -0
  134. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/index.js +1 -0
  135. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/publishing.d.ts +3 -0
  136. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/publishing.js +1 -0
  137. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/callback.d.ts +3 -0
  138. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/callback.js +26 -0
  139. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/documents.d.ts +3 -0
  140. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/documents.js +51 -0
  141. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/email.d.ts +3 -0
  142. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/email.js +38 -0
  143. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/index.d.ts +1 -0
  144. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/index.js +1 -0
  145. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/integrations.d.ts +3 -0
  146. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/integrations.js +88 -0
  147. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/links-and-images.d.ts +3 -0
  148. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/links-and-images.js +68 -0
  149. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/tasks.d.ts +3 -0
  150. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/tasks.js +1 -0
  151. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/webhooks.d.ts +3 -0
  152. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/webhooks.js +1 -0
  153. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +68 -0
  154. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  155. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +2 -2
  156. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +12 -5
  157. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.d.ts +9 -0
  158. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.js +1 -0
  159. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  160. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  161. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/beta.d.ts} +2 -1
  162. package/dist/application-spec/generate-application/code/templates/skills/processes/beta.js +4 -0
  163. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  164. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +38 -0
  165. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  166. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  167. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  168. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  169. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  170. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +35 -0
  171. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  172. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  173. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  174. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  175. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  176. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +25 -0
  177. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  178. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +35 -0
  179. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  180. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  181. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  182. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +9 -0
  183. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  184. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  185. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +8 -0
  186. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  187. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  188. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  189. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  190. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  191. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  192. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  193. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  194. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  195. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  196. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  197. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  198. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  199. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  200. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  201. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  202. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  203. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  204. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  205. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  206. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  207. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  208. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  209. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  210. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  211. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  212. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  213. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +49 -263
  214. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  215. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.d.ts +9 -0
  216. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.js +1 -0
  217. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  218. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  219. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  220. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  221. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  222. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +2 -1
  223. package/dist/application-spec/generate-application/code/templates/webhook-index.js +2 -2
  224. package/dist/application-spec/generate-application/index.d.ts +1 -8
  225. package/dist/application-spec/generate-application/index.js +1 -1
  226. package/dist/application-spec/parse-application-files/merge/merged-app-metadata.d.ts +1 -0
  227. package/dist/application-spec/parse-application-files/merge/merged-app-metadata.js +1 -1
  228. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +1 -1
  229. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  230. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  231. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +10 -13
  232. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  233. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +1 -0
  234. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  235. package/dist/application-spec/parse-application-files/spec/model/session-data-schema.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  238. package/dist/application-spec/webhook-boundary.js +1 -1
  239. package/dist/client/authorized-client.d.ts +2 -1
  240. package/dist/client/authorized-client.js +1 -1
  241. package/dist/client/contract.d.ts +43 -9
  242. package/dist/client/contract.js +1 -1
  243. package/dist/client/local-authorized-client.d.ts +1 -0
  244. package/dist/client/local-authorized-client.js +1 -1
  245. package/dist/client/memory-authorized-client.d.ts +1 -0
  246. package/dist/client/memory-authorized-client.js +1 -1
  247. package/dist/client/phoenix-api.d.ts +744 -63
  248. package/dist/configurator/ConfiguratorApp.js +1 -1
  249. package/dist/configurator/agent-at-work/AgentAtWorkFallback.d.ts +7 -0
  250. package/dist/configurator/agent-at-work/AgentAtWorkFallback.js +1 -0
  251. package/dist/configurator/agent-at-work/AgentAtWorkPage.d.ts +20 -0
  252. package/dist/configurator/agent-at-work/AgentAtWorkPage.js +1 -0
  253. package/dist/configurator/agent-at-work/AgentModeBadge.d.ts +11 -0
  254. package/dist/configurator/agent-at-work/AgentModeBadge.js +1 -0
  255. package/dist/configurator/agent-at-work/StudioMark.d.ts +8 -0
  256. package/dist/configurator/agent-at-work/StudioMark.js +1 -0
  257. package/dist/configurator/agent-at-work/agent-at-work-copy.d.ts +17 -0
  258. package/dist/configurator/agent-at-work/agent-at-work-copy.js +1 -0
  259. package/dist/configurator/agent-at-work/agent-at-work-styles.d.ts +23 -0
  260. package/dist/configurator/agent-at-work/agent-at-work-styles.js +374 -0
  261. package/dist/configurator/agent-at-work/index.d.ts +3 -0
  262. package/dist/configurator/agent-at-work/index.js +1 -0
  263. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  264. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.d.ts +34 -0
  265. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-image-view.d.ts +18 -0
  266. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-speech-player.d.ts +69 -0
  267. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-speech-player.js +1 -0
  268. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +289 -24
  269. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  270. package/dist/configurator/application-runtime/extensions/systems/assistant-system/composer-attachments.d.ts +68 -0
  271. package/dist/configurator/application-runtime/extensions/systems/assistant-system/composer-attachments.js +1 -0
  272. package/dist/configurator/application-runtime/extensions/systems/assistant-system/rasterize-image.d.ts +13 -0
  273. package/dist/configurator/application-runtime/extensions/systems/assistant-system/rasterize-image.js +1 -0
  274. package/dist/configurator/application-runtime/extensions/systems/assistant-system/speakable-reply.d.ts +7 -0
  275. package/dist/configurator/application-runtime/extensions/systems/assistant-system/speakable-reply.js +1 -0
  276. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +43 -0
  277. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.js +1 -1
  278. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +4 -1
  279. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  280. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +61 -52
  281. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  282. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +8 -2
  283. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  284. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.d.ts +10 -0
  285. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.js +1 -0
  286. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +8 -0
  287. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +7 -2
  289. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +11 -0
  291. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  292. package/dist/configurator/application-runtime/extensions/systems/sketching-system/sketching-system.d.ts +5 -5
  293. package/dist/configurator/common/configurator-interface.d.ts +18 -8
  294. package/dist/configurator/common/configurator-interface.js +1 -1
  295. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  296. package/dist/configurator/configurator-context/index.d.ts +0 -1
  297. package/dist/configurator/configurator-context/index.js +1 -1
  298. package/dist/configurator/index.d.ts +1 -0
  299. package/dist/configurator/index.js +1 -1
  300. package/dist/configurator/{ui/configurator-layout/universal → pages}/ExportingOverlay.d.ts +3 -2
  301. package/dist/configurator/pages/ExportingOverlay.js +1 -0
  302. package/dist/configurator/pages/InertRoot.d.ts +10 -0
  303. package/dist/configurator/pages/InertRoot.js +1 -0
  304. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  305. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  306. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  307. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  308. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  309. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  310. package/dist/configurator/pages/error-boundaries/AgentModeErrorFallback.d.ts +8 -0
  311. package/dist/configurator/pages/error-boundaries/AgentModeErrorFallback.js +1 -0
  312. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  313. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  314. package/dist/configurator/pages/error-boundaries/DevContextFallback.d.ts +4 -2
  315. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  316. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.d.ts +6 -4
  317. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  318. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  319. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  320. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  321. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  322. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  323. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  324. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  325. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  326. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  327. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  328. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  329. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  330. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  331. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  332. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  333. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  334. package/dist/configurator/pages/provider-slots/index.js +1 -0
  335. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  336. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  337. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  338. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  339. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  340. package/dist/configurator/pages/ui-elements/index.js +1 -0
  341. package/dist/configurator/scene/cameras/CameraPadding.js +1 -1
  342. package/dist/configurator/ui/assistant/AssistantChips.d.ts +83 -1
  343. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  344. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +102 -1
  345. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  346. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +37 -3
  347. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  348. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +46 -1
  349. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  350. package/dist/configurator/ui/assistant/AssistantThread.d.ts +80 -4
  351. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  352. package/dist/configurator/ui/assistant/AssistantThreadItemView.d.ts +104 -0
  353. package/dist/configurator/ui/assistant/AssistantThreadItemView.js +1 -0
  354. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +39 -2
  355. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  356. package/dist/configurator/ui/assistant/alert/index.d.ts +1 -1
  357. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.d.ts +43 -0
  358. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.js +1 -0
  359. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.d.ts +5 -0
  360. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.js +1 -0
  361. package/dist/configurator/ui/assistant/annotation/AnnotationPin.d.ts +14 -0
  362. package/dist/configurator/ui/assistant/annotation/AnnotationPin.js +1 -0
  363. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.d.ts +12 -0
  364. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.js +1 -0
  365. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.d.ts +11 -0
  366. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.js +1 -0
  367. package/dist/configurator/ui/assistant/annotation/annotation-layout.d.ts +80 -0
  368. package/dist/configurator/ui/assistant/annotation/annotation-layout.js +1 -0
  369. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.d.ts +49 -0
  370. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.js +1 -0
  371. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.d.ts +18 -0
  372. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.js +1 -0
  373. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.d.ts +22 -0
  374. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.js +1 -0
  375. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.d.ts +22 -0
  376. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.js +1 -0
  377. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.d.ts +17 -0
  378. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.js +1 -0
  379. package/dist/configurator/ui/assistant/annotation/editor/index.d.ts +2 -0
  380. package/dist/configurator/ui/assistant/annotation/editor/index.js +1 -0
  381. package/dist/configurator/ui/assistant/annotation/index.d.ts +6 -0
  382. package/dist/configurator/ui/assistant/annotation/index.js +1 -0
  383. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.d.ts +2 -0
  384. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.js +1 -0
  385. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.d.ts +6 -0
  386. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.js +1 -0
  387. package/dist/configurator/ui/assistant/assistant-failure.d.ts +20 -7
  388. package/dist/configurator/ui/assistant/assistant-failure.js +1 -1
  389. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +63 -0
  390. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  391. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  392. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  393. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +24 -0
  394. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  395. package/dist/configurator/ui/assistant/composer/composer-frame.d.ts +20 -0
  396. package/dist/configurator/ui/assistant/composer/composer-frame.js +1 -0
  397. package/dist/configurator/ui/assistant/composer/index.d.ts +1 -0
  398. package/dist/configurator/ui/assistant/composer/index.js +1 -0
  399. package/dist/configurator/ui/assistant/drawing/AssistantDrawing.d.ts +58 -0
  400. package/dist/configurator/ui/assistant/drawing/AssistantDrawing.js +1 -0
  401. package/dist/configurator/ui/assistant/drawing/index.d.ts +2 -0
  402. package/dist/configurator/ui/assistant/drawing/index.js +1 -0
  403. package/dist/configurator/ui/assistant/drawing/parse-drawing.d.ts +18 -0
  404. package/dist/configurator/ui/assistant/drawing/parse-drawing.js +1 -0
  405. package/dist/configurator/ui/assistant/drawing/use-drawing-url.d.ts +14 -0
  406. package/dist/configurator/ui/assistant/drawing/use-drawing-url.js +1 -0
  407. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +35 -1
  408. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  409. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -2
  410. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +59 -2
  411. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  412. package/dist/configurator/ui/assistant/form/built-in-form-slots.d.ts +16 -0
  413. package/dist/configurator/ui/assistant/form/built-in-form-slots.js +1 -0
  414. package/dist/configurator/ui/assistant/form/index.d.ts +2 -1
  415. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  416. package/dist/configurator/ui/assistant/form/registry/index.d.ts +1 -1
  417. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +59 -0
  418. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -1
  419. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +51 -0
  420. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -1
  421. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +47 -0
  422. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -1
  423. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +43 -0
  424. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  425. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +51 -0
  426. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -1
  427. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +43 -0
  428. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  429. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +51 -0
  430. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -1
  431. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +47 -0
  432. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  433. package/dist/configurator/ui/assistant/form-elements/index.d.ts +8 -8
  434. package/dist/configurator/ui/assistant/image-view/ImageView.d.ts +66 -0
  435. package/dist/configurator/ui/assistant/image-view/ImageView.js +1 -0
  436. package/dist/configurator/ui/assistant/image-view/index.d.ts +1 -0
  437. package/dist/configurator/ui/assistant/image-view/index.js +1 -0
  438. package/dist/configurator/ui/assistant/image-view/use-image-blob.d.ts +7 -0
  439. package/dist/configurator/ui/assistant/image-view/use-image-blob.js +1 -0
  440. package/dist/configurator/ui/assistant/index.d.ts +24 -3
  441. package/dist/configurator/ui/assistant/index.js +1 -1
  442. package/dist/configurator/ui/assistant/panel/AssistantPanelHeader.d.ts +57 -0
  443. package/dist/configurator/ui/assistant/panel/AssistantPanelHeader.js +1 -0
  444. package/dist/configurator/ui/assistant/panel/index.d.ts +1 -0
  445. package/dist/configurator/ui/assistant/panel/index.js +1 -0
  446. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  447. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  448. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  449. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  450. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +43 -1
  451. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  452. package/dist/configurator/ui/assistant/reference-link/index.d.ts +1 -1
  453. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  454. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +49 -2
  455. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -1
  456. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  457. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  458. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +34 -0
  459. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  460. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -1
  461. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  462. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +3 -9
  463. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  464. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +4 -4
  465. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -1
  466. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  467. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  468. package/dist/configurator/ui/assistant/thread-items.d.ts +22 -3
  469. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  470. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  471. package/dist/configurator/ui/assistant/use-assistant-composer.d.ts +88 -0
  472. package/dist/configurator/ui/assistant/use-assistant-composer.js +2 -0
  473. package/dist/configurator/ui/assistant/use-assistant-thread.d.ts +52 -0
  474. package/dist/configurator/ui/assistant/use-assistant-thread.js +1 -0
  475. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  476. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  477. package/dist/configurator/ui/assistant/voice/RecordingBar.d.ts +21 -0
  478. package/dist/configurator/ui/assistant/voice/RecordingBar.js +1 -0
  479. package/dist/configurator/ui/assistant/voice/ReplyPlayButton.d.ts +43 -0
  480. package/dist/configurator/ui/assistant/voice/ReplyPlayButton.js +1 -0
  481. package/dist/configurator/ui/assistant/voice/index.d.ts +4 -0
  482. package/dist/configurator/ui/assistant/voice/index.js +1 -0
  483. package/dist/configurator/ui/assistant/voice/use-voice-recording.d.ts +39 -0
  484. package/dist/configurator/ui/assistant/voice/use-voice-recording.js +1 -0
  485. package/dist/configurator/ui/assistant/voice/voice-capture.d.ts +22 -0
  486. package/dist/configurator/ui/assistant/voice/voice-capture.js +1 -0
  487. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  488. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  489. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  490. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  491. package/dist/configurator/ui/index.d.ts +1 -1
  492. package/dist/configurator/ui/index.js +1 -1
  493. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  494. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  495. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  496. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  497. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  498. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  499. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  500. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  501. package/dist/docs/3d-scene/animations-basic.mdx +0 -4
  502. package/dist/docs/3d-scene/camera-based-hiding.mdx +0 -2
  503. package/dist/docs/3d-scene/cameras/custom.mdx +0 -2
  504. package/dist/docs/3d-scene/cameras/fit-during-drag.mdx +0 -4
  505. package/dist/docs/3d-scene/cameras/locks.mdx +0 -4
  506. package/dist/docs/3d-scene/cameras/transitions.mdx +0 -2
  507. package/dist/docs/3d-scene/engraving.mdx +0 -4
  508. package/dist/docs/3d-scene/materials/custom.mdx +1 -2
  509. package/dist/docs/3d-scene/materials/inherit.mdx +0 -4
  510. package/dist/docs/3d-scene/materials/multilevel.mdx +0 -47
  511. package/dist/docs/3d-scene/materials/override.mdx +0 -4
  512. package/dist/docs/3d-scene/materials/simple.mdx +0 -4
  513. package/dist/docs/3d-scene/materials/transformer.mdx +0 -4
  514. package/dist/docs/3d-scene/materials/transition.mdx +0 -4
  515. package/dist/docs/3d-scene/materials/transmissive.mdx +0 -4
  516. package/dist/docs/3d-scene/postprocessing.mdx +0 -2
  517. package/dist/docs/3d-scene/rendering/basic.mdx +5 -9
  518. package/dist/docs/3d-scene/rendering/custom-entity.mdx +0 -6
  519. package/dist/docs/3d-scene/rendering/lights/ambient-light.mdx +0 -2
  520. package/dist/docs/3d-scene/rendering/lights/directional-light.mdx +0 -2
  521. package/dist/docs/3d-scene/rendering/lights/point-light.mdx +0 -2
  522. package/dist/docs/3d-scene/rendering/lights/rect-area-light.mdx +0 -2
  523. package/dist/docs/3d-scene/rendering/lights/spot-light.mdx +0 -2
  524. package/dist/docs/3d-scene/rendering/object-groups.mdx +0 -2
  525. package/dist/docs/3d-scene/rendering/objects.mdx +0 -4
  526. package/dist/docs/3d-scene/rendering/scene-entity-object.mdx +0 -43
  527. package/dist/docs/3d-scene/rendering/smma.mdx +0 -2
  528. package/dist/docs/3d-scene/rendering/soft-shadows.mdx +0 -2
  529. package/dist/docs/3d-scene/rendering/transformer.mdx +1 -3
  530. package/dist/docs/complex-use-cases/custom-ui-on-root-level.mdx +0 -1
  531. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +19 -19
  532. package/dist/docs/complex-use-cases/navigation-guard.mdx +81 -19
  533. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +28 -65
  534. package/dist/docs/complex-use-cases/navigation-reset-undo.mdx +16 -20
  535. package/dist/docs/complex-use-cases/sketching.mdx +2 -10
  536. package/dist/docs/controls/custom.mdx +88 -87
  537. package/dist/docs/controls/manage-child-entities/entitychildrenlist.mdx +0 -4
  538. package/dist/docs/controls/nullable-attributes.mdx +0 -2
  539. package/dist/docs/controls/scene/custom-controls.mdx +7 -8
  540. package/dist/docs/controls/scene/html-hotspots.mdx +0 -4
  541. package/dist/docs/controls/scene/object-html-hotspots.mdx +0 -4
  542. package/dist/docs/controls/select-attribute/cardselect.mdx +0 -4
  543. package/dist/docs/controls/select-attribute/listselect.mdx +0 -4
  544. package/dist/docs/controls/select-attribute/select.mdx +0 -4
  545. package/dist/docs/controls/select-attribute/swatchselect.mdx +0 -4
  546. package/dist/docs/controls/select-attribute/switchselect.mdx +0 -4
  547. package/dist/docs/controls/select-attribute/toggleselect.mdx +0 -4
  548. package/dist/docs/controls/select-child-entity/cardselect.mdx +2 -6
  549. package/dist/docs/controls/select-child-entity/listselect.mdx +5 -11
  550. package/dist/docs/controls/select-child-entity/toggleselect.mdx +4 -10
  551. package/dist/docs/controls/text-input.mdx +90 -19
  552. package/dist/docs/demos/glass.mdx +0 -4
  553. package/dist/docs/demos/heater.mdx +0 -10
  554. package/dist/docs/demos/office-chair.mdx +0 -8
  555. package/dist/docs/demos/office-desk.mdx +0 -8
  556. package/dist/docs/demos/ring.mdx +0 -9
  557. package/dist/docs/dimensions/3d-scene-integration/angle-indicators.mdx +0 -2
  558. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +0 -2
  559. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +0 -14
  560. package/dist/docs/dimensions/3d-scene-integration/editable-offset-indicator.mdx +0 -6
  561. package/dist/docs/dimensions/3d-scene-integration/editable-size-indicator.mdx +0 -4
  562. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +0 -16
  563. package/dist/docs/dimensions/3d-scene-integration/offset-indicator.mdx +0 -6
  564. package/dist/docs/dimensions/3d-scene-integration/overlap-offset-demo.mdx +0 -6
  565. package/dist/docs/dimensions/basic-concepts/dimension-data-unit.mdx +0 -12
  566. package/dist/docs/dimensions/basic-concepts/dimension-unit-config.mdx +0 -12
  567. package/dist/docs/dimensions/input-controls/distance-input.mdx +0 -12
  568. package/dist/docs/dimensions/input-controls/distance-slider.mdx +6 -18
  569. package/dist/docs/dimensions/selection-controls/list-selector.mdx +0 -14
  570. package/dist/docs/dimensions/selection-controls/toggle-selector.mdx +0 -14
  571. package/dist/docs/drag-and-drop/drag-handle.mdx +0 -1
  572. package/dist/docs/drag-and-drop/hotspot-handle.mdx +0 -1
  573. package/dist/docs/drag-and-drop/no-selection.mdx +0 -1
  574. package/dist/docs/drag-and-drop/planes.mdx +0 -3
  575. package/dist/docs/drag-and-drop/room-planner.mdx +0 -6
  576. package/dist/docs/drag-and-drop/rotatable.mdx +0 -1
  577. package/dist/docs/drag-and-drop/snapping/auto-rotation-demo.mdx +0 -2
  578. package/dist/docs/drag-and-drop/snapping/label-matching-demo.mdx +0 -2
  579. package/dist/docs/drag-and-drop/snapping/multi-snap-composition-demo.mdx +0 -2
  580. package/dist/docs/drag-and-drop/snapping/nested-entity-demo.mdx +0 -2
  581. package/dist/docs/drag-and-drop/snapping/priority-demo.mdx +0 -2
  582. package/dist/docs/drag-and-drop/snapping/snap-axis-demo.mdx +0 -2
  583. package/dist/docs/drag-and-drop/snapping/snap-edge-demo.mdx +0 -2
  584. package/dist/docs/drag-and-drop/snapping/snap-plane-demo.mdx +0 -5
  585. package/dist/docs/drag-and-drop/snapping/snap-point-demo.mdx +0 -2
  586. package/dist/docs/drag-and-drop/spatial-constraints/collision-system.mdx +0 -2
  587. package/dist/docs/drag-and-drop/spatial-constraints/disjoint-and-within.mdx +0 -6
  588. package/dist/docs/drag-and-drop/spatial-constraints/geometry-override.mdx +0 -4
  589. package/dist/docs/drag-and-drop/spatial-constraints/multiple-collision-meshes.mdx +0 -4
  590. package/dist/docs/drag-and-drop/spatial-constraints/touches.mdx +0 -4
  591. package/dist/docs/drag-and-drop/swap.mdx +0 -4
  592. package/dist/docs/fabs/basic.mdx +6 -12
  593. package/dist/docs/fabs/layout.mdx +0 -7
  594. package/dist/docs/index.json +6 -6
  595. package/dist/docs/integrations/lifecycle-providers.mdx +0 -12
  596. package/dist/docs/integrations/onloadprovider.mdx +0 -3
  597. package/dist/docs/integrations/webcomponent-api/basics.mdx +6 -2
  598. package/dist/docs/integrations/webcomponent-api/preset-tags.mdx +4 -1
  599. package/dist/docs/integrations/woocommerce/overview.mdx +4 -2
  600. package/dist/docs/layouts/custom-layout.mdx +1 -41
  601. package/dist/docs/layouts/custom-price.mdx +0 -2
  602. package/dist/docs/layouts/custom-theme-handler.mdx +0 -4
  603. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3 -34
  604. package/dist/docs/layouts/gallery/corvid-drone.mdx +0 -29
  605. package/dist/docs/layouts/gallery/fenwick-window.mdx +0 -25
  606. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +0 -27
  607. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +0 -29
  608. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +2 -35
  609. package/dist/docs/layouts/gallery/sunfold-solar.mdx +0 -26
  610. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +0 -46
  611. package/dist/docs/layouts/header/custom.mdx +0 -2
  612. package/dist/docs/layouts/icon-sets.mdx +0 -6
  613. package/dist/docs/layouts/phoenix-elements.mdx +0 -4
  614. package/dist/docs/layouts/phoenix-handlers.mdx +19 -28
  615. package/dist/docs/layouts/presets/action-and-overlay.mdx +0 -8
  616. package/dist/docs/layouts/presets/custom.mdx +6 -13
  617. package/dist/docs/layouts/preview/always-expand.mdx +4 -14
  618. package/dist/docs/layouts/preview/always.mdx +4 -14
  619. package/dist/docs/layouts/preview/auto-presets.mdx +4 -14
  620. package/dist/docs/layouts/preview/auto.mdx +4 -14
  621. package/dist/docs/layouts/preview/never.mdx +4 -14
  622. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +18 -13
  623. package/dist/docs/layouts/sidebar/property-page-stack.mdx +0 -2
  624. package/dist/docs/layouts/sidebar/property-page.mdx +0 -2
  625. package/dist/docs/layouts/sidebar/tabs.mdx +0 -4
  626. package/dist/docs/layouts/sidebar-footer/custom.mdx +0 -2
  627. package/dist/docs/layouts/sidebar-footer/universal.mdx +0 -10
  628. package/dist/docs/layouts/tool-controls.mdx +0 -1
  629. package/dist/docs/layouts/toolbar.mdx +0 -4
  630. package/dist/docs/layouts/universal.mdx +2 -22
  631. package/dist/docs/other-features/client-side-rendering/camera-padding.mdx +0 -2
  632. package/dist/docs/other-features/client-side-rendering/custom.mdx +0 -6
  633. package/dist/docs/other-features/client-side-rendering/declarative.mdx +0 -4
  634. package/dist/docs/other-features/client-side-rendering/postprocessing.mdx +0 -6
  635. package/dist/docs/other-features/component-filters.mdx +0 -7
  636. package/dist/docs/other-features/currency.mdx +5 -6
  637. package/dist/docs/other-features/domain-actions.mdx +33 -7
  638. package/dist/docs/other-features/dynamic-component-attachments.mdx +75 -46
  639. package/dist/docs/other-features/error-5xx.mdx +0 -14
  640. package/dist/docs/other-features/navigation-hotspot.mdx +0 -5
  641. package/dist/docs/other-features/not-found-404.mdx +0 -14
  642. package/dist/docs/other-features/projected-entities.mdx +0 -5
  643. package/dist/docs/other-features/side-effects.mdx +0 -23
  644. package/dist/docs/other-features/transformers.mdx +101 -96
  645. package/dist/docs/other-features/violation-messages.mdx +0 -4
  646. package/dist/docs/other-features/violation-severity.mdx +2 -3
  647. package/dist/docs/performance/clone-highlight.mdx +0 -7
  648. package/dist/docs/performance/dynamic-components.mdx +0 -6
  649. package/dist/docs/performance/editable-dimension-stress-test.mdx +0 -2
  650. package/dist/docs/performance/fast-highlight.mdx +0 -7
  651. package/dist/docs/performance/general.mdx +0 -7
  652. package/dist/docs/performance/render-isolation.mdx +0 -6
  653. package/dist/docs/phoenix/admin.mdx +105 -134
  654. package/dist/docs/phoenix/application-states.mdx +45 -27
  655. package/dist/docs/phoenix/blender-rendering.mdx +3 -1
  656. package/dist/docs/phoenix/components.mdx +53 -46
  657. package/dist/docs/phoenix/configurator-interface.mdx +272 -116
  658. package/dist/docs/phoenix/data-sources.mdx +61 -37
  659. package/dist/docs/phoenix/deployments.mdx +11 -1
  660. package/dist/docs/phoenix/domain-model.mdx +20 -15
  661. package/dist/docs/phoenix/expression-context.mdx +3 -29
  662. package/dist/docs/phoenix/finalization.mdx +2 -1
  663. package/dist/docs/phoenix/getting-started.mdx +1 -3
  664. package/dist/docs/phoenix/integration/authentication-internal.mdx +2 -2
  665. package/dist/docs/phoenix/integration/finalization-internal.mdx +1 -1
  666. package/dist/docs/phoenix/localization.mdx +66 -55
  667. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  668. package/dist/docs/phoenix/phoenix-cli.mdx +57 -18
  669. package/dist/docs/phoenix/project-structure.mdx +58 -65
  670. package/dist/docs/phoenix/quickstart.mdx +1 -3
  671. package/dist/docs/phoenix/sdk-builder-workflow.mdx +17 -23
  672. package/dist/docs/phoenix/sessions-and-access.mdx +61 -40
  673. package/dist/docs/phoenix/sharing.mdx +1 -1
  674. package/dist/docs/phoenix/state-management.mdx +18 -16
  675. package/dist/docs/phoenix/testing.mdx +6 -1
  676. package/dist/docs/phoenix/webhooks.mdx +421 -241
  677. package/dist/docs/recipes-and-delete/delete-entity.mdx +3 -6
  678. package/dist/docs/recipes-and-delete/dynamic-root-entity.mdx +0 -2
  679. package/dist/docs/recipes-and-delete/grouped-button.mdx +0 -3
  680. package/dist/docs/recipes-and-delete/grouped-panel.mdx +0 -3
  681. package/dist/docs/recipes-and-delete/horizontal.mdx +3 -6
  682. package/dist/docs/recipes-and-delete/recipe-hierarchy-lists.mdx +0 -3
  683. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +0 -5
  684. package/dist/docs/recipes-and-delete/replace-dropdown.mdx +3 -6
  685. package/dist/docs/recipes-and-delete/replace-panel.mdx +0 -7
  686. package/dist/docs/recipes-and-delete/simple.mdx +3 -6
  687. package/dist/docs/recipes-and-delete/vertical.mdx +3 -6
  688. package/dist/docs/relations/aliases.mdx +0 -2
  689. package/dist/docs/relations/all-of-type.mdx +0 -4
  690. package/dist/docs/relations/child-nullable.mdx +0 -4
  691. package/dist/docs/relations/child-required.mdx +0 -2
  692. package/dist/docs/relations/collection-direct.mdx +0 -4
  693. package/dist/docs/relations/collection-indirect.mdx +0 -4
  694. package/dist/docs/relations/collection-multiple.mdx +0 -2
  695. package/dist/docs/relations/cross-reference.mdx +0 -2
  696. package/dist/docs/relations/hierarchy.mdx +0 -2
  697. package/dist/docs/selection-and-highlight/canvas.mdx +0 -1
  698. package/dist/docs/selection-and-highlight/disable-highlight-per-object.mdx +0 -1
  699. package/dist/docs/selection-and-highlight/disable-highlight.mdx +0 -1
  700. package/dist/docs/selection-and-highlight/effects/outline.mdx +0 -3
  701. package/dist/docs/selection-and-highlight/effects/overlay.mdx +0 -3
  702. package/dist/docs/selection-and-highlight/fast-emissive-highlight.mdx +0 -3
  703. package/dist/docs/selection-and-highlight/group-highlighting.mdx +0 -1
  704. package/dist/docs/selection-and-highlight/hierarchy.mdx +100 -151
  705. package/dist/docs/selection-and-highlight/hotspots.mdx +0 -1
  706. package/dist/domain/admin-domain/index.d.ts +2 -2
  707. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  708. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  709. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  710. package/dist/domain/application/application-config.d.ts +1 -3
  711. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  712. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  713. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  714. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  715. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  716. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  717. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  718. package/dist/domain/application/assistant/index.d.ts +0 -4
  719. package/dist/domain/application/assistant/index.js +1 -1
  720. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  721. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  722. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  723. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  724. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  725. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  726. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  727. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  728. package/dist/domain/application/assistant-mutations.js +1 -1
  729. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  730. package/dist/domain/application/configurator-builder.d.ts +38 -39
  731. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  732. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  733. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  734. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  735. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  736. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  737. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  738. package/dist/domain/available-system-components/available-system-components.js +1 -0
  739. package/dist/domain/available-system-components/index.d.ts +1 -0
  740. package/dist/domain/available-system-components/index.js +1 -0
  741. package/dist/domain/core/action/index.d.ts +0 -1
  742. package/dist/domain/core/action/index.js +1 -1
  743. package/dist/domain/core/domain.js +1 -1
  744. package/dist/domain/core/index.d.ts +1 -1
  745. package/dist/domain/core/index.js +1 -1
  746. package/dist/domain/core/invariant/violation.d.ts +3 -2
  747. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  748. package/dist/domain/domain-builder/domain-builder.js +1 -0
  749. package/dist/domain/domain-builder/index.d.ts +1 -0
  750. package/dist/domain/domain-builder/index.js +1 -0
  751. package/dist/domain/domain-context/action-system/action-system.d.ts +32 -6
  752. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  753. package/dist/domain/domain-context/domain-context-systems.d.ts +1 -1
  754. package/dist/domain/domain-context/transformers/context.d.ts +4 -2
  755. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -1
  756. package/dist/domain/domain-runtime/action-factory.d.ts +11 -0
  757. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +5 -5
  758. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +2 -0
  759. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  760. package/dist/domain/domain-runtime/domain-runtime.d.ts +36 -24
  761. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  762. package/dist/domain/domain-runtime/environment/actions.d.ts +1 -0
  763. package/dist/domain/domain-runtime/environment/actions.js +1 -1
  764. package/dist/domain/domain-runtime/environment/initialize.js +1 -1
  765. package/dist/domain/domain-runtime/environment/selectors.d.ts +2 -0
  766. package/dist/domain/domain-runtime/environment/selectors.js +1 -1
  767. package/dist/domain/domain-runtime/environment/types.d.ts +6 -0
  768. package/dist/domain/domain-runtime/index.d.ts +1 -1
  769. package/dist/domain/domain-runtime/index.js +1 -1
  770. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  771. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  772. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  773. package/dist/domain/domain-runtime/spec/index.js +1 -1
  774. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  775. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  776. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  777. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  778. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  779. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  780. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  781. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  782. package/dist/domain/extensions/export-images/index.js +1 -1
  783. package/dist/domain/extensions/index.d.ts +1 -1
  784. package/dist/domain/extensions/index.js +1 -1
  785. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +1 -1
  786. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -1
  787. package/dist/domain/index.d.ts +15 -3
  788. package/dist/domain/index.js +1 -1
  789. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +5 -0
  790. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  791. package/dist/domain/spec/{enhanced-json-value.d.ts → enhanced-json/enhanced-json-value.d.ts} +1 -1
  792. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  793. package/dist/domain/spec/enhanced-json/index.js +1 -0
  794. package/dist/domain/spec/expressions/expression.d.ts +1 -1
  795. package/dist/domain/spec/expressions/relation-expression-params.d.ts +1 -1
  796. package/dist/domain/spec/index.d.ts +3 -8
  797. package/dist/domain/spec/index.js +1 -1
  798. package/dist/domain/spec/model/defaults.d.ts +1 -1
  799. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  800. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  801. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  802. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  803. package/dist/domain/spec/modules/index.js +1 -0
  804. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  805. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  806. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  807. package/dist/domain/spec/modules/project-modules.js +1 -0
  808. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  809. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  810. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  811. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  812. package/dist/domain/spec/phx/index.d.ts +1 -0
  813. package/dist/domain/spec/phx/index.js +1 -0
  814. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  815. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  816. package/dist/domain/spec/phx/phx-domain.js +1 -0
  817. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  818. package/dist/domain/spec/phx/phx-model.js +1 -0
  819. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  820. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +7 -6
  821. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  822. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  823. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  824. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  825. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  826. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  827. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +8 -6
  828. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  829. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +3 -1
  830. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  831. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +8 -10
  832. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  833. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  834. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  835. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  836. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  837. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  838. package/dist/{application-spec/generate-application → domain/spec}/runtime/create-application.d.ts +3 -2
  839. package/dist/domain/spec/runtime/create-application.js +1 -0
  840. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -2
  841. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  842. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -1
  843. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  844. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  845. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  846. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  847. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -2
  848. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  849. package/dist/domain/spec/runtime/factory-data/recipe-defaults.js +1 -0
  850. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -1
  851. package/dist/domain/spec/runtime/factory-data/static-violations.js +1 -0
  852. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  853. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  854. package/dist/domain/spec/runtime/index.d.ts +13 -0
  855. package/dist/domain/spec/runtime/index.js +1 -0
  856. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  857. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  858. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -2
  859. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  860. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -2
  861. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  862. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  863. package/dist/domain/spec/runtime/model/index.js +1 -0
  864. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/build-sdk-optic.d.ts +3 -4
  865. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  866. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  867. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  868. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  869. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  870. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -13
  871. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  872. package/dist/domain/spec/runtime/optics/index.js +1 -0
  873. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  874. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  875. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -2
  876. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  877. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  878. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  879. package/dist/domain/spec/runtime/sections/index.js +1 -0
  880. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +3 -2
  881. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  882. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  883. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  884. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  885. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  886. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  887. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  888. package/dist/domain/spec/runtime-spec/index.js +1 -0
  889. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.d.ts +7 -1
  890. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  891. package/dist/domain/spec/sections/app-metadata.d.ts +1 -0
  892. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  893. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +14 -19
  894. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  895. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  896. package/dist/domain/spec/sections/assistant/index.js +1 -0
  897. package/dist/domain/spec/sections/index.d.ts +1 -0
  898. package/dist/domain/spec/sections/index.js +1 -1
  899. package/dist/domain/system-components/phoenix-entity-elements/child-entity-card-selector.d.ts +2 -3
  900. package/dist/domain/system-components/phoenix-entity-elements/child-entity-list-selector.d.ts +2 -3
  901. package/dist/domain/system-components/phoenix-entity-elements/child-entity-toggle-selector.d.ts +2 -3
  902. package/dist/domain/system-definitions.js +1 -1
  903. package/dist/domain/utils/index.d.ts +2 -0
  904. package/dist/domain/utils/index.js +1 -0
  905. package/dist/editor/Editor.d.ts +5 -0
  906. package/dist/editor/Editor.js +1 -1
  907. package/dist/editor/EditorMode.d.ts +2 -0
  908. package/dist/editor/EditorMode.js +1 -1
  909. package/dist/editor/agent-mode/AgentModeBridge.d.ts +10 -0
  910. package/dist/editor/agent-mode/AgentModeBridge.js +1 -0
  911. package/dist/editor/agent-mode/agent-at-work-fonts.d.ts +2 -0
  912. package/dist/editor/agent-mode/agent-at-work-fonts.js +1 -0
  913. package/dist/editor/console-reporter/BrowserConsoleReporter.js +1 -1
  914. package/dist/editor/console-reporter/console-capture.d.ts +20 -0
  915. package/dist/editor/console-reporter/console-capture.js +1 -0
  916. package/dist/editor/index.d.ts +1 -0
  917. package/dist/editor/index.js +1 -1
  918. package/dist/editor/variants/VariantAnswerFooter.d.ts +8 -1
  919. package/dist/editor/variants/VariantAnswerFooter.js +1 -1
  920. package/dist/editor/variants/VariantPageUnavailable.d.ts +5 -0
  921. package/dist/editor/variants/VariantPageUnavailable.js +1 -0
  922. package/dist/editor/variants/VariantPreviewHandler.js +1 -1
  923. package/dist/editor/variants/variant-preview-fonts.d.ts +2 -0
  924. package/dist/editor/variants/variant-preview-fonts.js +1 -0
  925. package/dist/editor/variants/variant-preview-styles.d.ts +40 -48
  926. package/dist/editor/variants/variant-preview-styles.js +493 -1
  927. package/dist/extras/cognito/CognitoSignInPage.d.ts +2 -0
  928. package/dist/extras/cognito/CognitoSignInPage.js +1 -0
  929. package/dist/extras/cognito/index.d.ts +1 -0
  930. package/dist/extras/cognito/index.js +1 -0
  931. package/dist/i18n/locales/cs/messages.js +1 -1
  932. package/dist/i18n/locales/da/messages.js +1 -1
  933. package/dist/i18n/locales/de/messages.js +1 -1
  934. package/dist/i18n/locales/de-AT/messages.js +1 -1
  935. package/dist/i18n/locales/en/messages.js +1 -1
  936. package/dist/i18n/locales/en-AU/messages.js +1 -1
  937. package/dist/i18n/locales/en-GB/messages.js +1 -1
  938. package/dist/i18n/locales/es/messages.js +1 -1
  939. package/dist/i18n/locales/fr/messages.js +1 -1
  940. package/dist/i18n/locales/hu/messages.js +1 -1
  941. package/dist/i18n/locales/it/messages.js +1 -1
  942. package/dist/i18n/locales/nl/messages.js +1 -1
  943. package/dist/i18n/locales/pl/messages.js +1 -1
  944. package/dist/i18n/locales/pt/messages.js +1 -1
  945. package/dist/i18n/locales/ro/messages.js +1 -1
  946. package/dist/i18n/locales/sk/messages.js +1 -1
  947. package/dist/i18n/locales/tr/messages.js +1 -1
  948. package/dist/i18n/merge-catalogs.d.ts +4 -1
  949. package/dist/i18n/merge-catalogs.js +1 -1
  950. package/dist/legacy/domain-cli/gen/configurator-builder.js +5 -4
  951. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  952. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  953. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +4 -2
  954. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/i18n-index.js +3 -3
  955. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  956. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  957. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  958. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  959. package/dist/legacy/webhook-cli/lib/webhook-boundary.js +1 -1
  960. package/dist/phoenix/application-spec/application-spec-builder.d.ts +2 -2
  961. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  962. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +2 -1
  963. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  964. package/dist/phoenix/application-spec/generate-project-files.d.ts +4 -3
  965. package/dist/phoenix/application-spec/generate-project-files.js +1 -1
  966. package/dist/phoenix/application-spec/index.d.ts +2 -0
  967. package/dist/phoenix/application-spec/index.js +1 -1
  968. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  969. package/dist/phoenix/application-spec/project-files.js +1 -1
  970. package/dist/phoenix/application-spec/read-spec-project.d.ts +1 -2
  971. package/dist/phoenix/application-spec/read-spec-project.js +1 -1
  972. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +1 -0
  973. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  974. package/dist/phoenix/cli.js +1 -1
  975. package/dist/phoenix/commands/account/index.d.ts +1 -0
  976. package/dist/phoenix/commands/account/index.js +1 -0
  977. package/dist/phoenix/commands/account/whoami.d.ts +4 -0
  978. package/dist/phoenix/commands/account/whoami.js +3 -0
  979. package/dist/phoenix/commands/activate-deployment.js +1 -1
  980. package/dist/phoenix/commands/build.d.ts +2 -1
  981. package/dist/phoenix/commands/build.js +1 -1
  982. package/dist/phoenix/commands/changelog.js +1 -1
  983. package/dist/phoenix/commands/check.js +1 -1
  984. package/dist/phoenix/commands/clean.d.ts +2 -1
  985. package/dist/phoenix/commands/clean.js +1 -1
  986. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  987. package/dist/phoenix/commands/create-environment.js +1 -1
  988. package/dist/phoenix/commands/data.js +1 -1
  989. package/dist/phoenix/commands/deploy.js +3 -3
  990. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  991. package/dist/phoenix/commands/dev.d.ts +2 -1
  992. package/dist/phoenix/commands/dev.js +4 -5
  993. package/dist/phoenix/commands/docs.js +1 -1
  994. package/dist/phoenix/commands/feedback.js +1 -1
  995. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  996. package/dist/phoenix/commands/fix.js +1 -1
  997. package/dist/phoenix/commands/index.d.ts +1 -0
  998. package/dist/phoenix/commands/index.js +1 -1
  999. package/dist/phoenix/commands/inspect-assets.js +1 -1
  1000. package/dist/phoenix/commands/list-environments.js +1 -1
  1001. package/dist/phoenix/commands/login.d.ts +9 -3
  1002. package/dist/phoenix/commands/login.js +3 -3
  1003. package/dist/phoenix/commands/logout.js +1 -1
  1004. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  1005. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  1006. package/dist/phoenix/commands/register-deployment.js +1 -1
  1007. package/dist/phoenix/commands/scene.js +1 -1
  1008. package/dist/phoenix/commands/screenshot.js +1 -1
  1009. package/dist/phoenix/commands/state.js +1 -1
  1010. package/dist/phoenix/commands/story-build.js +3 -3
  1011. package/dist/phoenix/commands/story-create.js +1 -1
  1012. package/dist/phoenix/commands/story-dev.js +2 -2
  1013. package/dist/phoenix/commands/sync.d.ts +2 -1
  1014. package/dist/phoenix/commands/sync.js +1 -1
  1015. package/dist/phoenix/commands/variants.js +1 -1
  1016. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1017. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  1018. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1019. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1020. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  1021. package/dist/phoenix/lingui/lingui.d.ts +4 -4
  1022. package/dist/phoenix/scripts/docs-utils.js +1 -1
  1023. package/dist/phoenix/services/application-spec-project-watcher.d.ts +14 -9
  1024. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  1025. package/dist/phoenix/services/cli-credentials.d.ts +9 -6
  1026. package/dist/phoenix/services/cli-credentials.js +2 -2
  1027. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1028. package/dist/phoenix/services/cli-exit.js +1 -0
  1029. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1030. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1031. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1032. package/dist/phoenix/services/deployment/index.js +1 -0
  1033. package/dist/phoenix/services/dev-experience/dev-experience.d.ts +31 -0
  1034. package/dist/phoenix/services/dev-experience/dev-experience.js +1 -0
  1035. package/dist/phoenix/services/dev-experience/index.d.ts +3 -0
  1036. package/dist/phoenix/services/dev-experience/index.js +1 -0
  1037. package/dist/phoenix/services/dev-experience/read-explicit-editor-setting.d.ts +7 -0
  1038. package/dist/phoenix/services/dev-experience/read-explicit-editor-setting.js +1 -0
  1039. package/dist/phoenix/services/dev-experience/regenerated-page-experience.d.ts +24 -0
  1040. package/dist/phoenix/services/dev-experience/regenerated-page-experience.js +1 -0
  1041. package/dist/phoenix/services/index.d.ts +6 -2
  1042. package/dist/phoenix/services/index.js +1 -1
  1043. package/dist/phoenix/services/phoenix-pubsub.d.ts +4 -0
  1044. package/dist/phoenix/services/phoenix-regions.d.ts +1 -1
  1045. package/dist/phoenix/services/phoenix-regions.js +1 -1
  1046. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1047. package/dist/phoenix/services/phoenix-store.js +1 -1
  1048. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1049. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1050. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1051. package/dist/phoenix/services/session/index.d.ts +2 -0
  1052. package/dist/phoenix/services/session/index.js +1 -0
  1053. package/dist/phoenix/services/session/phoenix-application.d.ts +83 -0
  1054. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1055. package/dist/phoenix/services/signed-in-development-environment.js +1 -1
  1056. package/dist/phoenix/services/source-archive.d.ts +2 -0
  1057. package/dist/phoenix/services/source-archive.js +1 -1
  1058. package/dist/phoenix/services/swc.d.ts +5 -4
  1059. package/dist/phoenix/services/swc.js +2 -2
  1060. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1061. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1062. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1063. package/dist/phoenix/services/telemetry/index.js +1 -0
  1064. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1065. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1066. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1067. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1068. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1069. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1070. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1071. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1072. package/dist/phoenix/services/vite-config.d.ts +2 -1
  1073. package/dist/phoenix/services/vite-config.js +1 -1
  1074. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  1075. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  1076. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  1077. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +2 -0
  1078. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -1
  1079. package/dist/react-sdk/application-runtime/hooks/use-environment.d.ts +7 -0
  1080. package/dist/react-sdk/application-runtime/hooks/use-environment.js +1 -1
  1081. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1082. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +6 -0
  1083. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -1
  1084. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -1
  1085. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -1
  1086. package/dist/react-sdk/application-runtime/responsive/types.d.ts +9 -0
  1087. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +18 -0
  1088. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1089. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  1090. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  1091. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  1092. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  1093. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  1094. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  1095. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  1096. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  1097. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  1098. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  1099. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  1100. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  1101. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  1102. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  1103. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1104. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1105. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1106. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +4 -3
  1107. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.d.ts +6 -1
  1108. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.js +1 -1
  1109. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.d.ts +2 -2
  1110. package/dist/react-sdk/domain-controls/ChildEntityCardSelector.d.ts +2 -3
  1111. package/dist/react-sdk/domain-controls/ChildEntityListSelector.d.ts +2 -3
  1112. package/dist/react-sdk/domain-controls/ChildEntityToggleSelector.d.ts +2 -3
  1113. package/dist/react-sdk/domain-controls/hooks/use-cook-replace-recipes.d.ts +3 -3
  1114. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  1115. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  1116. package/dist/react-sdk/index.d.ts +3 -0
  1117. package/dist/react-sdk/index.js +1 -1
  1118. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1119. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1120. package/dist/react-sdk/preset-selection/index.js +1 -0
  1121. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  1122. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  1123. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  1124. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  1125. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  1126. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  1127. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  1128. package/dist/react-sdk/provider-slots/index.js +1 -0
  1129. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  1130. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1131. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  1132. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  1133. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  1134. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  1135. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  1136. package/dist/ui-sdk/icons/__generated/ChatCircleText.d.ts +3 -0
  1137. package/dist/ui-sdk/icons/__generated/ChatCircleText.js +1 -0
  1138. package/dist/ui-sdk/icons/__generated/Microphone.d.ts +3 -0
  1139. package/dist/ui-sdk/icons/__generated/Microphone.js +1 -0
  1140. package/dist/ui-sdk/icons/__generated/MicrophoneSlash.d.ts +3 -0
  1141. package/dist/ui-sdk/icons/__generated/MicrophoneSlash.js +1 -0
  1142. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1143. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1144. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.d.ts +3 -0
  1145. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.js +1 -0
  1146. package/dist/ui-sdk/icons/__generated/SpeakerHigh.d.ts +3 -0
  1147. package/dist/ui-sdk/icons/__generated/SpeakerHigh.js +1 -0
  1148. package/dist/ui-sdk/icons/__generated/SpeakerSlash.d.ts +3 -0
  1149. package/dist/ui-sdk/icons/__generated/SpeakerSlash.js +1 -0
  1150. package/dist/ui-sdk/icons/__generated/Stop.d.ts +3 -0
  1151. package/dist/ui-sdk/icons/__generated/Stop.js +1 -0
  1152. package/dist/ui-sdk/icons/__generated/index.d.ts +16 -0
  1153. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1154. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1155. package/dist/ui-sdk/theme/types.d.ts +0 -4
  1156. package/dist/watch/glob-matcher.d.ts +4 -4
  1157. package/dist/watch/glob-matcher.js +1 -1
  1158. package/dist/watch/watch.d.ts +4 -4
  1159. package/dist/watch/watch.js +1 -1
  1160. package/dist/webhook/builders/auth-handler-builder.d.ts +3 -0
  1161. package/dist/webhook/builders/auth-handler-builder.js +1 -1
  1162. package/dist/webhook/builders/common.d.ts +4 -2
  1163. package/package.json +10 -4
  1164. package/schema/domain-spec.json +88 -4
  1165. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  1166. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  1167. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  1168. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  1169. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  1170. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  1171. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  1172. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  1173. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  1174. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  1175. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  1176. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  1177. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  1178. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  1179. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  1180. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  1181. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  1182. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  1183. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  1184. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  1185. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  1186. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  1187. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  1188. package/dist/application-spec/generate-application/runtime/create-application.js +0 -1
  1189. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +0 -1
  1190. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +0 -1
  1191. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  1192. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  1193. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  1194. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  1195. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  1196. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  1197. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  1198. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  1199. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  1200. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  1201. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  1202. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  1203. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  1204. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  1205. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  1206. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  1207. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1208. package/dist/configurator/ui/assistant/theme.d.ts +0 -2
  1209. package/dist/configurator/ui/assistant/theme.js +0 -1
  1210. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +0 -1
  1211. package/dist/domain/available-system-components.d.ts +0 -11
  1212. package/dist/domain/available-system-components.js +0 -1
  1213. package/dist/domain/core/action/action-factory.d.ts +0 -11
  1214. package/dist/domain/domain-builder.js +0 -1
  1215. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  1216. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  1217. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  1218. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  1219. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  1220. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1221. package/dist/phoenix/services/phoenix-application.js +0 -1
  1222. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.js} +0 -0
  1223. /package/dist/{domain/application/assistant/assistant-manifest.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-image-view.js} +0 -0
  1224. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  1225. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  1226. /package/dist/domain/{core/action → domain-runtime}/action-factory.js +0 -0
  1227. /package/dist/domain/spec/{enhanced-json-value.js → enhanced-json/enhanced-json-value.js} +0 -0
  1228. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  1229. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  1230. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  1231. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  1232. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  1233. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  1234. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  1235. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  1236. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  1237. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  1238. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  1239. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  1240. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  1241. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  1242. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  1243. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  1244. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  1245. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  1246. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  1247. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  1248. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  1249. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  1250. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  1251. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  1252. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  1253. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  1254. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  1255. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  1256. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  1257. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  1258. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  1259. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  1260. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  1261. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  1262. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  1263. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  1264. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  1265. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  1266. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  1267. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  1268. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  1269. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  1270. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  1271. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  1272. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  1273. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  1274. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  1275. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  1276. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  1277. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  1278. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  1279. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  1280. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  1281. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  1282. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  1283. /package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +0 -0
  1284. /package/dist/phoenix/{commands → services/deployment}/generated-env-markers.js +0 -0
  1285. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1,6 +1,4 @@
1
- import{getStoryDevVirtualModuleId as o}from"./common.js";export const generateApplicationSpecStoryWrapper=(t,i)=>`import { v4 } from 'uuid'
2
-
3
- import { mountConfiguratorApplication } from '@salsita-ai/sdk/application'
1
+ import{getStoryDevVirtualModuleId as o}from"./common.js";export const generateApplicationSpecStoryWrapper=(t,i)=>`import { mountConfiguratorApplication } from '@salsita-ai/sdk/application'
4
2
  import { Editor } from '@salsita-ai/sdk/editor'
5
3
  import type { MockTemplateDefinition } from '@salsita-ai/sdk/editor'
6
4
  import { active, wsUrl } from ${o(t)}
@@ -9,7 +7,7 @@ import { configuratorConfig } from './configurator-config.js'
9
7
  import { rawProjectFiles } from './raw-project-files.js'
10
8
 
11
9
  const mockTemplates: MockTemplateDefinition[] = ${JSON.stringify(i,null,2)}
12
- const tagName = \`component-\${v4()}\`
10
+ const tagName = \`component-\${crypto.randomUUID()}\`
13
11
  const config = configuratorConfig.withWebComponentTag(tagName).buildConfig()
14
12
 
15
13
  mountConfiguratorApplication(config)
@@ -31,6 +31,7 @@ export const generateApplicationSpecTsconfig=()=>`{
31
31
 
32
32
  "paths": {}
33
33
  },
34
- "include": ["../src", ".", "../prettier.config.js", "../eslint.config.js", "./globals.d.ts"]
34
+ "include": ["../src", ".", "../prettier.config.js", "../eslint.config.js", "./globals.d.ts"],
35
+ "exclude": ["workspace", "node_modules", "bower_components", "jspm_packages"]
35
36
  }
36
37
  `;
@@ -5,7 +5,7 @@ let t=t=>`webhookHandlers${t}`;export const generateApplicationSpecWebhookBuilde
5
5
  oauthClientId: phx.webhooksEnv.OAUTH_PROVIDER_CLIENT_ID,
6
6
  oauthClientSecret: phx.webhooksEnv.OAUTH_PROVIDER_CLIENT_SECRET,
7
7
  oauthProviderBaseUrl: phx.webhooksEnv.OAUTH_PROVIDER_BASE_URL,
8
- },`:"",r=o.map((e,o)=>{let i=t(o),r=e.replace(/\.tsx?$/,".js");return`import ${i} from '../${r}'`}).join("\n"),n=o.length>0,s=o.map((e,o)=>`{ origin: '${e}', exports: ${t(o)} }`),a=`[${s.join(", ")}]`,l=n?`
8
+ },`:"",n=o.map((e,o)=>{let i=t(o),n=e.replace(/\.tsx?$/,".js");return`import ${i} from '../${n}'`}).join("\n"),r=o.length>0,s=o.map((e,o)=>`{ origin: '${e}', exports: ${t(o)} }`),a=`[${s.join(", ")}]`,l=r?`
9
9
  .withHandlers(${a})`:"";return`// Auto-generated by application-spec pipeline. Do not edit.
10
10
  import { createDomainWebhook } from '@salsita-ai/sdk/webhook'
11
11
  import type { DeploymentAssistant } from '@salsita-ai/sdk/contracts/assistant'
@@ -13,8 +13,8 @@ import type { DeploymentAssistant } from '@salsita-ai/sdk/contracts/assistant'
13
13
  import { configuratorBuilder, createI18n } from './domain.js'
14
14
  import { customComponentOptics } from './configurator-domain-code.js'
15
15
  import { customAdminComponentOptics } from './admin-domain-code.js'
16
- ${r?`
17
- ${r}
16
+ ${n?`
17
+ ${n}
18
18
  `:""}
19
19
  const $assistantServerSettings: Pick<DeploymentAssistant, 'instructions' | 'ai'> | null = ${JSON.stringify(e.configurator.assistantServerSettings?{instructions:e.configurator.assistantServerSettings.instructions??void 0,ai:e.configurator.assistantServerSettings.ai}:null)}
20
20
 
@@ -39,6 +39,7 @@ export const {
39
39
  assistantServerSettings: $assistantServerSettings,
40
40
  assistantStrictThreads: phx.webhooksEnv.ASSISTANT_STRICT_THREADS,
41
41
  ${i}
42
+ ${e.appMetadata.useCognito?" useCognito: true,":""}
42
43
  })
43
44
 
44
45
  // @ts-ignore - Initialize the globals
@@ -2,5 +2,6 @@
2
2
  export interface WebhookIndexOptions {
3
3
  /** Whether the project has `src/webhooks/index.ts`; without it the entry holds the built-in webhook. */
4
4
  readonly hasWebhookEntry: boolean;
5
+ readonly useCognito: boolean;
5
6
  }
6
- export declare const generateApplicationSpecWebhookIndex: ({ hasWebhookEntry }: WebhookIndexOptions) => string;
7
+ export declare const generateApplicationSpecWebhookIndex: ({ hasWebhookEntry, useCognito }: WebhookIndexOptions) => string;
@@ -1,4 +1,4 @@
1
- import{autoHeader as e}from"../common/file-headers.js";export const generateApplicationSpecWebhookIndex=({hasWebhookEntry:o})=>o?`${e("webhook.ts","Webhook entry point — imports builders (sets globalThis.phx.webhooks) then re-exports user handler.")}
1
+ import{autoHeader as e}from"../common/file-headers.js";export const generateApplicationSpecWebhookIndex=({hasWebhookEntry:o,useCognito:s})=>o?`${e("webhook.ts","Webhook entry point — imports builders (sets globalThis.phx.webhooks) then re-exports user handler.")}
2
2
  export * as builders from './webhook-builders.js'
3
3
 
4
4
  import implementation from '../src/webhooks/index.js'
@@ -9,7 +9,7 @@ export * as builders from './webhook-builders.js'
9
9
 
10
10
  // A webhook needs at least one handler; anonymous auth stays inert until spec/application.yaml sets useAuthHook
11
11
  const authHandler = phx.webhooks.authHandlerBuilder
12
- .withAnonymousHandler(async () => ({ success: true, data: {}, role: 'anonymous' }))
12
+ .withAnonymousHandler(async () => (${s?"{ success: false }":"{ success: true, data: {}, role: 'anonymous' }"}))
13
13
  .build()
14
14
 
15
15
  export const handler = phx.webhooks.webhookBuilder.withAuthHook(authHandler).build()
@@ -1,9 +1,2 @@
1
- export * from './runtime/sections/index.js';
2
- export * from './runtime/application-runtime.js';
3
- export { applicationSpecSlice, type ApplicationSpecSliceModules } from './runtime/application-spec-slice.js';
4
- export { type ApplicationModules, createApplication } from './runtime/create-application.js';
5
- export * from './runtime/factory-data/index.js';
6
- export * from './runtime/migrations/index.js';
7
- export { isConfiguratorModelSchemaCompatible } from './runtime/configurator-runtime/configurator-model-runtime.js';
1
+ export { ActionsRuntime, type ApplicationModules, ApplicationRuntime, type ApplicationRuntimeResult, type ApplicationSpecSliceModules, AssistantRuntime, type ComponentOptic, ComponentOptics, DataRuntime, type ExpressionImplementations, ExpressionRuntime, FactoryDataRuntime, type InvariantImplementations, type MigrationModules, MigrationRuntime, type MissingExpression, PresetRuntime, type RecipeDefaults, type StaticViolations, ThemeRuntime, TransformersRuntime, applicationSpecSlice, createApplication, evaluateReflectionConstants, evaluateStaticMemoEvalPlan, findReflectionConstants, generateMemoEvalPlanRuntime, generateRuntimeInstance, isConfiguratorModelSchemaCompatible, } from '#package/domain';
8
2
  export * from './code/index.js';
9
- export { generateRuntimeInstance } from './runtime/generate-runtime-instance.js';
@@ -1 +1 @@
1
- export*from"./runtime/sections/index.js";export*from"./runtime/application-runtime.js";export{applicationSpecSlice}from"./runtime/application-spec-slice.js";export{createApplication}from"./runtime/create-application.js";export*from"./runtime/factory-data/index.js";export*from"./runtime/migrations/index.js";export{isConfiguratorModelSchemaCompatible}from"./runtime/configurator-runtime/configurator-model-runtime.js";export*from"./code/index.js";export{generateRuntimeInstance}from"./runtime/generate-runtime-instance.js";
1
+ export{ActionsRuntime,ApplicationRuntime,AssistantRuntime,ComponentOptics,DataRuntime,ExpressionRuntime,FactoryDataRuntime,MigrationRuntime,PresetRuntime,ThemeRuntime,TransformersRuntime,applicationSpecSlice,createApplication,evaluateReflectionConstants,evaluateStaticMemoEvalPlan,findReflectionConstants,generateMemoEvalPlanRuntime,generateRuntimeInstance,isConfiguratorModelSchemaCompatible}from"#package/domain";export*from"./code/index.js";
@@ -9,6 +9,7 @@ export type MergedAppMetadata = Branded<'MergedAppMetadata', {
9
9
  readonly pageTitle: string | undefined;
10
10
  readonly useAuthHook: boolean;
11
11
  readonly useClerk: boolean;
12
+ readonly useCognito: boolean;
12
13
  readonly enableAdminRelease: boolean;
13
14
  readonly jsonSchemaValidator: 'ajv' | 'csp-compatible';
14
15
  readonly gltfDecoder: 'js' | 'wasm';
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as o,diagnosticMessages as a}from"../../errors/index.js";let t=["project","applicationVersion","workspace","webComponentTag","pageTitle","useAuthHook","useClerk","enableAdminRelease","jsonSchemaValidator","gltfDecoder","collectFinalizeData"];export const MergedAppMetadata=(l,n)=>{let i=((e,l)=>{let n={},i={};for(let r of e)for(let e of t){let t=r.content[e];if(void 0===t)continue;let c=i[e];if(c){l.error(o.DUPLICATE_APP_METADATA_FIELD,a.DUPLICATE_APP_METADATA_FIELD(e,c,r.name));continue}n[e]=t,i[e]=r.name}return n})(l,n),r=i.useClerk??!1,c=i.useAuthHook??!!r;return e({applicationVersion:i.applicationVersion??"0.0.0",workspace:i.workspace??!1,webComponentTag:i.webComponentTag,pageTitle:i.pageTitle,useAuthHook:c,useClerk:r,enableAdminRelease:i.enableAdminRelease??!1,jsonSchemaValidator:i.jsonSchemaValidator??"ajv",gltfDecoder:i.gltfDecoder??"wasm",collectFinalizeData:i.collectFinalizeData??!1})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as o,diagnosticMessages as a}from"../../errors/index.js";let t=["project","applicationVersion","workspace","webComponentTag","pageTitle","useAuthHook","useClerk","useCognito","enableAdminRelease","jsonSchemaValidator","gltfDecoder","collectFinalizeData"];export const MergedAppMetadata=(l,n)=>{let i=((e,l)=>{let n={},i={};for(let r of e)for(let e of t){let t=r.content[e];if(void 0===t)continue;let s=i[e];if(s){l.error(o.DUPLICATE_APP_METADATA_FIELD,a.DUPLICATE_APP_METADATA_FIELD(e,s,r.name));continue}n[e]=t,i[e]=r.name}return n})(l,n),r=i.useClerk??!1,s=i.useCognito??!1;s&&(r||!1===i.useAuthHook)&&n.error(o.COGNITO_AUTH_CONFLICT,a.COGNITO_AUTH_CONFLICT());let c=i.useAuthHook??(r||s);return e({applicationVersion:i.applicationVersion??"0.0.0",workspace:i.workspace??!1,webComponentTag:i.webComponentTag,pageTitle:i.pageTitle,useAuthHook:c,useClerk:r,useCognito:s,enableAdminRelease:i.enableAdminRelease??!1,jsonSchemaValidator:i.jsonSchemaValidator??"ajv",gltfDecoder:i.gltfDecoder??"wasm",collectFinalizeData:i.collectFinalizeData??!1})};
@@ -1,5 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import type { AssistantAiSettings } from '@salsita-ai/contracts/assistant';
2
+ import { type AssistantAiSettings } from '@salsita-ai/contracts/assistant';
3
3
  import type { ParseContext } from '../../core/index.js';
4
4
  import type { RawAssistant } from '../raw-spec/index.js';
5
5
  import type { ClassifiedSpecFile } from './classified-spec-file.js';
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../errors/index.js";let i=(e,i,n,r)=>{let l=i.flatMap(e=>{let t=n(e.manifest);return t?[{file:e.file,entries:t}]:[]});if(0===l.length)return;let a={},o=new Map;for(let{file:i,entries:n}of l)for(let[l,f]of Object.entries(n)){let n=o.get(l);if(n){r.at("assistant",e,l).error(t.ASSISTANT_MERGE_CONFLICT,s.ASSISTANT_MERGE_CONFLICT(e,l,n,i));continue}o.set(l,i),a[l]=f}return a},n=(e,i,n,r)=>{let l,a;for(let o of i){let i=n(o.manifest);if(void 0!==i){if(l){r.at("assistant",e).error(t.DUPLICATE_ASSISTANT_FIELD,s.DUPLICATE_ASSISTANT_FIELD(e,l,o.file));continue}l=o.file,a=i}}return a};export const MergedAssistant=(r,l)=>{let a=r.flatMap(e=>e.content.assistant?[{file:e.name,manifest:e.content.assistant}]:[]);if(0===a.length)return e({manifest:null});let o={entities:i("entities",a,e=>e.entities,l),deletable:i("deletable",a,e=>e.deletable,l),writable:i("writable",a,e=>e.writable,l),childRecipes:i("childRecipes",a,e=>e.childRecipes,l),replaceRecipes:i("replaceRecipes",a,e=>e.replaceRecipes,l),actions:i("actions",a,e=>e.actions,l),screenshots:i("screenshots",a,e=>e.screenshots,l),formElements:i("formElements",a,e=>e.formElements,l),lenses:n("lenses",a,e=>e.lenses,l),instructions:n("instructions",a,e=>e.instructions,l),ai:n("ai",a,e=>e.ai,l)},{ai:f}=o;return f?e({manifest:{...o,ai:f}}):(l.at("assistant","ai").error(t.ASSISTANT_MISSING_AI,s.ASSISTANT_MISSING_AI()),e({manifest:null}))};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{ASSISTANT_HOURLY_LIMIT_LEVELS as t,ASSISTANT_HOURLY_LIMIT_MAXIMA as i,ASSISTANT_MAX_THREAD_SIZE as s}from"@salsita-ai/contracts/assistant";import{DiagnosticCode as a,diagnosticMessages as r}from"../../errors/index.js";let n=(e,t,i,s)=>{let n=t.flatMap(e=>{let t=i(e.manifest);return t?[{file:e.file,entries:t}]:[]});if(0===n.length)return;let l={},o=new Map;for(let{file:t,entries:i}of n)for(let[n,S]of Object.entries(i)){let i=o.get(n);if(i){s.at("assistant",e,n).error(a.ASSISTANT_MERGE_CONFLICT,r.ASSISTANT_MERGE_CONFLICT(e,n,i,t));continue}o.set(n,t),l[n]=S}return l},l=(e,t,i,s)=>{let n,l;for(let o of t){let t=i(o.manifest);if(void 0!==t){if(n){s.at("assistant",e).error(a.DUPLICATE_ASSISTANT_FIELD,r.DUPLICATE_ASSISTANT_FIELD(e,n,o.file));continue}n=o.file,l=t}}return l};export const MergedAssistant=(o,S)=>{let A=o.flatMap(e=>e.content.assistant?[{file:e.name,manifest:e.content.assistant}]:[]);if(0===A.length)return e({manifest:null});let f={entities:n("entities",A,e=>e.entities,S),deletable:n("deletable",A,e=>e.deletable,S),writable:n("writable",A,e=>e.writable,S),childRecipes:n("childRecipes",A,e=>e.childRecipes,S),replaceRecipes:n("replaceRecipes",A,e=>e.replaceRecipes,S),actions:n("actions",A,e=>e.actions,S),screenshots:n("screenshots",A,e=>e.screenshots,S),formElements:n("formElements",A,e=>e.formElements,S),lenses:l("lenses",A,e=>e.lenses,S),instructions:l("instructions",A,e=>e.instructions,S),ai:l("ai",A,e=>e.ai,S)},{ai:c}=f;if(!c)return S.at("assistant","ai").error(a.ASSISTANT_MISSING_AI,r.ASSISTANT_MISSING_AI()),e({manifest:null});for(let e of(void 0!==c.maxThreadSize&&c.maxThreadSize>s&&S.at("assistant","ai","maxThreadSize").error(a.ASSISTANT_AI_ABOVE_MAXIMUM,r.ASSISTANT_AI_ABOVE_MAXIMUM("maxThreadSize",c.maxThreadSize,s)),t)){let t=c.hourlyLimits?.[e];void 0!==t&&t>i[e]&&S.at("assistant","ai","hourlyLimits",e).error(a.ASSISTANT_AI_ABOVE_MAXIMUM,r.ASSISTANT_AI_ABOVE_MAXIMUM(`hourlyLimits.${e}`,t,i[e]))}return e({manifest:{...f,ai:c}})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{ParseContext as s}from"../core/index.js";import{DiagnosticCode as t,diagnosticMessages as r}from"../errors/index.js";import{CategorizedFiles as i}from"./categorize/index.js";import{MergedSpec as a}from"./merge/index.js";import{RawSpecFiles as p}from"./raw-spec/parse-raw-spec.js";import{RawMockTemplates as o}from"./raw-spec/raw-mock-templates.js";import{ResolvedSpecFiles as l}from"./resolve/index.js";import{ApplicationSpec as n}from"./spec/index.js";export const parseApplicationFiles=(m,c)=>{let{rawProjectFiles:d,phxDefinitions:f}=m,{evalExpressionParser:u,referenceStore:F,parsingContext:A}=c,g=A??new s,w=g.startSpan("parseApplicationFiles","build","parse-application-files.ts"),R=i(d,F,g,c);if(!R)return w(),g.toResult(void 0);let S=g.startSpan("RawSpecFiles","parseApplicationFiles","parse-raw-spec.ts"),T=p(R.spec,g);S();let j=g.startSpan("RawMockTemplates","parseApplicationFiles","raw-mock-templates.ts"),O=o(R.mockTemplates,g);if(j(),!T)return w(),g.toResult(void 0);let k=g.startSpan("ResolvedSpecFiles","parseApplicationFiles","resolved-spec-files.ts"),v=l(T,d,g);k();let x=g.startSpan("MergedSpec","parseApplicationFiles","merged-spec.ts"),H=a(v,g);if(x(),g.hasErrors)return w(),g.toResult(void 0);let E=g.startSpan("ApplicationSpec","parseApplicationFiles","application-spec.ts"),M=n({merged:H,migrationFiles:R.migrations,adminMigrationFiles:R.adminMigrations,transformerFiles:R.transformers.map(e=>e.file.name),phxDefinitions:f,evalExpressionParser:u},g);return(E(),M)?(!R.hasWebhookEntry&&(M.appMetadata.useAuthHook||M.appMetadata.useClerk)&&g.warning(t.AUTH_WITHOUT_PROJECT_WEBHOOK,r.AUTH_WITHOUT_PROJECT_WEBHOOK()),w(),g.toResult(e({rawProjectFiles:d,categorizedFiles:R,rawMockTemplates:O,applicationSpec:M}))):(w(),g.toResult(void 0))};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{ParseContext as t}from"../core/index.js";import{DiagnosticCode as s,diagnosticMessages as r}from"../errors/index.js";import{CategorizedFiles as a}from"./categorize/index.js";import{MergedSpec as i}from"./merge/index.js";import{RawSpecFiles as p}from"./raw-spec/parse-raw-spec.js";import{RawMockTemplates as o}from"./raw-spec/raw-mock-templates.js";import{ResolvedSpecFiles as l}from"./resolve/index.js";import{ApplicationSpec as n}from"./spec/index.js";export const parseApplicationFiles=(m,c)=>{let{rawProjectFiles:d,phxDefinitions:f}=m,{evalExpressionParser:u,referenceStore:F,parsingContext:g}=c,A=g??new t,w=A.startSpan("parseApplicationFiles","build","parse-application-files.ts"),R=a(d,F,A,c);if(!R)return w(),A.toResult(void 0);let S=A.startSpan("RawSpecFiles","parseApplicationFiles","parse-raw-spec.ts"),T=p(R.spec,A);S();let j=A.startSpan("RawMockTemplates","parseApplicationFiles","raw-mock-templates.ts"),O=o(R.mockTemplates,A);if(j(),!T)return w(),A.toResult(void 0);let k=A.startSpan("ResolvedSpecFiles","parseApplicationFiles","resolved-spec-files.ts"),v=l(T,d,A);k();let x=A.startSpan("MergedSpec","parseApplicationFiles","merged-spec.ts"),H=i(v,A);if(x(),A.hasErrors)return w(),A.toResult(void 0);let M=A.startSpan("ApplicationSpec","parseApplicationFiles","application-spec.ts"),E=n({merged:H,migrationFiles:R.migrations,adminMigrationFiles:R.adminMigrations,transformerFiles:R.transformers.map(e=>e.file.name),phxDefinitions:f,evalExpressionParser:u},A);return(M(),E)?(!R.hasWebhookEntry&&!E.appMetadata.useCognito&&(E.appMetadata.useAuthHook||E.appMetadata.useClerk)&&A.warning(s.AUTH_WITHOUT_PROJECT_WEBHOOK,r.AUTH_WITHOUT_PROJECT_WEBHOOK()),w(),A.toResult(e({rawProjectFiles:d,categorizedFiles:R,rawMockTemplates:O,applicationSpec:E}))):(w(),A.toResult(void 0))};
@@ -81,23 +81,18 @@ export interface RawAssistantWritableField {
81
81
  }
82
82
  /**
83
83
  * One recipe group of the assistant `childRecipes` or `replaceRecipes` map, keyed by the instance
84
- * name of a `childEntityRecipes` or a `replaceEntityRecipes` component. `as` is the id the agent addresses the group by, the instance name
85
- * by default; `description` replaces the component's group description; `allowDryRuns: false` turns
86
- * the dry-run of the group's recipes off, for groups too large to try out. An empty entry
87
- * (`cabinets:` in YAML) exposes the group with its defaults.
84
+ * name of a `childEntityRecipes` or a `replaceEntityRecipes` component. It becomes a field of the
85
+ * entity type's `<Type>ChildRecipes` or `<Type>ReplaceRecipes` type, named by `as`, the instance
86
+ * name by default, which is also the id the agent passes to `addChild` or `replaceEntity`.
87
+ * `description` describes that field; `allowDryRuns: false` turns the dry-run of the group's recipes
88
+ * off, for groups too large to try out; `hints` say when the agent can reuse what it read. An empty
89
+ * entry (`cabinets:` in YAML) exposes the group with its defaults.
88
90
  */
89
91
  export interface RawAssistantRecipeGroup {
90
92
  readonly as?: string;
91
93
  readonly description?: string;
92
94
  readonly allowDryRuns?: boolean;
93
- }
94
- /**
95
- * The recipes of one entity type or alias in the assistant `childRecipes` or `replaceRecipes` map:
96
- * its recipe groups under `groups`, and the `hints` that hold for the whole edge of the type.
97
- */
98
- export interface RawAssistantRecipes {
99
95
  readonly hints?: readonly AssistantHint[];
100
- readonly groups: Readonly<Record<string, RawAssistantRecipeGroup | null>>;
101
96
  }
102
97
  /**
103
98
  * One entry of the assistant `actions` map, keyed by the name of an action declared under the
@@ -147,8 +142,8 @@ export interface RawAssistant {
147
142
  readonly entities?: Readonly<Record<string, Readonly<Record<string, RawAssistantField | null>>>>;
148
143
  readonly deletable?: Readonly<Record<string, RawAssistantDeletable | null>>;
149
144
  readonly writable?: Readonly<Record<string, Readonly<Record<string, RawAssistantWritableField | null>>>>;
150
- readonly childRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
151
- readonly replaceRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
145
+ readonly childRecipes?: Readonly<Record<string, Readonly<Record<string, RawAssistantRecipeGroup | null>>>>;
146
+ readonly replaceRecipes?: Readonly<Record<string, Readonly<Record<string, RawAssistantRecipeGroup | null>>>>;
152
147
  readonly actions?: Readonly<Record<string, RawAssistantAction | null>>;
153
148
  readonly screenshots?: Readonly<Record<string, Readonly<Record<string, RawAssistantScreenshot>>>>;
154
149
  readonly lenses?: Readonly<Record<string, RawAssistantLens>>;
@@ -156,4 +151,6 @@ export interface RawAssistant {
156
151
  readonly instructions?: string;
157
152
  readonly ai?: AssistantAiSettings;
158
153
  }
154
+ /** A GraphQL name the schema may use for a field or type: letters, digits and `_`, not starting with a digit or `__`. */
155
+ export declare const GRAPHQL_NAME_PATTERN: RegExp;
159
156
  export declare const rawAssistantSchema: z.ZodType<RawAssistant>;
@@ -1 +1 @@
1
- import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as n,ASSISTANT_REASONING_LEVELS as o}from"@salsita-ai/contracts/assistant";import{ASSISTANT_FORM_NAME_PATTERN as i,ASSISTANT_HINTS as r}from"#package/domain";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];let s=e.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),a=t=>e.enum(t,{errorMap:()=>({message:`must be one of: ${t.join(", ")}`})}),m=e.object({description:e.string().optional(),as:s.optional(),lenses:e.array(e.string()).optional()}).strict(),l="must be a whole number of at least 1; remove the key to nest tagged relations one level",p=e.object({description:e.string().trim().min(1,"must not be empty; say when the agent should use the lens"),maxDepth:e.number({invalid_type_error:l}).int(l).min(1,l).optional()}).strict(),c=s.refine(e=>!e.includes("__"),'must not contain "__", which names the generated copies of a lens'),u=e.array(a(r)),d=e.object({options:e.object({componentType:a(ASSISTANT_OPTION_COMPONENT_TYPES).optional(),instanceName:e.string().min(1,"must not be empty; name the component instance that holds the choices").optional(),as:s.optional(),validate:e.boolean().optional(),allowDryRuns:e.boolean().optional(),hints:u.optional()}).strict().refine(({componentType:e,instanceName:t})=>void 0===e==(void 0===t),'must give "componentType" and "instanceName" together, or neither to use the one option component instance that writes the field').nullable().optional()}).strict(),g=e.object({as:e.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:e.string().optional(),allowDryRuns:e.boolean().optional()}).strict(),h=t=>e.object({hints:u.optional(),groups:e.record(e.string(),g.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${t}" component`})}).strict(),b=e.object({description:e.string().optional(),as:s.optional()}).strict(),y=["enum","pattern","minimum","maximum","minLength","maxLength"],f=["enum","pattern","minLength","maxLength"],v=["enum","minimum","maximum"],_=e.object({type:a(["string","number","integer","boolean"]),enum:e.array(e.union([e.string(),e.number()])).min(1,"must list at least one value").optional(),pattern:e.string().refine(e=>{try{return RegExp(e,"u"),!0}catch{return!1}},"must be a regular expression, as in JSON Schema").optional(),minimum:e.number().optional(),maximum:e.number().optional(),minLength:e.number().int().nonnegative().optional(),maxLength:e.number().int().nonnegative().optional()}).strict().superRefine((t,n)=>{let o="string"===t.type?f:"boolean"===t.type?[]:v;for(let i of y)void 0===t[i]||o.includes(i)||n.addIssue({code:e.ZodIssueCode.custom,path:[i],message:`does not apply to an attribute of type "${t.type}"; remove it or change the type`});let i="string"===t.type?"string":"number";for(let[o,r]of("boolean"!==t.type&&t.enum?.some(e=>typeof e!==i||"integer"===t.type&&!Number.isInteger(e))&&n.addIssue({code:e.ZodIssueCode.custom,path:["enum"],message:`must list only ${"integer"===t.type?"whole number":i}s, since the attribute is of type "${t.type}"`}),[["minimum","maximum"],["minLength","maxLength"]])){let[i,s]=[t[o],t[r]];void 0!==i&&void 0!==s&&i>s&&n.addIssue({code:e.ZodIssueCode.custom,path:[o],message:`must not be greater than "${r}", or no value could satisfy the attribute`})}}),w=e.string().regex(i,'must start with a lowercase letter and hold only lowercase letters, digits and "-", since the panel reads form markup in lowercase'),j=e.object({description:e.string().trim().min(1,"must not be empty; say what the element is for and where the agent may use it"),role:a(["group","choice","choices","option","input"]),attributes:e.record(w,_).optional(),required:e.array(e.string()).optional()}).strict(),x=e.object({description:e.string().trim().min(1,"must not be empty; say what the view shows"),as:s.optional()}).strict(),S=`must be an object: declare provider (${t.join(", ")}), model (${n.join(", ")}) and reasoning (${o.join(", ")})`,T="must be a positive whole number of input tokens; remove the key to use the default of the server",N=e.object({provider:a(t),model:a(n),reasoning:a(o),maxThreadSize:e.number({invalid_type_error:T}).int(T).positive(T).optional()},{invalid_type_error:S}).strict();export const rawAssistantSchema=e.object({entities:e.record(e.string(),e.record(e.string(),m.nullable())).optional(),deletable:e.record(e.string(),e.object({}).strict().nullable()).optional(),writable:e.record(e.string(),e.record(e.string(),d.nullable())).optional(),childRecipes:e.record(e.string(),h("childEntityRecipes")).optional(),replaceRecipes:e.record(e.string(),h("replaceEntityRecipes")).optional(),actions:e.record(e.string(),b.nullable()).optional(),screenshots:e.record(e.string(),e.record(e.string(),x)).optional(),lenses:e.record(c,p).optional(),formElements:e.record(w,j).optional(),instructions:e.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:N.optional()}).strict();
1
+ import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as o,ASSISTANT_REASONING_LEVELS as n}from"@salsita-ai/contracts/assistant";import{ASSISTANT_FORM_NAME_PATTERN as i,ASSISTANT_HINTS as r}from"#package/domain";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];export const GRAPHQL_NAME_PATTERN=/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/;let a=e.string().regex(GRAPHQL_NAME_PATTERN,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),s=t=>e.enum(t,{errorMap:()=>({message:`must be one of: ${t.join(", ")}`})}),l=e.object({description:e.string().optional(),as:a.optional(),lenses:e.array(e.string()).optional()}).strict(),m="must be a whole number of at least 1; remove the key to nest tagged relations one level",p=e.object({description:e.string().trim().min(1,"must not be empty; say when the agent should use the lens"),maxDepth:e.number({invalid_type_error:m}).int(m).min(1,m).optional()}).strict(),c=a.refine(e=>!e.includes("__"),'must not contain "__", which names the generated copies of a lens'),u=e.array(s(r)),d=e.object({options:e.object({componentType:s(ASSISTANT_OPTION_COMPONENT_TYPES).optional(),instanceName:e.string().min(1,"must not be empty; name the component instance that holds the choices").optional(),as:a.optional(),validate:e.boolean().optional(),allowDryRuns:e.boolean().optional(),hints:u.optional()}).strict().refine(({componentType:e,instanceName:t})=>void 0===e==(void 0===t),'must give "componentType" and "instanceName" together, or neither to use the one option component instance that writes the field').nullable().optional()}).strict(),h=e.object({as:a.optional(),description:e.string().optional(),allowDryRuns:e.boolean().optional(),hints:u.optional()},{errorMap:(t,o)=>({message:t.code===e.ZodIssueCode.unrecognized_keys?`${o.defaultError}. A recipe group takes "as", "description", "allowDryRuns" and "hints"; the groups of a type go directly under it, keyed by instance name, with no "groups" level`:o.defaultError})}).strict(),g=e.object({description:e.string().optional(),as:a.optional()}).strict(),b=["enum","pattern","minimum","maximum","minLength","maxLength"],y=["enum","pattern","minLength","maxLength"],v=["enum","minimum","maximum"],_=e.object({type:s(["string","number","integer","boolean"]),enum:e.array(e.union([e.string(),e.number()])).min(1,"must list at least one value").optional(),pattern:e.string().refine(e=>{try{return RegExp(e,"u"),!0}catch{return!1}},"must be a regular expression, as in JSON Schema").optional(),minimum:e.number().optional(),maximum:e.number().optional(),minLength:e.number().int().nonnegative().optional(),maxLength:e.number().int().nonnegative().optional()}).strict().superRefine((t,o)=>{let n="string"===t.type?y:"boolean"===t.type?[]:v;for(let i of b)void 0===t[i]||n.includes(i)||o.addIssue({code:e.ZodIssueCode.custom,path:[i],message:`does not apply to an attribute of type "${t.type}"; remove it or change the type`});let i="string"===t.type?"string":"number";for(let[n,r]of("boolean"!==t.type&&t.enum?.some(e=>typeof e!==i||"integer"===t.type&&!Number.isInteger(e))&&o.addIssue({code:e.ZodIssueCode.custom,path:["enum"],message:`must list only ${"integer"===t.type?"whole number":i}s, since the attribute is of type "${t.type}"`}),[["minimum","maximum"],["minLength","maxLength"]])){let[i,a]=[t[n],t[r]];void 0!==i&&void 0!==a&&i>a&&o.addIssue({code:e.ZodIssueCode.custom,path:[n],message:`must not be greater than "${r}", or no value could satisfy the attribute`})}}),f=e.string().regex(i,'must start with a lowercase letter and hold only lowercase letters, digits and "-", since the panel reads form markup in lowercase'),w=e.object({description:e.string().trim().min(1,"must not be empty; say what the element is for and where the agent may use it"),role:s(["group","choice","choices","option","input"]),attributes:e.record(f,_).optional(),required:e.array(e.string()).optional()}).strict(),j=e.object({description:e.string().trim().min(1,"must not be empty; say what the view shows"),as:a.optional()}).strict(),x=`must be an object: declare provider (${t.join(", ")}), model (${o.join(", ")}) and reasoning (${n.join(", ")})`,T="must be a positive whole number of input tokens; remove the key to use the default of the server",N="must be a positive whole number of weighted tokens per hour; remove the key to use the default of the server",S=e.number({invalid_type_error:N}).int(N).positive(N).optional(),A=e.object({sub:S,ip:S,project:S},{invalid_type_error:"must be an object with any of sub, ip and project"}).strict(),E=e.object({provider:s(t),model:s(o),reasoning:s(n),maxThreadSize:e.number({invalid_type_error:T}).int(T).positive(T).optional(),hourlyLimits:A.optional(),voice:e.boolean({invalid_type_error:"must be true or false"}).optional()},{invalid_type_error:x}).strict();export const rawAssistantSchema=e.object({entities:e.record(e.string(),e.record(e.string(),l.nullable())).optional(),deletable:e.record(e.string(),e.object({}).strict().nullable()).optional(),writable:e.record(e.string(),e.record(e.string(),d.nullable())).optional(),childRecipes:e.record(e.string(),e.record(e.string(),h.nullable())).optional(),replaceRecipes:e.record(e.string(),e.record(e.string(),h.nullable())).optional(),actions:e.record(e.string(),g.nullable()).optional(),screenshots:e.record(e.string(),e.record(e.string(),j)).optional(),lenses:e.record(c,p).optional(),formElements:e.record(f,w).optional(),instructions:e.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:E.optional()}).strict();
@@ -60,6 +60,7 @@ export interface RawSpecContent {
60
60
  readonly pageTitle?: string;
61
61
  readonly useAuthHook?: boolean;
62
62
  readonly useClerk?: boolean;
63
+ readonly useCognito?: boolean;
63
64
  readonly enableAdminRelease?: boolean;
64
65
  readonly jsonSchemaValidator?: 'ajv' | 'csp-compatible';
65
66
  readonly gltfDecoder?: 'js' | 'wasm';
@@ -1 +1 @@
1
- import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t}from"../../core/index.js";import{validateNoLegacyCodeRef as e}from"../../enhanced-json/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as j}from"./raw-data.js";import{rawDefaultsSchema as u}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as h}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:h.optional(),$data:j.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:D.optional(),defaults:u.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
1
+ import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t}from"../../core/index.js";import{validateNoLegacyCodeRef as e}from"../../enhanced-json/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as u}from"./raw-data.js";import{rawDefaultsSchema as j}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as h}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:h.optional(),$data:u.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:D.optional(),defaults:j.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),useCognito:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";let i=[{name:"id",types:["string"],expected:'type "string"'},{name:"accessToken",types:["string"],expected:'type "string"'},{name:"tags",types:["array"],itemTypes:["string"],expected:'type "array" with items of type "string"'},{name:"emailAddress",types:["string"],expected:'type "string"'},{name:"fullName",types:["string","null"],expected:'type "string | null"'}],s=e=>{if(void 0!==e.type)return Array.isArray(e.type)?e.type:[e.type]},n=(e,t)=>e.length===t.length&&t.every(t=>e.includes(t)),p=e=>void 0===e?'no "type"':`type "${e.join(" | ")}"`;export const SessionDataSchema=a=>{let{sessionData:d,appMetadata:y,parsingContext:m}=a;if(!y.useClerk)return e(d);let l=i.flatMap(e=>{let t=((e,t)=>{if(void 0===e)return`"${t.name}" is missing (expected ${t.expected})`;let r=s(e);if(void 0===r||!n(r,t.types))return`"${t.name}" declares ${p(r)} (expected ${t.expected})`;if(t.itemTypes){let r=e.items;if(void 0===r||Array.isArray(r))return`"${t.name}" declares no single "items" schema (expected ${t.expected})`;let i=s(r);if(void 0===i||!n(i,t.itemTypes))return`"${t.name}" declares array items with ${p(i)} (expected ${t.expected})`}})(d.properties[e.name],e);return void 0===t?[]:[t]});return l.length>0?void m.error(t.CLERK_SESSION_DATA_INCOMPATIBLE,r.CLERK_SESSION_DATA_INCOMPATIBLE(l)):e(d)};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";let i=[{name:"id",types:["string"],expected:'type "string"'},{name:"accessToken",types:["string"],expected:'type "string"'},{name:"tags",types:["array"],itemTypes:["string"],expected:'type "array" with items of type "string"'},{name:"emailAddress",types:["string"],expected:'type "string"'},{name:"fullName",types:["string","null"],expected:'type "string | null"'}],s=e=>{if(void 0!==e.type)return Array.isArray(e.type)?e.type:[e.type]},n=(e,t)=>e.length===t.length&&t.every(t=>e.includes(t)),p=e=>void 0===e?'no "type"':`type "${e.join(" | ")}"`;export const SessionDataSchema=a=>{let{sessionData:o,appMetadata:d,parsingContext:y}=a;if(!d.useClerk&&!d.useCognito)return e(o);let m=i.flatMap(e=>{let t=((e,t)=>{if(void 0===e)return`"${t.name}" is missing (expected ${t.expected})`;let r=s(e);if(void 0===r||!n(r,t.types))return`"${t.name}" declares ${p(r)} (expected ${t.expected})`;if(t.itemTypes){let r=e.items;if(void 0===r||Array.isArray(r))return`"${t.name}" declares no single "items" schema (expected ${t.expected})`;let i=s(r);if(void 0===i||!n(i,t.itemTypes))return`"${t.name}" declares array items with ${p(i)} (expected ${t.expected})`}})(o.properties[e.name],e);return void 0===t?[]:[t]});return m.length>0?void y.error(d.useCognito?t.COGNITO_SESSION_DATA_INCOMPATIBLE:t.CLERK_SESSION_DATA_INCOMPATIBLE,d.useCognito?r.COGNITO_SESSION_DATA_INCOMPATIBLE(m):r.CLERK_SESSION_DATA_INCOMPATIBLE(m)):e(o)};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{ApplicationVersion as a}from"./application-version.js";export const AppMetadata=(o,t)=>{let l=a(o.applicationVersion,t);if(l)return e({applicationVersion:l,workspace:o.workspace,webComponentTag:o.webComponentTag,pageTitle:o.pageTitle,useAuthHook:o.useAuthHook,useClerk:o.useClerk,enableAdminRelease:o.enableAdminRelease,jsonSchemaValidator:o.jsonSchemaValidator,gltfDecoder:o.gltfDecoder,collectFinalizeData:o.collectFinalizeData})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{ApplicationVersion as o}from"./application-version.js";export const AppMetadata=(a,t)=>{let i=o(a.applicationVersion,t);if(i)return e({applicationVersion:i,workspace:a.workspace,webComponentTag:a.webComponentTag,pageTitle:a.pageTitle,useAuthHook:a.useAuthHook,useClerk:a.useClerk,useCognito:a.useCognito,enableAdminRelease:a.enableAdminRelease,jsonSchemaValidator:a.jsonSchemaValidator,gltfDecoder:a.gltfDecoder,collectFinalizeData:a.collectFinalizeData})};
@@ -1 +1 @@
1
- import{isArray as e}from"@salsita-ai/common/utils";import{ASSISTANT_HINTS as t,AssistantFieldClashError as i,buildAssistantManifest as r,describeAssistantValues as n,mergeAssistantFields as s,resolveAssistantField as o}from"#package/domain";import{DiagnosticCode as a,diagnosticMessages as l}from"../../../../errors/index.js";import{ASSISTANT_OPTION_COMPONENT_TYPES as S}from"../../../raw-spec/index.js";import{createSchemaRefResolver as p,isNullableSchema as N,phxDefinitionRefName as T}from"../../common/index.js";import{resolveAssistantFieldType as c}from"./assistant-field-type.js";import{resolveFormElements as d}from"./assistant-form-elements.js";let E="AnyDomainEntity",m="RecipeGroup",_="Recipe",A="DryRun",f="FieldOption",O="agentScreenshot",u=/^(?!(true|false|null)$)[_A-Za-z][_0-9A-Za-z]*$/,I={section:"childRecipes",component:"childEntityRecipes",mutation:"addChild"},y={section:"replaceRecipes",component:"replaceEntityRecipes",mutation:"replaceEntity"},h=new Set(["id","type","meta"]),v=new Set(["Query","Mutation","Navigation",m,_,A,"DryRunError",f,"Screenshot","JSON","String","Int","Float","Boolean","ID"]),b=new Set([m,_,f,A]),g=new Set(["id","type"]),M="A string, a message descriptor or a multilingual object; passed without translation.",R=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],C=(e,{property:t,writableKey:i},r,{resolveRef:s,exposed:o,sources:S},p)=>{let N=Object.entries(R(S,e)??{}),T=o.get(e)?.find(({source:e})=>e===t)?.name??N.find(([,{source:e}])=>e===t)?.[0],d=void 0===T?N.find(([e])=>e===t)?.[1]:void 0;if(d)return void p.at(i,t).error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[d.source,t],`${i}.${t}`));let{type:E,enumValues:m,localized:_,description:A}=c(r,s),f={...E,nonNull:!1},O=T??t,u=void 0===T?n(A,m):void 0;return _?{name:O,property:t,type:{kind:"scalar",name:"JSON",nonNull:!1},description:u?`${u} ${M}`:M}:{name:O,property:t,type:f,...void 0===u?{}:{description:u}}},j=(e,t)=>new Set([e,...[...t.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]),w=(e,t,{model:i,components:r})=>{let n=j(e,i);return r.filter(({componentName:e,typeOrAlias:i})=>e===t&&n.has(i)).map(({instanceName:e})=>String(e))},P=(e,t,{model:i,components:r})=>{let n=j(e,i);return r.flatMap(({componentName:e,typeOrAlias:i,instanceName:r,implementation:s})=>S.some(t=>t===e)&&n.has(i)&&"userBound"===s.kind&&"composite"===s.implementation.kind&&s.implementation.writeBindings.some(({entityField:e})=>e===t)?[{componentType:e,instanceName:String(r)}]:[])},D=(...e)=>t.filter(t=>e.some(e=>e?.includes(t))),U=(e,t,i,r)=>{let{model:n}=i,s=new Map,o=new Map;for(let[S,{groups:p,hints:N}]of Object.entries(e)){let e=n.entityTypes.find(e=>e===S),T=e?[e]:[...n.aliases].find(([e])=>e===S)?.[1];if(!T){r.at(S).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE(t.section,S));continue}for(let[e,n]of(T.forEach(e=>o.set(e,D(o.get(e),N))),Object.entries(p))){let o=r.at(S,"groups",e),p=`${S}.groups.${e}`,N={groupId:n?.as??e,instanceName:e,...n?.description===void 0?{}:{description:n.description},dryRuns:n?.allowDryRuns??!0};for(let r of T){let n=w(r,t.component,i),T=s.get(r)??[],c=T.find(e=>e.group.groupId===N.groupId);n.includes(e)?c?o.error(a.ASSISTANT_DUPLICATE_RECIPE_GROUP,l.ASSISTANT_DUPLICATE_RECIPE_GROUP(t,r,N.groupId,[c.entry,p])):s.set(r,[...T,{group:N,entry:p,entryCtx:o}]):o.error(a.ASSISTANT_UNKNOWN_RECIPE_GROUP,l.ASSISTANT_UNKNOWN_RECIPE_GROUP(t,S,e,r,n))}}}let S=n.entityTypes.flatMap(e=>{let t=s.get(e);return t?[{entityType:e,groups:t}]:[]});return{groups:Object.fromEntries(S.map(({entityType:e,groups:t})=>[e,t.map(({group:e})=>e)])),hints:o,metaEntries:new Map(S.flatMap(({entityType:e,groups:[t]})=>t?[[e,t.entryCtx]]:[]))}},L=(e,t,{model:i,components:r})=>{let n=new Set([e,...[...i.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]),s=r.find(e=>e.componentName===O&&String(e.instanceName)===t&&n.has(e.typeOrAlias));if(s?.implementation.kind!=="userBound"||"composite"!==s.implementation.implementation.kind)return;let o=s.implementation.implementation.resolvedProps.exportState;return"string"==typeof o?o:void 0},W=e=>`${e}Meta`,$=e=>`${e}ScreenshotView`,F=e=>`${e.charAt(0).toUpperCase()+e.slice(1)}Result`,V=e=>{let t=(({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type))(e);return e.$ref||1!==t.length?e:t[0]},k=(e,t)=>{let{type:i,enumValues:r,localized:s,description:o}=c(e,t),a={...i,nonNull:!1},l=s?`${n(o,r)??""} ${M}`.trim():n(o,r);return{type:{...s?{kind:"scalar",name:"JSON",nonNull:!1}:a,nonNull:i.nonNull},...void 0===l?{}:{description:l}}},K=(t,i)=>{let r=(t=>{let i=V(t),r=i?.type==="array"&&i.items&&!e(i.items)?V(i.items):void 0,n=r??i;if(n?.$ref!==void 0&&"$DomainEntity"===T(n.$ref))return{target:n.references??E,list:void 0!==r}})(t);if(r)return{kind:"edge",...r,nullable:N(t,i),...void 0===t.description?{}:{description:t.description}};let{type:s,enumValues:o,localized:a,description:l}=c(t,i),S=n(l,o);return a?{kind:"value",type:{kind:"scalar",name:"JSON",nonNull:s.nonNull},description:`${l??""} ${M}`.trim()}:{kind:"value",type:s,...void 0===S?{}:{description:S}}},Y=(e,t)=>{let{type:i,enumValues:r,localized:n,description:s}=c(e,t);return{type:{kind:"value",type:i},localized:!0===n,description:s,enumValues:r}},x=(e,t,i,r,s)=>{let o=t.startsWith("$")?((e,t,i,r)=>{let n=((e,t,{expressions:i,entityTypes:r})=>{let n=r.find(t=>t===e);for(let r of void 0===n?[e]:i.entityExpressions.get(n)?.shapeGroups??[]){let e=[...i.expressions.get(r)?.values()??[]].find(e=>e.name===t);if(e?.declaredSchema)return{implementation:e.implementation,declaredSchema:e.declaredSchema}}})(e.name,t,i);if(!n)return void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t));let{implementation:s}=n;if("violations"===s.kind)return void r.error(a.ASSISTANT_UNSUPPORTED_EXPRESSION,l.ASSISTANT_UNSUPPORTED_EXPRESSION(e.name,t));if("relation"===s.kind){let[{target:e,cardinality:t}]=s.params;return{type:{kind:"edge",target:e,cardinality:t},localized:!1,description:void 0}}return Y(n.declaredSchema,i.resolveRef)})(e,t,r,s):((e,t,{resolveRef:i},r)=>{let n=Object.entries(e.shape.properties).find(([e])=>e===t)?.[1];return n?Y(n,i):void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t))})(e,t,r,s);if(!o)return;let S=i?.as??(t.startsWith("$")?`_${t.slice(1)}`:t);return h.has(S)?void s.error(a.ASSISTANT_RESERVED_FIELD_NAME,l.ASSISTANT_RESERVED_FIELD_NAME(e.name,t,S)):{name:S,source:t,type:o.type,localized:o.localized,description:n(i?.description??o.description,o.enumValues),describedByManifest:i?.description!==void 0,enumValues:o.enumValues,valueDescription:i?.description??o.description,...i?.lenses?.length?{lenses:[...new Set(i.lenses)]}:{}}},G=(e,t,i,r,n)=>s(t,i,r,(t,i,r)=>{n.error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[i,r]))});export const resolveAssistantManifest=(e,{model:t,states:i,phxDefinitions:r,expressions:n,components:s,actions:S},N)=>{let T=N.errors.length,m=N.at("entities"),_=p(t.commonTypes,r);for(let e of t.resolvedShapes.keys())v.has(e)&&N.error(a.ASSISTANT_RESERVED_TYPE_NAME,l.ASSISTANT_RESERVED_TYPE_NAME(e,[...v]));let A=((e,t,i)=>{let r=new Map;for(let n of e){let e=[];for(let[r,s]of Object.entries(n.entries)){let o=x(n,r,s,t,i.at(n.name,r));o&&e.push(o)}r.set(n.name,e)}return r})(((e,t,i)=>{let r=[];for(let[i,n]of t.resolvedShapes){let t=e[i];t&&r.push({name:i,shape:n,entries:t})}let n=new Set(t.resolvedShapes.keys());for(let t of Object.keys(e))n.has(t)||i.at(t).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("entities",t));return r})(e.entities??{},t,m),{resolveRef:_,expressions:n,entityTypes:t.entityTypes},m),f=G(E,[],A.get(E)??[],()=>void 0,N),h=new Map([[E,f]]);for(let e of t.aliases.keys())e!==E&&h.set(e,G(e,[f],A.get(e)??[],()=>void 0,N));for(let e of t.entityTypes){let i=[E,...[...t.aliases].filter(([t,i])=>t!==E&&i.includes(e)).map(([e])=>e)],r=[...t.resolvedShapes].find(([t])=>t===e)?.[1];h.set(e,G(e,i.map(e=>h.get(e)??[]),A.get(e)??[],e=>{let t=Object.entries(r?.properties??{}).find(([t])=>t===e)?.[1];return t&&c(t,_).enumValues},N))}let j=Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries((h.get(e)??[]).map(({name:e,source:t,localized:i})=>[e,i?{source:t,localized:!0}:{source:t}]))])),V=U(e.childRecipes??{},I,{model:t,components:s},N.at("childRecipes")),Y=U(e.replaceRecipes??{},y,{model:t,components:s},N.at("replaceRecipes")),H=((e,t,i)=>{let r=new Set;for(let n of Object.keys(e)){let e=t.entityTypes.find(e=>e===n),s=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1];s?s.forEach(e=>r.add(e)):i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("deletable",n))}return t.entityTypes.filter(e=>r.has(e))})(e.deletable??{},t,N.at("deletable")),B=((e,t,i)=>{let{model:r}=t,n=((e,t,i)=>{let r=new Map;for(let[n,s]of Object.entries(e)){let e=t.entityTypes.find(e=>e===n),o=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1],S=[...t.resolvedShapes].find(([e])=>e===n)?.[1];if(!o||!S){i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("writable",n));continue}for(let e of Object.keys(s)){let t=i.at(n,e);e.startsWith("$")||g.has(e)?t.error(a.ASSISTANT_NOT_WRITABLE,l.ASSISTANT_NOT_WRITABLE(n,e)):R(S.properties,e)?o.forEach(t=>{let i=r.get(t)??new Map;r.set(t,i.has(e)?i:i.set(e,n))}):t.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("writable",n,e))}}return r})(e,r,i);return r.entityTypes.flatMap(e=>{let s=[...r.resolvedShapes].find(([t])=>t===e)?.[1],o=[...n.get(e)??[]].flatMap(([r,n])=>{let o=s&&R(s.properties,r);return(o&&C(e,{property:r,writableKey:n},o,t,i))??[]});return o.length>0?[{entityType:e,fields:o}]:[]})})(e.writable??{},{model:t,resolveRef:_,exposed:A,sources:j},N.at("writable")),z=((e,t,i,r)=>{let{model:n}=i,s=new Map,o=e=>{let t=n.entityTypes.find(t=>t===e);return t?[t]:[...n.aliases].find(([t])=>t===e)?.[1]??[]},S=new Set(Object.entries(e).flatMap(([e,t])=>Object.entries(t).flatMap(([t,i])=>i?.options===void 0?[]:o(e).map(e=>`${e}.${t}`)))),p=new Set;for(let[n,N]of Object.entries(e)){let e=o(n);for(let[o,T]of Object.entries(N)){let N=T?.options;if(null===N)continue;let c=N?r.at(n,o,"options"):r.at(n,o),d=`${n}.${o}`;for(let r of e){let e=t.find(e=>e.entityType===r)?.fields.find(e=>e.property===o),n=`${r}.${o}`;if(!e||!N&&(S.has(n)||p.has(n)))continue;N||p.add(n);let T=s.get(r)??[],E=N?.componentType===void 0||void 0===N.instanceName?void 0:{componentType:N.componentType,instanceName:N.instanceName},m=E?[E]:P(r,o,i),[_]=m,A=N?.as??`${e.name}Options`,f=T.find(t=>t.options.edgeName===A||t.options.field===e.name);if(E&&!w(r,E.componentType,i).includes(E.instanceName))c.error(a.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT,l.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT(d,E,r,w(r,E.componentType,i)));else if(m.length>1)c.error(a.ASSISTANT_AMBIGUOUS_OPTIONS_COMPONENT,l.ASSISTANT_AMBIGUOUS_OPTIONS_COMPONENT(N?`${d}.options`:d,r,m));else if(_)if(A===I.section||A===y.section||"screenshot"===A)c.error(a.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME,l.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME(d,A,e.name));else if(f)c.error(a.ASSISTANT_DUPLICATE_OPTIONS_EDGE,l.ASSISTANT_DUPLICATE_OPTIONS_EDGE(r,f.options.edgeName===A?{edgeName:A}:{field:e.name},[f.entry,d]));else{let t={field:e.name,edgeName:A,componentType:_.componentType,instanceName:_.instanceName,validate:N?.validate??!0,dryRuns:N?.allowDryRuns??!0};s.set(r,[...T,{options:t,hints:D(N?.hints),entry:d,entryCtx:c}])}else N&&c.error(a.ASSISTANT_MISSING_OPTIONS_COMPONENT,l.ASSISTANT_MISSING_OPTIONS_COMPONENT(d,r,o))}}}return s})(e.writable??{},B,{model:t,components:s},N.at("writable")),J=((e,t,i)=>{let{model:r,states:n}=t,s=new Map;for(let[o,S]of Object.entries(e)){let e=r.entityTypes.find(e=>e===o),p=e?[e]:[...r.aliases].find(([e])=>e===o)?.[1];if(!p){i.at(o).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("screenshots",o));continue}for(let[e,{description:r,as:N}]of Object.entries(S)){let S=i.at(o,e),T=`${o}.${e}`,c={view:N??e,instanceName:e,description:r};if(!u.test(c.view)){S.error(a.ASSISTANT_INVALID_SCREENSHOT_VIEW_NAME,l.ASSISTANT_INVALID_SCREENSHOT_VIEW_NAME(o,e,c.view));continue}for(let i of p){let r=w(i,O,t),p=L(i,e,t),N=s.get(i)??[],d=N.find(e=>e.view.view===c.view);r.includes(e)?void 0===p||n.exportStates.includes(p)?d?S.error(a.ASSISTANT_DUPLICATE_SCREENSHOT_VIEW,l.ASSISTANT_DUPLICATE_SCREENSHOT_VIEW(i,c.view,[d.entry,T])):s.set(i,[...N,{view:c,entry:T,entryCtx:S}]):S.error(a.ASSISTANT_UNKNOWN_SCREENSHOT_EXPORT_STATE,l.ASSISTANT_UNKNOWN_SCREENSHOT_EXPORT_STATE(o,e,p,n.exportStates)):S.error(a.ASSISTANT_UNKNOWN_SCREENSHOT_VIEW,l.ASSISTANT_UNKNOWN_SCREENSHOT_VIEW(o,e,i,r))}}}let o=r.entityTypes.flatMap(e=>{let t=s.get(e);return t?[{entityType:e,views:t}]:[]});return{views:new Map(o.map(({entityType:e,views:t})=>[e,t.map(({view:e})=>e)])),metaEntries:new Map(o.flatMap(({entityType:e,views:[t]})=>t?[[e,t.entryCtx]]:[]))}})(e.screenshots??{},{model:t,components:s,states:i},N.at("screenshots")),X=t.entityTypes.filter(e=>w(e,"violations",{model:t,components:s}).length>0);var Z=[V.metaEntries,Y.metaEntries,new Map([...z].flatMap(([e,[t]])=>t?[[e,t.entryCtx]]:[])),J.metaEntries,new Map(X.map(e=>[e,N]))];for(let e of t.entityTypes){let i=Z.flatMap(t=>t.get(e)??[])[0],r=W(e);i&&[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(a.ASSISTANT_META_TYPE_NAME_CONFLICT,l.ASSISTANT_META_TYPE_NAME_CONFLICT(e,r))}for(let[e,i]of J.metaEntries){let r=$(e);[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(a.ASSISTANT_SCREENSHOT_VIEW_TYPE_NAME_CONFLICT,l.ASSISTANT_SCREENSHOT_VIEW_TYPE_NAME_CONFLICT(e,r))}let Q=t.entityTypes.filter(e=>(V.groups[e]?.length??0)>0||(Y.groups[e]?.length??0)>0||(z.get(e)?.length??0)>0||J.views.has(e)||X.includes(e)).flatMap(e=>[W(e),...J.views.has(e)?[$(e)]:[]]),q=((e,{actions:t,resolveRef:i,builtInMutations:r,typeNames:n},s)=>{let o=[],S=[...t.values()].map(e=>String(e.name));for(let[p,N]of Object.entries(e)){let e=s.at(p),T=[...t.values()].find(e=>e.name===p);if(!T){e.error(a.ASSISTANT_UNKNOWN_ACTION,l.ASSISTANT_UNKNOWN_ACTION(p,S));continue}let c=N?.as??p,d=o.find(e=>e.fieldName===c),E=F(c);if(r.has(c)||d){e.error(a.ASSISTANT_MUTATION_NAME_CONFLICT,l.ASSISTANT_MUTATION_NAME_CONFLICT(p,c,d?`"assistant.actions.${d.actionName}" already exposes`:"the built-in mutation of that name already takes"));continue}if(n.has(E)||o.some(e=>F(e.fieldName)===E)){e.error(a.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT,l.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT(p,c,E));continue}let m=N?.description??T.description;o.push({fieldName:c,actionName:p,...void 0===m?{}:{description:m},args:Object.fromEntries(Object.entries(T.params).map(([e,{schema:t}])=>[e,k(t,i)])),result:Object.fromEntries(Object.entries(T.result).map(([e,t])=>[e,K(t,i)]))})}return o})(e.actions??{},{actions:S,resolveRef:_,builtInMutations:new Set(["deleteEntity",I.mutation,y.mutation,...B.map(({entityType:e})=>`modify${e}`)]),typeNames:new Set([...v,...t.resolvedShapes.keys(),...Q])},N.at("actions")),ee=((e,t)=>{let i=e.lenses??{},r=new Set;for(let[n,s]of Object.entries(e.entities??{}))for(let[e,o]of Object.entries(s))for(let s of o?.lenses??[])Object.hasOwn(i,s)?r.add(s):t.at("entities",n,e,"lenses").error(a.ASSISTANT_UNKNOWN_LENS,l.ASSISTANT_UNKNOWN_LENS(`${n}.${e}`,s,Object.keys(i)));for(let e of Object.keys(i))b.has(e)?t.at("lenses",e).error(a.ASSISTANT_RESERVED_LENS_NAME,l.ASSISTANT_RESERVED_LENS_NAME(e,[...b])):r.has(e)||t.at("lenses",e).error(a.ASSISTANT_EMPTY_LENS,l.ASSISTANT_EMPTY_LENS(e));return Object.fromEntries(Object.entries(i).map(([e,{description:t,maxDepth:i}])=>[e,{description:t,maxDepth:i??1}]))})(e,N),et=d(e.formElements??{},N.at("formElements"));if(N.errors.length>T)return;let ei=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{hints:D(t.hints),groups:Object.entries(t.groups).map(([e,t])=>({instanceName:e,groupId:t?.as??e,...t?.description===void 0?{}:{description:t.description},dryRuns:t?.allowDryRuns??!0}))}]));return{declarations:{entities:Object.fromEntries(Object.keys(e.entities??{}).map(e=>[e,(A.get(e)??[]).map(e=>({name:e.name,source:e.source,type:e.type,localized:e.localized,describedByManifest:e.describedByManifest,...void 0===e.description?{}:{description:e.description},...void 0===e.valueDescription?{}:{valueDescription:e.valueDescription},...void 0===e.enumValues?{}:{enumValues:e.enumValues},...void 0===e.lenses?{}:{lenses:e.lenses}}))])),enumValues:Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries(Object.entries(t.resolvedShapes.get(e)?.properties??{}).flatMap(([e,t])=>{let i=c(t,_).enumValues;return i?[[e,i]]:[]}))])),deletable:Object.keys(e.deletable??{}),writable:Object.fromEntries(Object.entries(e.writable??{}).map(([e,i])=>[e,Object.fromEntries(Object.entries(i).map(([i,r])=>[i,{defaultOptionsName:r?.options?.as===void 0,members:Object.fromEntries(t.entityTypes.filter(i=>i===e||[...t.aliases].find(([t])=>t===e)?.[1].includes(i)).flatMap(r=>{let n=R(t.resolvedShapes.get(r)?.properties??{},i),s=n&&C(r,{property:i,writableKey:e},n,{model:t,resolveRef:_,exposed:new Map,sources:{}},N.at("writable")),o=z.get(r)?.find(t=>t.entry===`${e}.${i}`);return s?[[r,{field:s,...c(n,_).localized?{exposedDescription:M}:{},...o?{options:{options:o.options,hints:o.hints}}:{}}]]:[]}))}]))])),childRecipes:ei(e.childRecipes??{}),replaceRecipes:ei(e.replaceRecipes??{}),screenshots:Object.fromEntries(Object.entries(e.screenshots??{}).map(([e,t])=>[e,Object.entries(t).map(([e,{description:t,as:i}])=>({view:i??e,instanceName:e,description:t}))]))},entityTypes:t.entityTypes,aliases:Object.fromEntries(t.aliases),exampleType:t.rootEntityTypes[0]??t.entityTypes[0],states:{navigationStates:i.navigationStates,viewStates:i.viewStates,toolStates:i.toolStates},deletableTypes:H,writableTypes:B,actionFields:q,invariantTypes:X,childRecipes:Object.fromEntries(Object.entries(V.groups).map(([e,t])=>[e,{groups:t,hints:V.hints.get(e)??[]}])),replaceRecipes:Object.fromEntries(Object.entries(Y.groups).map(([e,t])=>[e,{groups:t,hints:Y.hints.get(e)??[]}])),optionsEdges:Object.fromEntries([...z].map(([e,t])=>[e,t.map(({options:e,hints:t})=>({options:e,hints:t}))])),screenshots:Object.fromEntries(J.views),fields:Object.fromEntries([...h].map(([e,t])=>[e,t.map(t=>o(t,A.get(e)??[]))])),lenses:ee,formElements:et}};export const createAssistantSchema=(e,t,n)=>{let s=resolveAssistantManifest(e,t,n);if(s)try{return{...r(s),resolved:s}}catch(e){if(e instanceof i)return void n.at("entities").error(a.ASSISTANT_FIELD_SHAPE_CONFLICT,l.ASSISTANT_FIELD_SHAPE_CONFLICT(e.fieldName,e.exposures));n.error(a.ASSISTANT_INVALID_SCHEMA,l.ASSISTANT_INVALID_SCHEMA([e instanceof Error?e.message:String(e)]));return}};
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{ASSISTANT_HINTS as t,AssistantFieldClashError as i,buildAssistantManifest as r,describeAssistantValues as n,mergeAssistantFields as s,resolveAssistantField as o}from"#package/domain";import{DiagnosticCode as a,diagnosticMessages as l}from"../../../../errors/index.js";import{ASSISTANT_OPTION_COMPONENT_TYPES as S,GRAPHQL_NAME_PATTERN as N}from"../../../raw-spec/index.js";import{createSchemaRefResolver as p,isNullableSchema as T,phxDefinitionRefName as c}from"../../common/index.js";import{resolveAssistantFieldType as d}from"./assistant-field-type.js";import{resolveFormElements as _}from"./assistant-form-elements.js";let E="AnyDomainEntity",A="RecipeGroup",f="Recipe",m="DryRun",I="FieldOption",O="agentScreenshot",u=/^(?!(true|false|null)$)[_A-Za-z][_0-9A-Za-z]*$/,y={section:"childRecipes",component:"childEntityRecipes",mutation:"addChild",typeSuffix:"ChildRecipes"},h={section:"replaceRecipes",component:"replaceEntityRecipes",mutation:"replaceEntity",typeSuffix:"ReplaceRecipes"},v=new Set(["id","type","meta"]),R=new Set(["Query","Mutation","Navigation",A,f,m,"DryRunError",I,"Screenshot","JSON","String","Int","Float","Boolean","ID"]),b=new Set([A,f,I,m]),M=new Set(["id","type"]),g="A string, a message descriptor or a multilingual object; passed without translation.",C=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],P=(e,{property:t,writableKey:i},r,{resolveRef:s,exposed:o,sources:S},N)=>{let p=Object.entries(C(S,e)??{}),T=o.get(e)?.find(({source:e})=>e===t)?.name??p.find(([,{source:e}])=>e===t)?.[0],c=void 0===T?p.find(([e])=>e===t)?.[1]:void 0;if(c)return void N.at(i,t).error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[c.source,t],`${i}.${t}`));let{type:_,enumValues:E,localized:A,description:f}=d(r,s),m={..._,nonNull:!1},I=T??t,O=void 0===T?n(f,E):void 0;return A?{name:I,property:t,type:{kind:"scalar",name:"JSON",nonNull:!1},description:O?`${O} ${g}`:g}:{name:I,property:t,type:m,...void 0===O?{}:{description:O}}},j=(e,t)=>new Set([e,...[...t.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]),w=(e,t,{model:i,components:r})=>{let n=j(e,i);return r.filter(({componentName:e,typeOrAlias:i})=>e===t&&n.has(i)).map(({instanceName:e})=>String(e))},D=(e,t,{model:i,components:r})=>{let n=j(e,i);return r.flatMap(({componentName:e,typeOrAlias:i,instanceName:r,implementation:s})=>S.some(t=>t===e)&&n.has(i)&&"userBound"===s.kind&&"composite"===s.implementation.kind&&s.implementation.writeBindings.some(({entityField:e})=>e===t)?[{componentType:e,instanceName:String(r)}]:[])},U=(...e)=>t.filter(t=>e.some(e=>e?.includes(t))),L=(e,t)=>({groupId:t?.as??e,instanceName:e,...t?.description===void 0?{}:{description:t.description},dryRuns:t?.allowDryRuns??!0,hints:U(t?.hints)}),W=(e,t,i,r)=>{let{model:n}=i,s=new Map;for(let[o,S]of Object.entries(e)){let e=n.entityTypes.find(e=>e===o),p=e?[e]:[...n.aliases].find(([e])=>e===o)?.[1];if(!p){r.at(o).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE(t.section,o));continue}for(let[e,n]of Object.entries(S)){let S=r.at(o,e),T=`${o}.${e}`,c=L(e,n);if(!N.test(c.groupId)){S.error(a.ASSISTANT_INVALID_RECIPE_GROUP_ID,l.ASSISTANT_INVALID_RECIPE_GROUP_ID(t,o,e,c.groupId));continue}for(let r of p){let n=w(r,t.component,i),N=s.get(r)??[],p=N.find(e=>e.group.groupId===c.groupId);n.includes(e)?p?S.error(a.ASSISTANT_DUPLICATE_RECIPE_GROUP,l.ASSISTANT_DUPLICATE_RECIPE_GROUP(t,r,c.groupId,[p.entry,T])):s.set(r,[...N,{group:c,entry:T,entryCtx:S}]):S.error(a.ASSISTANT_UNKNOWN_RECIPE_GROUP,l.ASSISTANT_UNKNOWN_RECIPE_GROUP(t,o,e,r,n))}}}let o=n.entityTypes.flatMap(e=>{let t=s.get(e);return t?[{entityType:e,groups:t}]:[]});return{groups:Object.fromEntries(o.map(({entityType:e,groups:t})=>[e,t.map(({group:e})=>e)])),metaEntries:new Map(o.flatMap(({entityType:e,groups:[t]})=>t?[[e,t.entryCtx]]:[]))}},$=(e,t,{model:i,components:r})=>{let n=new Set([e,...[...i.aliases].filter(([,t])=>t.includes(e)).map(([e])=>e)]),s=r.find(e=>e.componentName===O&&String(e.instanceName)===t&&n.has(e.typeOrAlias));if(s?.implementation.kind!=="userBound"||"composite"!==s.implementation.implementation.kind)return;let o=s.implementation.implementation.resolvedProps.exportState;return"string"==typeof o?o:void 0},F=e=>`${e}Meta`,V=e=>`${e}ScreenshotView`,k=(e,{typeSuffix:t})=>`${e}${t}`,K=(e,t,i)=>{for(let[r,n]of e){let e=k(r,t);[...i.resolvedShapes.keys()].some(t=>t===e)&&n.error(a.ASSISTANT_RECIPE_GROUPS_TYPE_NAME_CONFLICT,l.ASSISTANT_RECIPE_GROUPS_TYPE_NAME_CONFLICT(t,r,e))}},Y=e=>`${e.charAt(0).toUpperCase()+e.slice(1)}Result`,x=e=>{let t=(({anyOf:e,oneOf:t})=>[...e??[],...t??[]].filter(e=>"null"!==e.type))(e);return e.$ref||1!==t.length?e:t[0]},G=t=>{let i=x(t),r=i?.type==="array"&&i.items&&!e(i.items)?x(i.items):void 0,n=r??i;if(n?.$ref!==void 0&&"$DomainEntity"===c(n.$ref))return{target:n.references??E,list:void 0!==r}},H=(e,t)=>{let{type:i,enumValues:r,localized:s,description:o}=d(e,t),a={...i,nonNull:!1},l=s?`${n(o,r)??""} ${g}`.trim():n(o,r);return{type:{...s?{kind:"scalar",name:"JSON",nonNull:!1}:a,nonNull:i.nonNull},...void 0===l?{}:{description:l}}},z=(e,t)=>{let i=G(e);if(i)return{kind:"edge",...i,nullable:T(e,t),...void 0===e.description?{}:{description:e.description}};let{type:r,enumValues:s,localized:o,description:a}=d(e,t),l=n(a,s);return o?{kind:"value",type:{kind:"scalar",name:"JSON",nonNull:r.nonNull},description:`${a??""} ${g}`.trim()}:{kind:"value",type:r,...void 0===l?{}:{description:l}}},B=(e,t)=>{let{type:i,enumValues:r,localized:n,description:s}=d(e,t);return{type:{kind:"value",type:i},localized:!0===n,description:s,enumValues:r}},J=(e,t,i,r,s)=>{let o=t.startsWith("$")?((e,t,i,r)=>{let n=((e,t,{expressions:i,entityTypes:r})=>{let n=r.find(t=>t===e);for(let r of void 0===n?[e]:i.entityExpressions.get(n)?.shapeGroups??[]){let e=[...i.expressions.get(r)?.values()??[]].find(e=>e.name===t);if(e?.declaredSchema)return{implementation:e.implementation,declaredSchema:e.declaredSchema}}})(e.name,t,i);if(!n)return void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t));let{implementation:s}=n;if("violations"===s.kind)return void r.error(a.ASSISTANT_UNSUPPORTED_EXPRESSION,l.ASSISTANT_UNSUPPORTED_EXPRESSION(e.name,t));if("relation"===s.kind)return{type:(({target:e,cardinality:t})=>({kind:"edge",target:e,list:t.endsWith("N"),nullable:"0-1"===t}))(s.params[0]),localized:!1,description:void 0};let{declaredSchema:o}=n,S=G(o);return S?{type:{kind:"edge",...S,nullable:T(o,i.resolveRef)},localized:!1,description:o.description}:B(o,i.resolveRef)})(e,t,r,s):((e,t,{resolveRef:i},r)=>{let n=Object.entries(e.shape.properties).find(([e])=>e===t)?.[1];return n?B(n,i):void r.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("entities",e.name,t))})(e,t,r,s);if(!o)return;let S=i?.as??(t.startsWith("$")?`_${t.slice(1)}`:t);return v.has(S)?void s.error(a.ASSISTANT_RESERVED_FIELD_NAME,l.ASSISTANT_RESERVED_FIELD_NAME(e.name,t,S)):{name:S,source:t,type:o.type,localized:o.localized,description:n(i?.description??o.description,o.enumValues),describedByManifest:i?.description!==void 0,enumValues:o.enumValues,valueDescription:i?.description??o.description,...i?.lenses?.length?{lenses:[...new Set(i.lenses)]}:{}}},X=(e,t,i,r,n)=>s(t,i,r,(t,i,r)=>{n.error(a.ASSISTANT_FIELD_NAME_CONFLICT,l.ASSISTANT_FIELD_NAME_CONFLICT(e,t,[i,r]))});export const resolveAssistantManifest=(e,{model:t,states:i,phxDefinitions:r,expressions:n,components:s,actions:S},N)=>{let T=N.errors.length,c=N.at("entities"),A=p(t.commonTypes,r);for(let e of t.resolvedShapes.keys())R.has(e)&&N.error(a.ASSISTANT_RESERVED_TYPE_NAME,l.ASSISTANT_RESERVED_TYPE_NAME(e,[...R]));let f=((e,t,i)=>{let r=new Map;for(let n of e){let e=[];for(let[r,s]of Object.entries(n.entries)){let o=J(n,r,s,t,i.at(n.name,r));o&&e.push(o)}r.set(n.name,e)}return r})(((e,t,i)=>{let r=[];for(let[i,n]of t.resolvedShapes){let t=e[i];t&&r.push({name:i,shape:n,entries:t})}let n=new Set(t.resolvedShapes.keys());for(let t of Object.keys(e))n.has(t)||i.at(t).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("entities",t));return r})(e.entities??{},t,c),{resolveRef:A,expressions:n,entityTypes:t.entityTypes},c),m=X(E,[],f.get(E)??[],()=>void 0,N),I=new Map([[E,m]]);for(let e of t.aliases.keys())e!==E&&I.set(e,X(e,[m],f.get(e)??[],()=>void 0,N));for(let e of t.entityTypes){let i=[E,...[...t.aliases].filter(([t,i])=>t!==E&&i.includes(e)).map(([e])=>e)],r=[...t.resolvedShapes].find(([t])=>t===e)?.[1];I.set(e,X(e,i.map(e=>I.get(e)??[]),f.get(e)??[],e=>{let t=Object.entries(r?.properties??{}).find(([t])=>t===e)?.[1];return t&&d(t,A).enumValues},N))}let v=Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries((I.get(e)??[]).map(({name:e,source:t,localized:i})=>[e,i?{source:t,localized:!0}:{source:t}]))])),j=W(e.childRecipes??{},y,{model:t,components:s},N.at("childRecipes")),x=W(e.replaceRecipes??{},h,{model:t,components:s},N.at("replaceRecipes")),G=((e,t,i)=>{let r=new Set;for(let n of Object.keys(e)){let e=t.entityTypes.find(e=>e===n),s=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1];s?s.forEach(e=>r.add(e)):i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("deletable",n))}return t.entityTypes.filter(e=>r.has(e))})(e.deletable??{},t,N.at("deletable")),B=((e,t,i)=>{let{model:r}=t,n=((e,t,i)=>{let r=new Map;for(let[n,s]of Object.entries(e)){let e=t.entityTypes.find(e=>e===n),o=e?[e]:[...t.aliases].find(([e])=>e===n)?.[1],S=[...t.resolvedShapes].find(([e])=>e===n)?.[1];if(!o||!S){i.at(n).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("writable",n));continue}for(let e of Object.keys(s)){let t=i.at(n,e);e.startsWith("$")||M.has(e)?t.error(a.ASSISTANT_NOT_WRITABLE,l.ASSISTANT_NOT_WRITABLE(n,e)):C(S.properties,e)?o.forEach(t=>{let i=r.get(t)??new Map;r.set(t,i.has(e)?i:i.set(e,n))}):t.error(a.ASSISTANT_UNKNOWN_FIELD,l.ASSISTANT_UNKNOWN_FIELD("writable",n,e))}}return r})(e,r,i);return r.entityTypes.flatMap(e=>{let s=[...r.resolvedShapes].find(([t])=>t===e)?.[1],o=[...n.get(e)??[]].flatMap(([r,n])=>{let o=s&&C(s.properties,r);return(o&&P(e,{property:r,writableKey:n},o,t,i))??[]});return o.length>0?[{entityType:e,fields:o}]:[]})})(e.writable??{},{model:t,resolveRef:A,exposed:f,sources:v},N.at("writable")),Z=((e,t,i,r)=>{let{model:n}=i,s=new Map,o=e=>{let t=n.entityTypes.find(t=>t===e);return t?[t]:[...n.aliases].find(([t])=>t===e)?.[1]??[]},S=new Set(Object.entries(e).flatMap(([e,t])=>Object.entries(t).flatMap(([t,i])=>i?.options===void 0?[]:o(e).map(e=>`${e}.${t}`)))),N=new Set;for(let[n,p]of Object.entries(e)){let e=o(n);for(let[o,T]of Object.entries(p)){let p=T?.options;if(null===p)continue;let c=p?r.at(n,o,"options"):r.at(n,o),d=`${n}.${o}`;for(let r of e){let e=t.find(e=>e.entityType===r)?.fields.find(e=>e.property===o),n=`${r}.${o}`;if(!e||!p&&(S.has(n)||N.has(n)))continue;p||N.add(n);let T=s.get(r)??[],_=p?.componentType===void 0||void 0===p.instanceName?void 0:{componentType:p.componentType,instanceName:p.instanceName},E=_?[_]:D(r,o,i),[A]=E,f=p?.as??`${e.name}Options`,m=T.find(t=>t.options.edgeName===f||t.options.field===e.name);if(_&&!w(r,_.componentType,i).includes(_.instanceName))c.error(a.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT,l.ASSISTANT_UNKNOWN_OPTIONS_COMPONENT(d,_,r,w(r,_.componentType,i)));else if(E.length>1)c.error(a.ASSISTANT_AMBIGUOUS_OPTIONS_COMPONENT,l.ASSISTANT_AMBIGUOUS_OPTIONS_COMPONENT(p?`${d}.options`:d,r,E));else if(A)if(f===y.section||f===h.section||"screenshot"===f)c.error(a.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME,l.ASSISTANT_RESERVED_OPTIONS_EDGE_NAME(d,f,e.name));else if(m)c.error(a.ASSISTANT_DUPLICATE_OPTIONS_EDGE,l.ASSISTANT_DUPLICATE_OPTIONS_EDGE(r,m.options.edgeName===f?{edgeName:f}:{field:e.name},[m.entry,d]));else{let t={field:e.name,edgeName:f,componentType:A.componentType,instanceName:A.instanceName,validate:p?.validate??!0,dryRuns:p?.allowDryRuns??!0};s.set(r,[...T,{options:t,hints:U(p?.hints),entry:d,entryCtx:c}])}else p&&c.error(a.ASSISTANT_MISSING_OPTIONS_COMPONENT,l.ASSISTANT_MISSING_OPTIONS_COMPONENT(d,r,o))}}}return s})(e.writable??{},B,{model:t,components:s},N.at("writable")),Q=((e,t,i)=>{let{model:r,states:n}=t,s=new Map;for(let[o,S]of Object.entries(e)){let e=r.entityTypes.find(e=>e===o),N=e?[e]:[...r.aliases].find(([e])=>e===o)?.[1];if(!N){i.at(o).error(a.ASSISTANT_UNKNOWN_TYPE,l.ASSISTANT_UNKNOWN_TYPE("screenshots",o));continue}for(let[e,{description:r,as:p}]of Object.entries(S)){let S=i.at(o,e),T=`${o}.${e}`,c={view:p??e,instanceName:e,description:r};if(!u.test(c.view)){S.error(a.ASSISTANT_INVALID_SCREENSHOT_VIEW_NAME,l.ASSISTANT_INVALID_SCREENSHOT_VIEW_NAME(o,e,c.view));continue}for(let i of N){let r=w(i,O,t),N=$(i,e,t),p=s.get(i)??[],d=p.find(e=>e.view.view===c.view);r.includes(e)?void 0===N||n.exportStates.includes(N)?d?S.error(a.ASSISTANT_DUPLICATE_SCREENSHOT_VIEW,l.ASSISTANT_DUPLICATE_SCREENSHOT_VIEW(i,c.view,[d.entry,T])):s.set(i,[...p,{view:c,entry:T,entryCtx:S}]):S.error(a.ASSISTANT_UNKNOWN_SCREENSHOT_EXPORT_STATE,l.ASSISTANT_UNKNOWN_SCREENSHOT_EXPORT_STATE(o,e,N,n.exportStates)):S.error(a.ASSISTANT_UNKNOWN_SCREENSHOT_VIEW,l.ASSISTANT_UNKNOWN_SCREENSHOT_VIEW(o,e,i,r))}}}let o=r.entityTypes.flatMap(e=>{let t=s.get(e);return t?[{entityType:e,views:t}]:[]});return{views:new Map(o.map(({entityType:e,views:t})=>[e,t.map(({view:e})=>e)])),metaEntries:new Map(o.flatMap(({entityType:e,views:[t]})=>t?[[e,t.entryCtx]]:[]))}})(e.screenshots??{},{model:t,components:s,states:i},N.at("screenshots")),q=t.entityTypes.filter(e=>w(e,"violations",{model:t,components:s}).length>0);var ee=[j.metaEntries,x.metaEntries,new Map([...Z].flatMap(([e,[t]])=>t?[[e,t.entryCtx]]:[])),Q.metaEntries,new Map(q.map(e=>[e,N]))];for(let e of t.entityTypes){let i=ee.flatMap(t=>t.get(e)??[])[0],r=F(e);i&&[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(a.ASSISTANT_META_TYPE_NAME_CONFLICT,l.ASSISTANT_META_TYPE_NAME_CONFLICT(e,r))}for(let[e,i]of(K(j.metaEntries,y,t),K(x.metaEntries,h,t),Q.metaEntries)){let r=V(e);[...t.resolvedShapes.keys()].some(e=>e===r)&&i.error(a.ASSISTANT_SCREENSHOT_VIEW_TYPE_NAME_CONFLICT,l.ASSISTANT_SCREENSHOT_VIEW_TYPE_NAME_CONFLICT(e,r))}let et=t.entityTypes.filter(e=>(j.groups[e]?.length??0)>0||(x.groups[e]?.length??0)>0||(Z.get(e)?.length??0)>0||Q.views.has(e)||q.includes(e)).flatMap(e=>[F(e),...(j.groups[e]?.length??0)>0?[k(e,y)]:[],...(x.groups[e]?.length??0)>0?[k(e,h)]:[],...Q.views.has(e)?[V(e)]:[]]),ei=((e,{actions:t,resolveRef:i,builtInMutations:r,typeNames:n},s)=>{let o=[],S=[...t.values()].map(e=>String(e.name));for(let[N,p]of Object.entries(e)){let e=s.at(N),T=[...t.values()].find(e=>e.name===N);if(!T){e.error(a.ASSISTANT_UNKNOWN_ACTION,l.ASSISTANT_UNKNOWN_ACTION(N,S));continue}let c=p?.as??N,d=o.find(e=>e.fieldName===c),_=Y(c);if(r.has(c)||d){e.error(a.ASSISTANT_MUTATION_NAME_CONFLICT,l.ASSISTANT_MUTATION_NAME_CONFLICT(N,c,d?`"assistant.actions.${d.actionName}" already exposes`:"the built-in mutation of that name already takes"));continue}if(n.has(_)||o.some(e=>Y(e.fieldName)===_)){e.error(a.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT,l.ASSISTANT_ACTION_RESULT_TYPE_CONFLICT(N,c,_));continue}let E=p?.description??T.description;o.push({fieldName:c,actionName:N,...void 0===E?{}:{description:E},args:Object.fromEntries(Object.entries(T.params).map(([e,{schema:t}])=>[e,H(t,i)])),result:Object.fromEntries(Object.entries(T.result).map(([e,t])=>[e,z(t,i)]))})}return o})(e.actions??{},{actions:S,resolveRef:A,builtInMutations:new Set(["deleteEntity",y.mutation,h.mutation,...B.map(({entityType:e})=>`modify${e}`)]),typeNames:new Set([...R,...t.resolvedShapes.keys(),...et])},N.at("actions")),er=((e,t)=>{let i=e.lenses??{},r=new Set;for(let[n,s]of Object.entries(e.entities??{}))for(let[e,o]of Object.entries(s))for(let s of o?.lenses??[])Object.hasOwn(i,s)?r.add(s):t.at("entities",n,e,"lenses").error(a.ASSISTANT_UNKNOWN_LENS,l.ASSISTANT_UNKNOWN_LENS(`${n}.${e}`,s,Object.keys(i)));for(let e of Object.keys(i))b.has(e)?t.at("lenses",e).error(a.ASSISTANT_RESERVED_LENS_NAME,l.ASSISTANT_RESERVED_LENS_NAME(e,[...b])):r.has(e)||t.at("lenses",e).error(a.ASSISTANT_EMPTY_LENS,l.ASSISTANT_EMPTY_LENS(e));return Object.fromEntries(Object.entries(i).map(([e,{description:t,maxDepth:i}])=>[e,{description:t,maxDepth:i??1}]))})(e,N),en=_(e.formElements??{},N.at("formElements"));if(N.errors.length>T)return;let es=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Object.entries(t).map(([e,t])=>L(e,t))]));return{declarations:{entities:Object.fromEntries(Object.keys(e.entities??{}).map(e=>[e,(f.get(e)??[]).map(e=>({name:e.name,source:e.source,type:e.type,localized:e.localized,describedByManifest:e.describedByManifest,...void 0===e.description?{}:{description:e.description},...void 0===e.valueDescription?{}:{valueDescription:e.valueDescription},...void 0===e.enumValues?{}:{enumValues:e.enumValues},...void 0===e.lenses?{}:{lenses:e.lenses}}))])),enumValues:Object.fromEntries(t.entityTypes.map(e=>[e,Object.fromEntries(Object.entries(t.resolvedShapes.get(e)?.properties??{}).flatMap(([e,t])=>{let i=d(t,A).enumValues;return i?[[e,i]]:[]}))])),deletable:Object.keys(e.deletable??{}),writable:Object.fromEntries(Object.entries(e.writable??{}).map(([e,i])=>[e,Object.fromEntries(Object.entries(i).map(([i,r])=>[i,{defaultOptionsName:r?.options?.as===void 0,members:Object.fromEntries(t.entityTypes.filter(i=>i===e||[...t.aliases].find(([t])=>t===e)?.[1].includes(i)).flatMap(r=>{let n=C(t.resolvedShapes.get(r)?.properties??{},i),s=n&&P(r,{property:i,writableKey:e},n,{model:t,resolveRef:A,exposed:new Map,sources:{}},N.at("writable")),o=Z.get(r)?.find(t=>t.entry===`${e}.${i}`);return s?[[r,{field:s,...d(n,A).localized?{exposedDescription:g}:{},...o?{options:{options:o.options,hints:o.hints}}:{}}]]:[]}))}]))])),childRecipes:es(e.childRecipes??{}),replaceRecipes:es(e.replaceRecipes??{}),screenshots:Object.fromEntries(Object.entries(e.screenshots??{}).map(([e,t])=>[e,Object.entries(t).map(([e,{description:t,as:i}])=>({view:i??e,instanceName:e,description:t}))]))},entityTypes:t.entityTypes,aliases:Object.fromEntries(t.aliases),exampleType:t.rootEntityTypes[0]??t.entityTypes[0],states:{navigationStates:i.navigationStates,viewStates:i.viewStates,toolStates:i.toolStates},deletableTypes:G,writableTypes:B,actionFields:ei,invariantTypes:q,childRecipes:j.groups,replaceRecipes:x.groups,optionsEdges:Object.fromEntries([...Z].map(([e,t])=>[e,t.map(({options:e,hints:t})=>({options:e,hints:t}))])),screenshots:Object.fromEntries(Q.views),fields:Object.fromEntries([...I].map(([e,t])=>[e,t.map(t=>o(t,f.get(e)??[]))])),lenses:er,formElements:en}};export const createAssistantSchema=(e,t,n)=>{let s=resolveAssistantManifest(e,t,n);if(s)try{return{...r(s),resolved:s}}catch(e){if(e instanceof i)return void n.at("entities").error(a.ASSISTANT_FIELD_SHAPE_CONFLICT,l.ASSISTANT_FIELD_SHAPE_CONFLICT(e.fieldName,e.exposures));n.error(a.ASSISTANT_INVALID_SCHEMA,l.ASSISTANT_INVALID_SCHEMA([e instanceof Error?e.message:String(e)]));return}};
@@ -1 +1 @@
1
- let t=/^@salsita-ai\/sdk\/(admin|application|react|configurator|ui|editor|extras\/clerk)(\/|$)/,s=/\.(css|scss|sass|less|woff2?|ttf|otf|eot|png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i;export const isClientOnlySdkImport=s=>t.test(s);export const isClientAssetImport=t=>s.test(t);
1
+ let t=/^@salsita-ai\/sdk\/(admin|application|react|configurator|ui|editor|extras\/(clerk|cognito))(\/|$)/,s=/\.(css|scss|sass|less|woff2?|ttf|otf|eot|png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i;export const isClientOnlySdkImport=s=>t.test(s);export const isClientAssetImport=t=>s.test(t);
@@ -27,9 +27,10 @@ export declare class AuthorizedClient<FINALIZE_DATA extends Record<string, unkno
27
27
  getTextToSpeech: (configurationId: string, content: string) => Promise<Blob>;
28
28
  getAssistantChatConnection: (configurationId: string) => AssistantChatConnection;
29
29
  compactAssistantThread: (configurationId: string) => Promise<AssistantThreadCompaction>;
30
- getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
30
+ getAssistantEarlierThread: (configurationId: string, threadId: string, limit?: number) => Promise<AssistantEarlierThread>;
31
31
  uploadAssistantImage: (configurationId: string, image: Blob) => Promise<AssistantImageUpload>;
32
32
  getAssistantImage: (configurationId: string, imageId: string) => Promise<Blob>;
33
+ getAssistantReplySpeech: (configurationId: string, messageId: string) => Promise<Blob>;
33
34
  sendMessage: (configurationId: string, content: string, context?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
34
35
  sendToolCallResults: (configurationId: string, calls: ChatToolCall[], results: ChatToolCallResult[], agent?: string) => Promise<ReadableStream<ChatStreamChunk>>;
35
36
  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 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);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}}
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 n=()=>new TransformStream({transform(t,a){a.enqueue(t)}}),o=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(),n=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(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 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){let t=e.response.headers.get("x-assistant-locked");throw new i(`compactAssistantThread API request failed: ${JSON.stringify(e.error)}`,e.response.status,!1,"true"===t||"network"===t,"network"===t)}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:n}=s.data;return{threadId:a,messages:Array.isArray(n)?n:[],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};getAssistantReplySpeech=async(t,a)=>{let e=await this._authHeaders(),r=await this._client.GET("/configurations/{configurationId}/assistant/messages/{messageId}/speech",{params:{path:{configurationId:t,messageId:a}},headers:e,parseAs:"blob"});if(r.error)throw new i(`getAssistantReplySpeech 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=n();return o(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=n();return o(u,c.writable.getWriter()),c.readable};generateShareLink=async(t,a,e,r,i)=>{let s=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:s});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}}
@@ -92,19 +92,23 @@ export interface AuthorizedPhoenixApiClient<FINALIZE_DATA extends Record<string,
92
92
  /**
93
93
  * Continues the assistant thread of the configuration, which the server no longer lets this session
94
94
  * continue, in a new thread that starts from a summary of it. Rejects with an
95
- * {@link AssistantRequestError} when the server refuses.
95
+ * {@link AssistantRequestError} when the server refuses, marked `locked` when a lock counted from the assistant's
96
+ * bans refuses it, and `networkLocked` when that lock is one of the user's network.
96
97
  */
97
98
  compactAssistantThread: (configurationId: string) => Promise<AssistantThreadCompaction>;
98
99
  /**
99
- * Reads a closed assistant thread of the configuration that a later thread continues, at most
100
- * `limit` of its newest messages. Rejects with an {@link AssistantRequestError} when the server refuses.
100
+ * Reads a closed assistant thread of the configuration that a later thread continues: at most
101
+ * `limit` of its newest messages, or all of them without a limit. Rejects with an
102
+ * {@link AssistantRequestError} when the server refuses.
101
103
  */
102
- getAssistantEarlierThread: (configurationId: string, threadId: string, limit: number) => Promise<AssistantEarlierThread>;
104
+ getAssistantEarlierThread: (configurationId: string, threadId: string, limit?: number) => Promise<AssistantEarlierThread>;
103
105
  /**
104
- * Stores a screenshot the assistant took in the open assistant thread of the configuration, while a
105
- * reply runs there, and resolves with the id its tool result references it by. The image is the
106
- * rendered JPEG or PNG blob, sent with its own type. Rejects with an {@link AssistantRequestError}
107
- * when the server refuses.
106
+ * Stores an image in the assistant thread of the configuration, creating the thread when there is
107
+ * none yet: a screenshot the assistant took while a reply runs there, or an image the user attaches
108
+ * to their next message. Resolves with the id a tool result or a message references it by. The
109
+ * image is a JPEG or PNG blob of at most 2 MB, sent with its own type. Rejects with an
110
+ * {@link AssistantRequestError} when the server refuses, marked `threadNotContinuable` when the
111
+ * thread can take no new message until it is compacted.
108
112
  */
109
113
  uploadAssistantImage: (configurationId: string, image: Blob) => Promise<AssistantImageUpload>;
110
114
  /**
@@ -112,6 +116,12 @@ export interface AuthorizedPhoenixApiClient<FINALIZE_DATA extends Record<string,
112
116
  * references it by. Rejects with an {@link AssistantRequestError} when the server refuses.
113
117
  */
114
118
  getAssistantImage: (configurationId: string, imageId: string) => Promise<Blob>;
119
+ /**
120
+ * Reads an assistant reply of the configuration's threads aloud, by the id of its message: Ogg Opus audio the server
121
+ * synthesizes the first time and serves from storage after. Rejects with an {@link AssistantRequestError} when the
122
+ * server refuses, such as when voice is off for the session or the reply has nothing to read aloud.
123
+ */
124
+ getAssistantReplySpeech: (configurationId: string, messageId: string) => Promise<Blob>;
115
125
  getSpeechToText: (configurationId: string, blob: Blob) => Promise<string>;
116
126
  getTextToSpeech: (configurationId: string, text: string) => Promise<Blob>;
117
127
  sendMessage: (configurationId: string, message: string, state?: Record<string, string>) => Promise<ReadableStream<ChatStreamChunk>>;
@@ -165,9 +175,33 @@ export interface AssistantEarlierThread {
165
175
  export declare class AssistantRequestError extends Error {
166
176
  /** The HTTP status of the answer, which tells a refusal from an outage. */
167
177
  readonly 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
+ readonly threadNotContinuable: boolean;
183
+ /**
184
+ * True when the server refused because a lock counted from the assistant's bans refuses the request, as its
185
+ * `x-assistant-locked` response header says: `true` for a lock of the user, `network` for one of their network.
186
+ */
187
+ readonly locked: boolean;
188
+ /** True when the lock is one of the user's network address (`x-assistant-locked: network`). */
189
+ readonly networkLocked: boolean;
168
190
  constructor(message: string,
169
191
  /** The HTTP status of the answer, which tells a refusal from an outage. */
170
- status: number);
192
+ status: number,
193
+ /**
194
+ * True when the server refused because the thread cannot be continued until it is compacted, as
195
+ * its `x-assistant-thread-continuable: false` response header says.
196
+ */
197
+ threadNotContinuable?: boolean,
198
+ /**
199
+ * True when the server refused because a lock counted from the assistant's bans refuses the request, as its
200
+ * `x-assistant-locked` response header says: `true` for a lock of the user, `network` for one of their network.
201
+ */
202
+ locked?: boolean,
203
+ /** True when the lock is one of the user's network address (`x-assistant-locked: network`). */
204
+ networkLocked?: boolean);
171
205
  }
172
206
  export declare class InvalidDeploymentError extends Error {
173
207
  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;locked;networkLocked;constructor(e,t,r=!1,s=!1,o=!1){super(e),this.status=t,this.threadNotContinuable=r,this.locked=s,this.networkLocked=o,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;
@@ -19,6 +19,7 @@ export declare class LocalStorageAuthorizedPhoenixApiClient<FINALIZE_DATA extend
19
19
  getAssistantEarlierThread: () => Promise<AssistantEarlierThread>;
20
20
  uploadAssistantImage: () => Promise<AssistantImageUpload>;
21
21
  getAssistantImage: () => Promise<Blob>;
22
+ getAssistantReplySpeech: () => Promise<Blob>;
22
23
  getChatConversation: (configurationId: string) => Promise<readonly {
23
24
  readonly augmentation?: import("./phoenix-api.js").components['schemas']['ChatMessageAugmentation'];
24
25
  readonly content?: string;
@@ -1 +1 @@
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
+ import*as e from"uuid";import{ChunkType as t}from"@salsita-ai/contracts/chat";import{LocalStorageAuthenticatedClientPhoenixApiClient as r}from"./local-authenticated-client.js";let o=(e,r)=>{let o={role:"assistant",content:["I see","Yes","Definitely"][Math.round(2*Math.random())]};return localStorage.setItem(`${r}-chat`,JSON.stringify([...e,o])),Promise.resolve(new ReadableStream({start(e){e.enqueue({type:t.content,content:o.content??""}),e.close()}}))};export class LocalStorageAuthorizedPhoenixApiClient extends r{getConfigurationData=e=>{let t=JSON.parse(localStorage.getItem(e)??"[]");if(!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,r)=>{let o=this.getConfigurationData(t),n=e.v4(),a={...r,configurationId:t,revisionId:n,modelVersion:this._modelVersion};return localStorage.setItem(t,JSON.stringify([...o,a])),Promise.resolve({revisionId:n})};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)};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.")};getAssistantReplySpeech=async()=>{throw Error("The assistant chat needs the Phoenix server. Run the configurator against a server deployment.")};getChatConversation=async e=>JSON.parse(localStorage.getItem(`${e}-chat`)??"[]");sendMessage=async(e,t)=>{let r=await this.getChatConversation(e);return localStorage.setItem(`${e}-chat`,JSON.stringify([...r,t])),o(r,e)};getSpeechToText=async()=>{throw Error("Not implemented!")};getTextToSpeech=async()=>{throw Error("Not implemented!")};sendToolCallResults=async e=>o(await this.getChatConversation(e),e);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 r=localStorage.getItem(e);if(!r)throw Error("Configuration not found");let o=JSON.parse(r).find(e=>e.revisionId===t);if(!o)throw Error("Revision not found");return this.createConfiguration(o)}}