@salsita-ai/sdk 0.50.0-develop.ed1806b910 → 0.50.0-develop.eeaf6c4605

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 (938) hide show
  1. package/README.md +8 -2
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/legacy-admin/Application.js +1 -1
  4. package/dist/application-spec/caching/index.d.ts +6 -1
  5. package/dist/application-spec/caching/index.js +1 -1
  6. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  7. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  8. package/dist/application-spec/core/index.d.ts +1 -3
  9. package/dist/application-spec/core/index.js +1 -1
  10. package/dist/application-spec/core/json-schema.d.ts +2 -52
  11. package/dist/application-spec/core/markers/index.d.ts +1 -1
  12. package/dist/application-spec/core/markers/index.js +1 -1
  13. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  14. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  15. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  16. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  17. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  18. package/dist/application-spec/errors/diagnostic-codes.d.ts +8 -1
  19. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  20. package/dist/application-spec/errors/diagnostic-messages.d.ts +15 -1
  21. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  22. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  23. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  24. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  25. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  26. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  27. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  29. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  30. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  31. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  32. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  33. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  34. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +150 -0
  35. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  36. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +40 -0
  37. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout.d.ts +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  40. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.d.ts +2 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.js +1 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +54 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +14 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +39 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +7 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +23 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +26 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +7 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +9 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/operations.d.ts} +2 -1
  82. package/dist/application-spec/generate-application/code/templates/skills/processes/operations.js +2 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.d.ts +2 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.js +5 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +63 -249
  110. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  111. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  112. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  113. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  114. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  115. package/dist/application-spec/generate-application/index.d.ts +1 -8
  116. package/dist/application-spec/generate-application/index.js +1 -1
  117. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  118. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  119. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  120. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  121. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  122. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  123. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  124. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  125. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  126. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  127. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  128. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  129. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  130. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  131. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  132. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  133. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  134. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  135. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  136. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  137. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  138. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  139. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  140. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  141. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  143. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  144. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  145. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  146. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  147. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  148. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  149. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  150. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  151. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  152. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  153. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  154. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  155. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  156. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  157. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  158. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  159. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  160. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  161. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  162. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  163. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  164. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  165. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  166. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  167. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  168. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  169. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  170. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  171. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  172. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  173. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  174. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  175. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  176. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  177. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  178. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  179. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  180. package/dist/client/authorized-client.d.ts +4 -2
  181. package/dist/client/authorized-client.js +1 -1
  182. package/dist/client/contract.d.ts +34 -4
  183. package/dist/client/contract.js +1 -1
  184. package/dist/client/index.d.ts +1 -1
  185. package/dist/client/local-authorized-client.d.ts +3 -1
  186. package/dist/client/local-authorized-client.js +1 -1
  187. package/dist/client/memory-authorized-client.d.ts +4 -1
  188. package/dist/client/memory-authorized-client.js +1 -1
  189. package/dist/client/phoenix-api.d.ts +259 -1
  190. package/dist/configurator/ConfiguratorApp.js +1 -1
  191. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  192. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +92 -24
  193. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  194. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  195. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  196. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  197. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  198. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +38 -11
  199. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  200. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  201. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  202. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  203. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  204. package/dist/configurator/common/configurator-interface.d.ts +2 -2
  205. package/dist/configurator/common/configurator-interface.js +1 -1
  206. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  207. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  208. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  209. package/dist/configurator/configurator-context/index.d.ts +0 -5
  210. package/dist/configurator/configurator-context/index.js +1 -1
  211. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  212. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  213. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  214. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  215. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  216. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  217. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  218. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  219. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  220. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  221. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  222. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  223. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  224. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  225. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  226. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  227. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  228. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  229. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  230. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  231. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  232. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  233. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  234. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  235. package/dist/configurator/pages/provider-slots/index.js +1 -0
  236. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  237. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  238. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  239. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  240. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  241. package/dist/configurator/pages/ui-elements/index.js +1 -0
  242. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -0
  243. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  244. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  245. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  246. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  247. package/dist/configurator/ui/assistant/AssistantThread.d.ts +4 -3
  248. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  249. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +4 -1
  250. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  251. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  252. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  253. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  254. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  255. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  256. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  257. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  258. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  259. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  260. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  261. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  262. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  263. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  264. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  265. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  266. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  267. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  268. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  269. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  270. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  271. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  272. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  273. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  274. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  275. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  276. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  277. package/dist/configurator/ui/assistant/thread-items.d.ts +2 -0
  278. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  279. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  280. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  281. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  282. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  283. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  284. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  285. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  286. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  287. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  288. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  289. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  290. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  291. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  292. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  293. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  294. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  295. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  296. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  297. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  298. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  299. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  300. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  301. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  302. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  303. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  304. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  305. package/dist/docs/index.json +1 -1
  306. package/dist/docs/phoenix/configurator-interface.mdx +2 -2
  307. package/dist/docs/phoenix/deployments.mdx +11 -1
  308. package/dist/docs/phoenix/domain-model.mdx +4 -1
  309. package/dist/docs/phoenix/getting-started.mdx +0 -2
  310. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  311. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  312. package/dist/docs/phoenix/phoenix-cli.mdx +57 -15
  313. package/dist/docs/phoenix/project-structure.mdx +30 -31
  314. package/dist/docs/phoenix/sdk-builder-workflow.mdx +5 -11
  315. package/dist/docs/phoenix/testing.mdx +6 -1
  316. package/dist/docs/phoenix/webhooks.mdx +9 -1
  317. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  318. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  319. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  320. package/dist/domain/application/application-config.d.ts +6 -26
  321. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  322. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  323. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  324. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  325. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  326. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  327. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  328. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  329. package/dist/domain/application/assistant/index.d.ts +0 -4
  330. package/dist/domain/application/assistant/index.js +1 -1
  331. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  332. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  333. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  334. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  335. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  336. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  337. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  338. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  339. package/dist/domain/application/assistant-mutations.js +1 -1
  340. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  341. package/dist/domain/application/configurator-builder.d.ts +1 -2
  342. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  343. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  344. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  345. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  346. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  347. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  348. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  349. package/dist/domain/available-system-components/available-system-components.js +1 -0
  350. package/dist/domain/available-system-components/index.d.ts +1 -0
  351. package/dist/domain/available-system-components/index.js +1 -0
  352. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  353. package/dist/domain/domain-builder/domain-builder.js +1 -0
  354. package/dist/domain/domain-builder/index.d.ts +1 -0
  355. package/dist/domain/domain-builder/index.js +1 -0
  356. package/dist/domain/domain-runtime/domain-runtime.d.ts +24 -24
  357. package/dist/domain/domain-runtime/index.d.ts +0 -1
  358. package/dist/domain/domain-runtime/index.js +1 -1
  359. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  360. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  361. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  362. package/dist/domain/domain-runtime/spec/index.js +1 -1
  363. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  364. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  365. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  366. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  367. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  368. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  369. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  370. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  371. package/dist/domain/extensions/export-images/index.js +1 -1
  372. package/dist/domain/extensions/index.d.ts +1 -1
  373. package/dist/domain/extensions/index.js +1 -1
  374. package/dist/domain/index.d.ts +15 -2
  375. package/dist/domain/index.js +1 -1
  376. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  377. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  378. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  379. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  380. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  381. package/dist/domain/spec/application/index.d.ts +5 -0
  382. package/dist/domain/spec/application/index.js +1 -0
  383. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  384. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  385. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  386. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  387. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  388. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  389. package/dist/domain/spec/components/component-entry.js +1 -0
  390. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  391. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  392. package/dist/domain/spec/components/component-filters.js +1 -0
  393. package/dist/domain/spec/components/components.d.ts +4 -0
  394. package/dist/domain/spec/components/components.js +1 -0
  395. package/dist/domain/spec/components/index.d.ts +6 -0
  396. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  397. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  398. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  399. package/dist/domain/spec/enhanced-json/index.js +1 -0
  400. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  401. package/dist/domain/spec/expressions/expression.js +1 -0
  402. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  403. package/dist/domain/spec/expressions/expressions.js +1 -0
  404. package/dist/domain/spec/expressions/index.d.ts +5 -0
  405. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  406. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  407. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  408. package/dist/domain/spec/index.d.ts +4 -0
  409. package/dist/domain/spec/index.js +1 -0
  410. package/dist/domain/spec/invariants/index.d.ts +2 -0
  411. package/dist/domain/spec/invariants/index.js +1 -0
  412. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  413. package/dist/domain/spec/invariants/invariant.js +1 -0
  414. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  415. package/dist/domain/spec/invariants/invariants.js +1 -0
  416. package/dist/domain/spec/json-schema.d.ts +52 -0
  417. package/dist/domain/spec/json-schema.js +1 -0
  418. package/dist/domain/spec/markers/index.d.ts +3 -0
  419. package/dist/domain/spec/markers/index.js +1 -0
  420. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  421. package/dist/domain/spec/markers/msg-marker.js +1 -0
  422. package/dist/domain/spec/model/aliases.d.ts +9 -0
  423. package/dist/domain/spec/model/aliases.js +1 -0
  424. package/dist/domain/spec/model/common-types.d.ts +15 -0
  425. package/dist/domain/spec/model/common-types.js +1 -0
  426. package/dist/domain/spec/model/defaults.d.ts +33 -0
  427. package/dist/domain/spec/model/defaults.js +1 -0
  428. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  429. package/dist/domain/spec/model/entity-types.js +1 -0
  430. package/dist/domain/spec/model/index.d.ts +7 -0
  431. package/dist/domain/spec/model/index.js +1 -0
  432. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  433. package/dist/domain/spec/model/model-version-key.js +1 -0
  434. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  435. package/dist/domain/spec/model/names/action-name.js +1 -0
  436. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  437. package/dist/domain/spec/model/names/alias-name.js +1 -0
  438. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  439. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  440. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  441. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  442. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  443. package/dist/domain/spec/model/names/expression-name.js +1 -0
  444. package/dist/domain/spec/model/names/index.d.ts +9 -0
  445. package/dist/domain/spec/model/names/index.js +1 -0
  446. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  447. package/dist/domain/spec/model/names/instance-name.js +1 -0
  448. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  449. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  450. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  451. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  452. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  453. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  454. package/dist/domain/spec/model/presets.d.ts +30 -0
  455. package/dist/domain/spec/model/presets.js +1 -0
  456. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  457. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  458. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  459. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  460. package/dist/domain/spec/modules/index.js +1 -0
  461. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  462. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  463. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  464. package/dist/domain/spec/modules/project-modules.js +1 -0
  465. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  466. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  467. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  468. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  469. package/dist/domain/spec/phx/index.d.ts +1 -0
  470. package/dist/domain/spec/phx/index.js +1 -0
  471. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  472. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  473. package/dist/domain/spec/phx/phx-domain.js +1 -0
  474. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  475. package/dist/domain/spec/phx/phx-model.js +1 -0
  476. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  477. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +7 -6
  478. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  479. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  480. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  481. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  482. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  483. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  484. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +8 -6
  485. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  486. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +3 -1
  487. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  488. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +8 -10
  489. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  490. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  491. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  492. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  493. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  494. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  495. package/dist/{application-spec/generate-application → domain/spec}/runtime/create-application.d.ts +3 -2
  496. package/dist/domain/spec/runtime/create-application.js +1 -0
  497. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -3
  498. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  499. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -2
  500. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  501. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  502. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  503. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  504. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -3
  505. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  506. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.js +1 -1
  507. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -2
  508. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.js +1 -1
  509. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  510. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  511. package/dist/domain/spec/runtime/index.d.ts +13 -0
  512. package/dist/domain/spec/runtime/index.js +1 -0
  513. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  514. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  515. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -3
  516. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  517. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -3
  518. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  519. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  520. package/dist/domain/spec/runtime/model/index.js +1 -0
  521. package/dist/domain/spec/runtime/optics/build-sdk-optic.d.ts +7 -0
  522. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  523. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  524. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  525. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  526. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  527. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -14
  528. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  529. package/dist/domain/spec/runtime/optics/index.js +1 -0
  530. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  531. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  532. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -3
  533. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  534. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  535. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  536. package/dist/domain/spec/runtime/sections/index.js +1 -0
  537. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +4 -4
  538. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  539. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  540. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  541. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  542. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  543. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  544. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  545. package/dist/domain/spec/runtime-spec/index.js +1 -0
  546. package/dist/domain/spec/runtime-spec/runtime-spec.d.ts +174 -0
  547. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  548. package/dist/domain/spec/sections/actions.d.ts +23 -0
  549. package/dist/domain/spec/sections/actions.js +1 -0
  550. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  551. package/dist/domain/spec/sections/app-metadata.js +1 -0
  552. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  553. package/dist/domain/spec/sections/application-version.js +1 -0
  554. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  555. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +5 -9
  556. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  557. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  558. package/dist/domain/spec/sections/assistant/index.js +1 -0
  559. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  560. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  561. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  562. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  563. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  564. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  565. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  566. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  567. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  568. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  569. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  570. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  571. package/dist/domain/spec/sections/index.d.ts +10 -0
  572. package/dist/domain/spec/sections/index.js +1 -0
  573. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  574. package/dist/domain/spec/sections/infra/acl.js +1 -0
  575. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  576. package/dist/domain/spec/sections/infra/index.js +1 -0
  577. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  578. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  579. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  580. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  581. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  582. package/dist/domain/spec/sections/state-value.js +1 -0
  583. package/dist/domain/spec/sections/theme.d.ts +10 -0
  584. package/dist/domain/spec/sections/theme.js +1 -0
  585. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  586. package/dist/domain/spec/sections/transformers.js +1 -0
  587. package/dist/domain/spec/sections/ui.d.ts +12 -0
  588. package/dist/domain/spec/sections/ui.js +1 -0
  589. package/dist/domain/system-definitions.js +1 -1
  590. package/dist/domain/utils/index.d.ts +2 -0
  591. package/dist/domain/utils/index.js +1 -0
  592. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  593. package/dist/i18n/locales/cs/messages.js +1 -1
  594. package/dist/i18n/locales/da/messages.js +1 -1
  595. package/dist/i18n/locales/de/messages.js +1 -1
  596. package/dist/i18n/locales/de-AT/messages.js +1 -1
  597. package/dist/i18n/locales/en/messages.js +1 -1
  598. package/dist/i18n/locales/en-AU/messages.js +1 -1
  599. package/dist/i18n/locales/en-GB/messages.js +1 -1
  600. package/dist/i18n/locales/es/messages.js +1 -1
  601. package/dist/i18n/locales/fr/messages.js +1 -1
  602. package/dist/i18n/locales/hu/messages.js +1 -1
  603. package/dist/i18n/locales/it/messages.js +1 -1
  604. package/dist/i18n/locales/nl/messages.js +1 -1
  605. package/dist/i18n/locales/pl/messages.js +1 -1
  606. package/dist/i18n/locales/pt/messages.js +1 -1
  607. package/dist/i18n/locales/ro/messages.js +1 -1
  608. package/dist/i18n/locales/sk/messages.js +1 -1
  609. package/dist/i18n/locales/tr/messages.js +1 -1
  610. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  611. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  612. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  613. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  614. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  615. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  616. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  617. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  618. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  619. package/dist/phoenix/application-spec/index.d.ts +2 -0
  620. package/dist/phoenix/application-spec/index.js +1 -1
  621. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  622. package/dist/phoenix/application-spec/project-files.js +1 -1
  623. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  624. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  625. package/dist/phoenix/bin.js +1 -1
  626. package/dist/phoenix/cli.js +1 -1
  627. package/dist/phoenix/commands/activate-deployment.js +1 -1
  628. package/dist/phoenix/commands/build.js +1 -1
  629. package/dist/phoenix/commands/changelog.js +1 -1
  630. package/dist/phoenix/commands/check.js +1 -1
  631. package/dist/phoenix/commands/clean.js +1 -1
  632. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  633. package/dist/phoenix/commands/create-environment.js +1 -1
  634. package/dist/phoenix/commands/data.js +1 -1
  635. package/dist/phoenix/commands/deploy.js +1 -1
  636. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  637. package/dist/phoenix/commands/dev.js +4 -5
  638. package/dist/phoenix/commands/docs.js +1 -1
  639. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  640. package/dist/phoenix/commands/fix.js +1 -1
  641. package/dist/phoenix/commands/index.d.ts +1 -1
  642. package/dist/phoenix/commands/index.js +1 -1
  643. package/dist/phoenix/commands/inspect-assets.js +1 -1
  644. package/dist/phoenix/commands/list-environments.js +1 -1
  645. package/dist/phoenix/commands/login.d.ts +4 -1
  646. package/dist/phoenix/commands/login.js +2 -2
  647. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  648. package/dist/phoenix/commands/register-deployment.js +1 -1
  649. package/dist/phoenix/commands/scene.js +1 -1
  650. package/dist/phoenix/commands/screenshot.js +1 -1
  651. package/dist/phoenix/commands/state.js +1 -1
  652. package/dist/phoenix/commands/story-build.js +3 -3
  653. package/dist/phoenix/commands/story-create.js +1 -1
  654. package/dist/phoenix/commands/story-dev.js +2 -2
  655. package/dist/phoenix/commands/sync.js +1 -1
  656. package/dist/phoenix/commands/variants.js +1 -1
  657. package/dist/phoenix/editor-server/commands-router.js +1 -1
  658. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  659. package/dist/phoenix/editor-server/editor-server.js +1 -1
  660. package/dist/phoenix/editor-server/spec-router.js +1 -1
  661. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  662. package/dist/phoenix/lingui/index.d.ts +1 -0
  663. package/dist/phoenix/lingui/index.js +1 -0
  664. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  665. package/dist/phoenix/lingui/lingui.js +1 -0
  666. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  667. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  668. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  669. package/dist/phoenix/services/cli-credentials.js +1 -1
  670. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  671. package/dist/phoenix/services/cli-exit.js +1 -0
  672. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  673. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  674. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  675. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  676. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  677. package/dist/phoenix/services/deployment/index.js +1 -0
  678. package/dist/phoenix/services/index.d.ts +5 -1
  679. package/dist/phoenix/services/index.js +1 -1
  680. package/dist/phoenix/services/lingui-watcher.js +1 -1
  681. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  682. package/dist/phoenix/services/phoenix-store.js +1 -1
  683. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  684. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  685. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  686. package/dist/phoenix/services/session/index.d.ts +2 -0
  687. package/dist/phoenix/services/session/index.js +1 -0
  688. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  689. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  690. package/dist/phoenix/services/source-archive.d.ts +2 -0
  691. package/dist/phoenix/services/source-archive.js +1 -1
  692. package/dist/phoenix/services/swc.d.ts +5 -4
  693. package/dist/phoenix/services/swc.js +2 -2
  694. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  695. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  696. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  697. package/dist/phoenix/services/telemetry/index.js +1 -0
  698. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  699. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  700. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  701. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  702. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  703. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  704. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  705. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  706. package/dist/phoenix/services/vite-config.js +1 -1
  707. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  708. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  709. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  710. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  711. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  712. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  713. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  714. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  715. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  716. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  717. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  718. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  719. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  720. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  721. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  722. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  723. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  724. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  725. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  726. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  727. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  728. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  729. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  730. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  731. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  732. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  733. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  734. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  735. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  736. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  737. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  738. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  739. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  740. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  741. package/dist/react-sdk/domain-application-context/index.js +1 -1
  742. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  743. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  744. package/dist/react-sdk/index.d.ts +7 -0
  745. package/dist/react-sdk/index.js +1 -1
  746. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  747. package/dist/react-sdk/integration/index.d.ts +1 -0
  748. package/dist/react-sdk/integration/index.js +1 -0
  749. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  750. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  751. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  752. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  753. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  754. package/dist/react-sdk/notifications/index.d.ts +1 -0
  755. package/dist/react-sdk/notifications/index.js +1 -0
  756. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  757. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  758. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  759. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  760. package/dist/react-sdk/preset-selection/index.js +1 -0
  761. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  762. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  763. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  764. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  765. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  766. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  767. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  768. package/dist/react-sdk/provider-slots/index.js +1 -0
  769. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  770. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  771. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  772. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  773. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  774. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  775. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  776. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  777. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  778. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  779. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  780. package/dist/ui-sdk/icons/__generated/index.d.ts +2 -0
  781. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  782. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  783. package/dist/ui-sdk/theme/types.d.ts +1 -1
  784. package/dist/watch/glob-matcher.d.ts +4 -4
  785. package/dist/watch/glob-matcher.js +1 -1
  786. package/dist/watch/watch.d.ts +4 -4
  787. package/dist/watch/watch.js +1 -1
  788. package/package.json +3 -3
  789. package/schema/domain-spec.json +22 -4
  790. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  791. package/dist/application-spec/core/components/index.d.ts +0 -2
  792. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  793. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  794. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  795. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  796. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  797. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  798. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  799. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  800. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  801. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  802. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  803. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  804. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  805. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  806. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  807. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  808. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  809. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  810. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  811. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  812. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  813. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  814. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  815. package/dist/application-spec/generate-application/runtime/create-application.js +0 -1
  816. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  817. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  818. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  819. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  820. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +0 -8
  821. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  822. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  823. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  824. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  825. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  826. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  827. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  828. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  829. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  830. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  831. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +0 -103
  832. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  833. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  834. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  835. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  836. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  837. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  838. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  839. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  840. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  841. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  842. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  843. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  844. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  845. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  846. package/dist/domain/available-system-components.d.ts +0 -11
  847. package/dist/domain/available-system-components.js +0 -1
  848. package/dist/domain/domain-builder.js +0 -1
  849. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  850. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  851. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  852. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  853. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  854. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  855. package/dist/phoenix/services/lingui.d.ts +0 -15
  856. package/dist/phoenix/services/lingui.js +0 -1
  857. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  858. package/dist/phoenix/services/phoenix-application.js +0 -1
  859. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  860. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  861. /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/application/admin-pages-section.js} +0 -0
  862. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → domain/spec/application/admin-pages.js} +0 -0
  863. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-states.js} +0 -0
  864. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  865. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  866. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/configurator-states.js} +0 -0
  867. /package/dist/domain/{application/assistant/assistant-manifest.js → spec/components/bindings/index.js} +0 -0
  868. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  869. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  870. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  871. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  872. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  873. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  874. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  875. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  876. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  877. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  878. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  879. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  880. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  881. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  882. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  883. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  884. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  885. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  886. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  887. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  888. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  889. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  890. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  891. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  892. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  893. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  894. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  895. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  896. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  897. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  898. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  899. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  900. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  901. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  902. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  903. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  904. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  905. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  906. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  907. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  908. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  909. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  910. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  911. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  912. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  913. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  914. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  915. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  916. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  917. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  918. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  919. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  920. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  921. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  922. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  923. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  924. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  925. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  926. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  927. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  928. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  929. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  930. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  931. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  932. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  933. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  934. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  935. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  936. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  937. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  938. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import{createPhoenixTopicGuide as e}from"../guide.js";let t=`The client creates the configurator; its users may be buyers, salespeople or designers. The aim is a useful, polished product that fits the client's purpose, preferences and agreed effort.
2
+
3
+ These practices usually lead there; adapt them to the client, the product and the task rather than following a script.`,n=`## Where to start
4
+
5
+ - **A new project** — nothing in \`.phoenix/workspace/specification/\` and still the starter spec, or a first draft the project record shows in progress — usually starts with a [First draft](../processes/first-draft/index.md): a convincing first version, quickly.
6
+ - **Normal mode** — everything after that, and every existing project — builds on the specification and the plan. A small fix goes straight to the affected behavior.
7
+
8
+ The client can always redirect; follow their lead without nagging or repeated approval requests.`,a=`## Working with the client
9
+
10
+ Be a warm, direct expert who listens, recommends an approach and takes responsibility for SDK and tooling choices. Look at supplied materials before asking, and keep the conversation about the product rather than setup questionnaires or jargon. When uncertainty affects the next result, such as a blocking ambiguity, a business decision needed now or a departure from accepted design, ask with a recommendation; otherwise state reversible defaults and keep going. Keep facts, explicit preferences and provisional assumptions distinct.
11
+
12
+ Talk about the client's product: what they can try, see or decide. Modes, processes, stages, records and guide names are internal and never come up with the client. Say "next, I'll add the desk range", not "switching to normal mode and running Planning".`,r=`## Preferences
13
+
14
+ Preferences shape how much effort and autonomy fit the work; note them in the project record as they emerge:
15
+
16
+ - **Cost** — token and money sensitivity: subagent reviews, parallel agents, heavy rendering.
17
+ - **Time** — fast feedback in small steps, or thorough and slower increments.
18
+ - **Autonomy** — decide and report, or check in before choices; how large an autonomous batch may be.
19
+ - **Quality bar** — demo grade or ready for real users; it sets review depth.
20
+ - **Communication** — detail, technical depth and update frequency.
21
+
22
+ A first draft runs no reviews or parallel agents, so it needs none of these answers. Ask once, briefly and with a recommendation, at its handoff or when work on an existing project starts without them. With a cost- or time-sensitive client, offer an expensive action with what it would add and wait for a yes rather than starting it.`,i=`## Keeping the client oriented
23
+
24
+ Clients do best when they know what is happening, what comes next and whether anything is blocked. Share the plan before longer work, update briefly during long builds, and when stuck, name the dependency and what can continue. Records do not replace these updates.
25
+
26
+ A good handoff separates what is done, what is unverified and what remains. After the first draft, end every handoff with a recommended next step and one or two alternatives, often a [Phoenix capability](../features/index.md) the client may not know about. Note declined suggestions so they do not come back.`,s=`## Building in increments
27
+
28
+ After the first draft, [Planning](../processes/planning.md) establishes the full specification and an ordered plan. Work then goes best in small, useful increments: choose an outcome with observable checks; build it within the [branding and UX guidelines](../processes/specification/index.md), where they exist, using the [SDK guidance](sdk.md); exercise the changed interaction and what it affects, such as control targets, selection context and global versus per-part behavior; review it as the [review strategy](#review-strategy) suggests; then show the client what to try and fold their feedback into the specification and plan.
29
+
30
+ Habits that help: wait for feedback before expanding an increment unless the client asked for a larger batch; settle core interactions before multiplying options; keep agreed scope visible until it is built or deferred; preserve selections and accepted behavior; and when rules change, keep model, scene, controls, dimensions, pricing and checks consistent.`,o=`## Visual choices
31
+
32
+ When taste, branding or interaction has several reasonable answers that the client's materials do not settle, alternatives usually help: explain the tradeoffs and recommend one. Accepted choices stay settled, facts are not the client's to pick, and routine reversible details need no approval. [Variants](../features/variants.md) shows alternatives in the live preview.`,c=`## Review strategy
33
+
34
+ The first draft skips review processes; a quick look at the running preview before showing each result keeps broken work away from the client.
35
+
36
+ Later, review changed work before committing or handing it over with the [review processes](../processes/review/index.md), scaled to impact, uncertainty, the quality bar and the cost preference. A self-review is usually enough; an independent subagent adds a fresh view of visual fidelity, complex rules or broad interactions when the preferences allow it. Note whether review was independent and what remains unverified; a passing build does not prove product quality.`,d=`## Feedback and completion
37
+
38
+ Client feedback shapes the direction and the records; confirm material departures. Phoenix feedback is a separate, external report: [Feedback](../processes/feedback/index.md) covers SDK problems and the end-of-run evaluation, and only approved content is sent.
39
+
40
+ Some lines stay firm: publishing, real orders, real messages and connecting live systems need the client's authorization against the concrete result, and deploys go through [Project operations](../processes/operations.md), including its transcript consent.`;export const generatePhoenixWorkflowCore=()=>e({path:"core/workflow.md",title:"Workflow",summary:"where to start, working with the client, preferences, increments, records and review strategy",sections:[t,n,a,r,i,s,o,"## Records\n\n- **Specification** — client-facing documents: branding, UX guidelines, product definition and catalogs, with sources in `.phoenix/workspace/specification/` and rendered PDFs in `docs/`. [Specification](../processes/specification/index.md) describes them; later work follows them, and changing an accepted rule is the client's call.\n- **Project record** — `.phoenix/workspace/project.md` is the current snapshot: preferences, approach, decisions with rationale, declined suggestions, progress and open questions, rewritten as they change. `.phoenix/workspace/changelog/` keeps the history: append a dated entry for each meaningful change, decision, verification or piece of client feedback, and continue in a new numbered file when the current one gets long. Normal mode adds `.phoenix/workspace/plan.md`.\n\nReuse records when resuming; they are never a client task or an approval gate. Leave out secrets, unrelated personal information and raw transcripts; [project structure](cli.md#project-structure) describes how records are kept and deployed.",c,d]});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixCustomLayoutFeature: () => PhoenixGuide;
@@ -0,0 +1 @@
1
+ import{createPhoenixFeatureGuide as o}from"../guide.js";import{sdkGuidanceSections as e}from"../sdk-content.js";export const generatePhoenixCustomLayoutFeature=()=>o({path:"features/custom-layout.md",title:"Custom project layout",summary:"Supported UI composition, slots, hooks, preset screen, app loader and page responsibilities; read when creating or changing a project layout or custom element.",whenToUse:"Read when composing a project layout or replacing a supported page element, such as the preset screen or the app loader.\n\nCompose project UI through a default-exported `phx.frontend.createCustomPhoenixLayoutElement()` in `src/elements/`. Reuse Phoenix layout slots, controls and typed hooks; YAML remains the owner of domain and component behavior.",capabilities:e.customLayout,example:"For a relocated sidebar with the usual configured controls, use the complete layout in `docs/layouts/sidebar/in-a-custom-layout.mdx`. For a custom panel and responsive shell, use `docs/layouts/custom-layout.mdx`; both show the required canvas and safe-area wiring. The layout gallery in `docs/layouts/gallery/` shows complete, distinct layouts for real products.",documentation:"Canonical examples and APIs: `docs/layouts/custom-layout.mdx`, `docs/layouts/sidebar/in-a-custom-layout.mdx`, `docs/layouts/presets/custom.mdx`, `docs/phoenix/configurator-interface.mdx` and `docs/phoenix/layout-slots.mdx`, read with `pnpm phoenix docs -r <path>`."});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ /** The capability index followed by the feature guides it lists. */
3
+ export declare const generatePhoenixFeatureGuides: () => readonly PhoenixGuide[];
@@ -0,0 +1 @@
1
+ import{createPhoenixIndexGuide as e}from"../guide.js";import{generatePhoenixCustomLayoutFeature as n}from"./custom-layout.js";import{generatePhoenixInspectionFeature as o}from"./inspection.js";import{generatePhoenixVariantsFeature as i}from"./variants.js";import{generatePhoenixWebhooksFeature as t}from"./webhooks.js";export const generatePhoenixFeatureGuides=()=>{let s=[n(),t(),o(),i()];return[e({path:"features/index.md",title:"Features",summary:"What Phoenix capabilities support, their constraints and the canonical SDK documentation.",intro:"Use only the topic the task needs. Paths below are documents shipped with the installed SDK: read one with `pnpm phoenix docs -r <path>`; `pnpm phoenix docs -s '<topic>'` finds more examples. These links do not make their destinations required reading.",guides:s,notes:["## Topic map\n\nThese topics point directly to canonical SDK docs when no extra agent-facing explanation is needed.\n\n### Project and customization\n\n- `docs/phoenix/getting-started.mdx`, `docs/phoenix/quickstart.mdx` — setup and a complete worked configurator.\n- `docs/phoenix/best-practices.mdx` — supported composition and extension patterns.\n- [Project structure](../core/cli.md#project-structure) — authored folders and generated boundaries; canonical reference: `docs/phoenix/project-structure.mdx`.\n\n### Model\n\n- `docs/phoenix/domain-model.mdx` — entities, attributes, relations, expressions, actions and invariants.\n- `docs/phoenix/expression-context.mdx` — computed values and data available to expressions.\n- [Model migration](../processes/model-migration.md) — preserve a deployed model and migrate saved configurations; `docs/phoenix/migrations.mdx` has the full examples.\n\n### Frontend runtime\n\n- `docs/phoenix/components.mdx` — configured versus custom components and bindings.\n- `docs/phoenix/state-management.mdx`, `docs/phoenix/application-states.mdx` — state flow, transformers and application context.\n- `docs/phoenix/configurator-interface.mdx`, `docs/phoenix/layout-slots.mdx` — custom elements, layouts and supported hooks.\n- `docs/phoenix/theming.mdx`, `docs/ux-guidelines/overview.mdx` — branding and interaction principles.\n- `docs/layouts/gallery/` — complete custom layouts for real products.\n\n### Webhooks and finalization\n\n- `docs/phoenix/webhooks.mdx`, `docs/phoenix/webhook-membership.mdx` — execution and registration.\n- `docs/phoenix/finalization.mdx`, `docs/phoenix/blender-rendering.mdx` — finalization tasks, PDF, email and CSV, and generated images.\n- `docs/other-features/client-side-rendering/declarative.mdx` — configurator-rendered images in PDFs and emails.\n- [Finalization](../processes/finalization.md) — agree and implement the completion journey.\n\n### Data sources\n\n- `docs/phoenix/data-sources.mdx` — published, frontend, session and backend data and their lifetimes.\n- `docs/phoenix/connected-data-sources.mdx` — connected sheets and external data.\n- [Data inspection](inspection.md#inspect-data) — examine the data the preview actually received.\n\n### Admin and Studio\n\n- `docs/phoenix/admin.mdx`, `docs/phoenix/publishing.mdx` — project content administration and published revisions.\n- `docs/phoenix/sdk-builder-workflow.mdx` — Studio workspaces, projects, environments and builds.\n\n### CLI and project identity\n\n- `docs/phoenix/phoenix-cli.mdx` — login, project selection, dependencies, sync, dev, build and check, flags and troubleshooting.\n- `docs/phoenix/sessions-and-access.mdx`, `docs/phoenix/clerk-sign-in.mdx` — configurator access and project authentication.\n- [Project operations](../processes/operations.md) — preview, SDK updates when applicable, and deployment.\n\n### Deployment\n\n- `docs/phoenix/deployments.mdx`, `docs/phoenix/sdk-builder-workflow.mdx` — environments and server builds.\n- [Project operations](../processes/operations.md) — transcript handling and following the build.\n- [Feedback](../processes/feedback/index.md) — approved platform reports and run evaluations."]}),...s]};
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixInspectionFeature: () => PhoenixGuide;
@@ -0,0 +1 @@
1
+ import{createPhoenixFeatureGuide as e}from"../guide.js";import{sdkGuidanceSections as n}from"../sdk-content.js";export const generatePhoenixInspectionFeature=()=>e({path:"features/inspection.md",title:"Inspection",summary:"Asset and live runtime inspection commands; read when checking models, scene, state, data or rendered output.",whenToUse:"Read when checking imported assets or investigating the running configurator. Runtime inspection needs dev running and the preview open in a browser.",capabilities:[n.assetInspection,n.screenshotCli,n.inspectState,n.inspectData,n.inspectScene,n.playwrightMcpSetup].join("\n\n"),example:"After changing a material, run `pnpm phoenix inspect:scene` to inspect the assigned material, then `pnpm phoenix screenshot -o ./render.png` to compare the rendered result. A canvas screenshot does not cover the surrounding interface.",documentation:"Read `docs/phoenix/phoenix-cli.mdx` with `pnpm phoenix docs -r docs/phoenix/phoenix-cli.mdx` for command flags and output contracts. Use the [review index](../processes/review/index.md) when deciding which evidence the change needs."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixVariantsFeature: () => PhoenixGuide;
@@ -0,0 +1 @@
1
+ import{createPhoenixFeatureGuide as e}from"../guide.js";export const generatePhoenixVariantsFeature=()=>e({path:"features/variants.md",title:"Variants",summary:"Supported alternative types, preview constraints and usage; read when preparing a comparison in the live preview and applying the choice.",whenToUse:"Read when preparing a visual or interaction comparison in the running preview. The [workflow](../core/workflow.md#visual-choices) owns whether alternatives would help; this guide covers the supported options and how to collect and apply a choice.",capabilities:'### Option types\n\n- Use `<id>.variant.js` to edit real frontend project files on top of one captured baseline. Use `<id>.html` for a standalone branding, layout or flow proposal rendered in an iframe.\n- Use the same mechanism for controls, layout, brand, lights, visuals, materials, positions, components, elements and transformers.\n- Keep the model, schemas, data, assistant server settings, webhooks and code shared with them, dependencies, environment and uploaded assets unchanged. The preview rejects changes needing server preparation.\n- Options reuse the already loaded configurator, one at a time. Variant transactions bypass the file-watcher debounce; hot reload still takes time to apply, without a special wait for rendering to settle.\n\n### Design the comparison\n\n- One decision per set, one set open at a time. Vary the decision being compared and keep unrelated details identical.\n- Make the difference visible in the UI or the scene; similar materials in flat light may not distinguish the alternatives.\n- Choose the number of options that clarifies the decision; no fixed count is required.\n- Name options in the client\'s product language and explain what changes in one line.\n\n### Write the options\n\n- One folder per set: `.phoenix/variants/<name>/`, one script or HTML file per option. HTML and scripts can share a set, but option ids must be unique. Keep HTML self-contained. This folder survives rebuilds and is never committed.\n- For HTML, set `<title>` and `<meta name="description" content="...">`; choosing a page changes no source files.\n- For scripts, export `title` and `description` as plain string literals, and a default function `({ read, write, remove }) => {}`; it may be async.\n- `read(path)` returns the original baseline file contents. `write(path, contents)` replaces or creates a file; `remove(path)` deletes it. Paths are relative to the project root.\n- Scripts run once per selection in the browser and collect edits. Phoenix validates and writes the whole batch locally and owns backups and undo. Do not perform your own filesystem or network operations.\n- Supported edits are YAML in `spec/` outside `spec/admin/`, and TypeScript under `src/components`, `transformers`, `handlers`, `elements` and `_`-prefixed shared folders. Expressions, actions and invariants run on the server too, so they cannot be edited.\n- Every option starts from the same baseline. Original restores it; switching restores the files only the previous option changed.\n- Keep the working tree untouched while comparing. Phoenix never overwrites an edit made outside the preview: it refuses to switch options over one, and when the comparison ends it leaves that file as it is and warns in the dev log.\n\n### Run it and wait\n\n```bash\npnpm phoenix variants .phoenix/variants/<name> --title \'<the question>\' --description \'<what differs between the options>\'\n```\n\n- `pnpm phoenix dev` must be running with the preview open in a browser. Tell the client the options are open there.\n- Put the title and the description in single quotes, so the shell passes backticks, `$` and double quotes through unchanged. In bash or zsh, write a single quote inside them as `\'\\\'\'`; in PowerShell, double it instead.\n- The command waits for the answer, 540 seconds unless `--timeout <seconds>` says otherwise, so give it a command timeout longer than that. It prints JSON:\n - `"status": "chosen"` with `choice` (the option id, or `null` for Original) and `label`;\n - `"status": "waiting"` when the wait ran out. The options stay open: run the same command again, or end the turn and run it when the client is back. An answer given in between is returned by the next run;\n - `"status": "closed"` when the preview was closed without an answer.\n- `pnpm phoenix variants --close` closes the open set when the comparison is abandoned.\n- `--port <port>` names the editor WebSocket port when `phoenix dev` does not use 3020.\n- The live configurator keeps its current configuration. Interactions still change it; restoring source files does not undo configuration changes.\n\n### Use the answer\n\n- **Chosen** — a script\'s exact file edits remain in the project. For an HTML choice, implement the selected proposal using the SDK and compare the result with the page. With `choice: null`, the client chose Original and the baseline remains. Verify the result with `pnpm phoenix inspect:scene` and `pnpm phoenix screenshot`, and tell the client anything that came out differently.\n- Record the decision and its reason in the [project record](../core/workflow.md#records).\n- The client confirms Original or another option; Escape and the backdrop do not close the comparison. `--close` restores the baseline source files without an answer. The folder is removed once the client answers; pass `--keep` while its files are still needed to build from, and remove the folder afterwards.',example:"Compare warm and neutral lighting with two variant scripts while keeping the product and camera unchanged. Use HTML proposals instead when comparing standalone pages, such as branding sheets, then implement the selected proposal in the project. Original remains available as the captured baseline.",documentation:"Read `docs/phoenix/phoenix-cli.mdx` with `pnpm phoenix docs -r docs/phoenix/phoenix-cli.mdx` for the CLI contract. Use the [review index](../processes/review/index.md) to select evidence for the applied result."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixWebhooksFeature: () => PhoenixGuide;
@@ -0,0 +1 @@
1
+ import{createPhoenixFeatureGuide as e}from"../guide.js";import{sdkGuidanceSections as o}from"../sdk-content.js";export const generatePhoenixWebhooksFeature=()=>e({path:"features/webhooks.md",title:"Webhooks",summary:"Frontend and server inclusion and import boundaries; read when adding handlers, assistant setup or shared webhook code.",whenToUse:"Read when deciding which handlers and shared modules belong in the webhook, including authentication, publication and assistant setup.",capabilities:o.webhookMembership,example:"When a pricing helper is shared by the browser and a quote webhook, keep its module server-safe. A handler that also imports a React layout cannot be included; split the shared calculation from the browser presentation.",documentation:"Read `docs/phoenix/webhook-membership.mdx` for inclusion rules and `docs/phoenix/webhooks.mdx` for worked handler and task examples, using `pnpm phoenix docs -r <path>`. The [SDK core](../core/sdk.md#webhooks-and-finalization) maps the available hooks and tasks."});
@@ -0,0 +1,54 @@
1
+ /**
2
+ * A Markdown document of the Phoenix skill, shipped beside its `SKILL.md`.
3
+ *
4
+ * Every document opens with its title as the only H1, and its parent index lists it by `title` and `summary`, so an
5
+ * agent decides from the index alone whether to read it. The factories below render the shared document shapes, so
6
+ * a guide follows the structure the skills architecture prescribes by construction rather than by review.
7
+ */
8
+ export interface PhoenixGuide {
9
+ /** Path inside the skill folder, `/`-separated, such as `processes/review/code.md`. */
10
+ readonly path: string;
11
+ /** The document's name: its H1 and its entry in the parent index. */
12
+ readonly title: string;
13
+ /** What the document covers and when to read it, as one cell of the parent index. */
14
+ readonly summary: string;
15
+ readonly content: string;
16
+ }
17
+ interface PhoenixGuideHeader {
18
+ readonly path: string;
19
+ readonly title: string;
20
+ readonly summary: string;
21
+ }
22
+ /** A document organized by topic, such as a required core guide. */
23
+ export interface PhoenixTopicGuideProps extends PhoenixGuideHeader {
24
+ /** Markdown sections after the H1, each usually opening with an H2. */
25
+ readonly sections: readonly string[];
26
+ }
27
+ /** A reusable procedure: its trigger, its steps, its completion boundary and one focused example. */
28
+ export interface PhoenixProcessGuideProps extends PhoenixGuideHeader {
29
+ readonly whenToUse: string;
30
+ /** The procedure itself; topic subsections use H3. */
31
+ readonly steps: string;
32
+ readonly doneWhen: string;
33
+ readonly example: string;
34
+ }
35
+ /** What a Phoenix capability supports, when it fits, one focused example and its canonical documentation. */
36
+ export interface PhoenixFeatureGuideProps extends PhoenixGuideHeader {
37
+ readonly whenToUse: string;
38
+ /** Supported usage and limits; topic subsections use H3. */
39
+ readonly capabilities: string;
40
+ readonly example: string;
41
+ readonly documentation: string;
42
+ }
43
+ /** A routing document: a short introduction and a table of its children with their summaries. */
44
+ export interface PhoenixIndexGuideProps extends PhoenixGuideHeader {
45
+ readonly intro: string;
46
+ readonly guides: readonly PhoenixGuide[];
47
+ /** Markdown after the table, such as rules shared by every child or a topic map; empty when there is none. */
48
+ readonly notes: readonly string[];
49
+ }
50
+ export declare const createPhoenixTopicGuide: (props: PhoenixTopicGuideProps) => PhoenixGuide;
51
+ export declare const createPhoenixProcessGuide: (props: PhoenixProcessGuideProps) => PhoenixGuide;
52
+ export declare const createPhoenixFeatureGuide: (props: PhoenixFeatureGuideProps) => PhoenixGuide;
53
+ export declare const createPhoenixIndexGuide: (props: PhoenixIndexGuideProps) => PhoenixGuide;
54
+ export {};
@@ -0,0 +1,18 @@
1
+ let t=(t,e)=>`${[`# ${t}`,...e.map(t=>t.trim())].join("\n\n")}
2
+ `;export const createPhoenixTopicGuide=e=>{let{path:n,title:r,summary:i,sections:o}=e;return{path:n,title:r,summary:i,content:t(r,o)}};export const createPhoenixProcessGuide=e=>{let{path:n,title:r,summary:i,whenToUse:o,steps:a,doneWhen:c,example:s}=e;return{path:n,title:r,summary:i,content:t(r,[`## When to use
3
+
4
+ ${o.trim()}`,`## Steps
5
+
6
+ ${a.trim()}`,`## Done when
7
+
8
+ ${c.trim()}`,`## Example
9
+
10
+ ${s.trim()}`])}};export const createPhoenixFeatureGuide=e=>{let{path:n,title:r,summary:i,whenToUse:o,capabilities:a,example:c,documentation:s}=e;return{path:n,title:r,summary:i,content:t(r,[`## When to use
11
+
12
+ ${o.trim()}`,`## Capabilities and constraints
13
+
14
+ ${a.trim()}`,`## Example
15
+
16
+ ${c.trim()}`,`## Documentation
17
+
18
+ ${s.trim()}`])}};export const createPhoenixIndexGuide=e=>{let{path:n,title:r,summary:i,intro:o,guides:a,notes:c}=e,s=a.map(t=>`| [${t.title}](${((t,e)=>{let n=t.split("/").slice(0,-1),r=e.split("/"),i=0;for(;i<n.length&&i<r.length-1&&n[i]===r[i];)i+=1;return`${"../".repeat(n.length-i)}${r.slice(i).join("/")}`})(n,t.path)}) | ${t.summary} |`);return{path:n,title:r,summary:i,content:t(r,[o,["| Document | What it covers and when to read it |","| --- | --- |",...s].join("\n"),...c])}};
@@ -0,0 +1,10 @@
1
+ import { type AgentSkillReference } from './agent-skill.js';
2
+ import { type PhoenixSkillOptions } from './processes/index.js';
3
+ /** The discoverable entry point and the documents it ships beside it. */
4
+ interface PhoenixSkillBundle {
5
+ readonly content: string;
6
+ readonly references: readonly AgentSkillReference[];
7
+ }
8
+ /** Composes the required core, the processes and the feature guides into one discoverable Phoenix skill. */
9
+ export declare const generatePhoenixSkillBundle: (options: PhoenixSkillOptions) => PhoenixSkillBundle;
10
+ export {};
@@ -0,0 +1,14 @@
1
+ import{renderAgentSkill as e}from"./agent-skill.js";import{generatePhoenixCliCore as o,generatePhoenixSdkCore as t,generatePhoenixWorkflowCore as r}from"./core/index.js";import{generatePhoenixFeatureGuides as n}from"./features/index.js";import{createPhoenixIndexGuide as s}from"./guide.js";import{generatePhoenixAssetConversion as i,generatePhoenixFeedbackGuides as a,generatePhoenixFinalization as d,generatePhoenixFirstDraftGuides as c,generatePhoenixModelMigration as h,generatePhoenixOperations as l,generatePhoenixPlanning as u,generatePhoenixReviewGuides as p,generatePhoenixSpecificationGuides as m}from"./processes/index.js";export const generatePhoenixSkillBundle=f=>{let w=[r(),t(),o()],g=[c(),m(),[u()],[l(f)],[d()],[i()],[h()],p(),a()],x=s({path:"processes/index.md",title:"Processes",summary:"Procedures summarized by outcome and when to use them.",intro:"Read the procedure or section whose outcome the task needs. The [workflow](../core/workflow.md) owns strategy, preferences and effort; processes supply the execution.",guides:g.flatMap(e=>e.slice(0,1)),notes:[]}),k=n();return{content:e({name:"phoenix",description:"Build, change, inspect, deploy or review a Phoenix configurator project. Use for all Phoenix project work, including a first draft of a new project, visual alternatives and platform feedback.",sections:[`# Phoenix
2
+
3
+ Use the required core to choose how to work, then load task details only when they apply.`,`## Required reading
4
+
5
+ Before Phoenix work, read these three core guides in order:
6
+
7
+ ${w.map((e,o)=>`${o+1}. [${e.title}](${e.path}) — ${e.summary}.`).join("\n")}
8
+
9
+ The core governs every task; reading the workflow does not mean executing every stage. Reuse the core while it remains in context and unchanged, and read it again when context is lost or sync or an SDK update changes it.`,`## Optional guidance
10
+
11
+ - [Processes](processes/index.md) — procedures summarized by outcome and when to use them.
12
+ - [Features](features/index.md) — what Phoenix capabilities support, their constraints and canonical SDK documentation.
13
+
14
+ Follow only the destinations the task needs; a link does not require reading its whole subtree.`]}),references:[...w,x,...g.flat(),...k].map(({path:e,content:o})=>({path:e,content:o}))}};
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixAssetConversion: () => PhoenixGuide;
@@ -0,0 +1,23 @@
1
+ import{createPhoenixProcessGuide as e}from"../guide.js";let t=`Conversion is part of the product's appearance, not a preliminary chore: a converted model that is misplaced, incomplete or stripped of its detail is a visible defect, and the client sees it before anything else.
2
+
3
+ ### Write a script, not a sequence of one-off fixes
4
+
5
+ Convert every model with one re-runnable script, committed to the project and parameterized per model. Do not repair a file by hand. A correction discovered on the first model must be in the script before the next model is converted, or it is lost: repairs made interactively do not survive the batch that follows. Record in the project record which tool chain the script uses and what each step does, so the conversion can be rerun when a source file changes.
6
+
7
+ ### What a converted model must satisfy
8
+
9
+ - **Ground contact** — the model's lowest geometry is where the product touches the floor, and it sits at the scene's floor height without a hand-computed vertical offset. A constant that has to agree with a separately placed floor eventually disagrees with it.
10
+ - **Completeness** — every sub-assembly that belongs to the product is present, and nothing else is: no detached fragments, no parts protruding through an outer surface, no leftover rig or construction geometry.
11
+ - **Assembly** — parts that belong together are positioned together. Source files often store sub-assemblies at their own offsets; re-seat them against the part they attach to, not against the file's origin.
12
+ - **Scale and orientation** — dimensions match the published figures for that product, and the model faces the same way as every other model in the set. Report any divergence from the published figures rather than silently adopting the model's.
13
+ - **Separable materials** — parts users can configure independently carry their own materials, so a control can reach them.
14
+ - **Material class** — a part the project gives a clearcoat needs one in the converted model already. Phoenix's clearcoat overrides act on \`MeshPhysicalMaterial\`, and three.js creates that class only when the glTF declares \`KHR_materials_clearcoat\`; on a plain \`MeshStandardMaterial\` the overrides are accepted and silently do nothing. Export painted and lacquered parts with a clearcoat value, however small, so the extension is present for the override to act on.
15
+
16
+ ### Detail budget
17
+
18
+ Reduce geometry per part, never uniformly across a model. A single ratio removes almost nothing from large flat panels and destroys small curved parts, which are usually the ones nearest the camera. Keep full detail on parts that are small, curved and always visible, such as castors, handles, pulls and hinges, and spend the budget on large simple surfaces instead. After reducing, look at the affected parts at the default camera distance, not only at a distance that flatters them.
19
+
20
+ ### Verify every model, not the first one
21
+
22
+ Inspect each converted model with the [asset inspection](../features/inspection.md) tooling, and check every requirement above for every model in the set. A batch that reuses a script verified on one file still needs each result looked at: source files in one delivery frequently differ in origin, scale and structure.`,r=`- Every model in scope is converted by the committed script and inspected against each requirement.
23
+ - Divergences from published figures are reported to the client, not silently adopted.`;export const generatePhoenixAssetConversion=()=>e({path:"processes/asset-conversion.md",title:"Asset conversion",summary:"Convert and verify supplied 3D models with a reproducible script; read when supplied models need conversion or repair before configuration.",whenToUse:"When supplied models need conversion or repair before they can be configured. A [first draft](first-draft/direction.md) converts only its representative model, or builds a labeled stand-in when no model is supplied.",steps:t,doneWhen:r,example:"For a set of chairs, parameterize the conversion for the source units, the ground contact and separately configurable upholstery and frame materials. Run the same script for every supplied chair and inspect each output; a valid first model does not validate the rest."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFeedbackEvaluation: () => PhoenixGuide;
@@ -0,0 +1,39 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let t=`### Interview the client
2
+
3
+ Say first that the answers go to the Phoenix team as feedback, and that the client can decline. Then ask one question at a time, in this order, and wait for each answer before asking the next. Give the short explanation with each question. Every score is a whole number from 0 to 10, where 0 is catastrophic, 5 is passable and 10 is amazing:
4
+
5
+ 1. **Minutes spent** — roughly how many minutes the client spent on the run, from the first prompt to now. This one is a number of minutes, not a score.
6
+ 2. **Agent guidance** — how clear it was what to expect and what to do, how clearly the agent explained itself, and how well the client understood the consequences of their choices.
7
+ 3. **Functionality** — how complete the configurator is: whether it configures the full product with all its options, keeps users from creating or submitting a wrong configuration, and offers a way to finalize one.
8
+ 4. **UX** — how easy the configurator is to understand and operate, how clear the choices are, and how understandable incompatibilities and the ways to resolve them are.
9
+ 5. **3D quality** — how realistic and attractive the configured object and its scene are: shapes, textures, surroundings, lighting and shadows.
10
+ 6. **UI visuals** — how good the user interface looks.
11
+ 7. **Overall** — the client's subjective verdict on the configurator as a whole.
12
+ 8. **Comments** — anything else about the experience, in their own words. This one is free text and may be empty.
13
+
14
+ Rules of the interview:
15
+
16
+ - Ask once per conversation. Do not run it again after a later deploy, and do not run it after a deploy that failed.
17
+ - Never choose, guess or adjust a score, and never answer a question for the client. When they skip one, write \`skipped\` for it.
18
+ - When the client declines the evaluation, send nothing and do not ask again.
19
+
20
+ ### Compose the evaluation
21
+
22
+ Compose the evaluation from the answers with exactly these labels, one per line, in this order. Write \`none\` when there are no comments, and fill \`Build\` and \`Configurator\` as [Report a problem](report.md) describes:
23
+
24
+ \`\`\`text
25
+ Evaluation
26
+ Minutes spent: <minutes>
27
+ Agent guidance: <score>/10
28
+ Functionality: <score>/10
29
+ UX: <score>/10
30
+ 3D quality: <score>/10
31
+ UI visuals: <score>/10
32
+ Overall: <score>/10
33
+ Comments: <their comments, or none>
34
+ Build: <build id> <Studio build page link>
35
+ Configurator: <live configurator link>
36
+ \`\`\`
37
+
38
+ Keep the labels and their order, so the scores can be read out of the feedback list and its export. Send it with \`--type other\` through [Approve and send](send.md). An evaluation is not a bug report: when a comment names a concrete problem, offer to draft it as its own report.`,n=`- The client answered or skipped every question, or declined the evaluation.
39
+ - An accepted evaluation went through [Approve and send](send.md) with every label in order.`;export const generatePhoenixFeedbackEvaluation=()=>e({path:"processes/feedback/evaluate.md",title:"Evaluate the run",summary:"An interview of the client about the run, recorded without invented scores; read once the client has finished.",whenToUse:"When the work on the configurator is finished: the client says they are done, or `phoenix deploy` reported the configurator live and the client confirms they have nothing more to build. Ask that once after a deploy goes live, and do not start the interview while they want to continue.",steps:t,doneWhen:n,example:"When the client skips the UX score, record `UX: skipped`; when they decline the evaluation, send nothing. Use [Approve and send](send.md) only for an evaluation they accepted."});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** The feedback index followed by its procedures. */
3
+ export declare const generatePhoenixFeedbackGuides: () => readonly PhoenixGuide[];
@@ -0,0 +1 @@
1
+ import{createPhoenixIndexGuide as e}from"../../guide.js";import{generatePhoenixFeedbackEvaluation as o}from"./evaluate.js";import{generatePhoenixFeedbackReport as r}from"./report.js";import{generatePhoenixFeedbackSending as i}from"./send.js";export const generatePhoenixFeedbackGuides=()=>{let t=[r(),o(),i()];return[e({path:"processes/feedback/index.md",title:"Feedback",summary:"Run evaluations and verified Phoenix problem reports, sent only with approval; read right after `phoenix deploy` reports the configurator live, when the client finishes, or for SDK bugs, misleading guidance and missing capabilities.",intro:"Choose the outcome and load only its procedure. Sending always goes through [Approve and send](send.md).",guides:t,notes:[]}),...t]};
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFeedbackReport: () => PhoenixGuide;
@@ -0,0 +1,7 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let t=`Draft feedback for the Phoenix team when one of these happens while working in this project:
2
+
3
+ - **Bug** — the SDK, the \`phoenix\` CLI or generated code crashes, produces wrong output or behaves differently from its documentation, and the cause is not in this project's own code.
4
+ - **Misleading guidance** — a doc page, a Phoenix guide or an error message pointed the wrong way, or did not say what was needed.
5
+ - **Missing feature** — something the SDK does not support forced a workaround, or a routine task took far more steps than it should.
6
+
7
+ Do not draft feedback for problems in this project's own specs or code, for a suspicion that is not checked, or twice for the same problem. For a finished run, use [Evaluate the run](evaluate.md) instead.`;export const generatePhoenixFeedbackReport=()=>e({path:"processes/feedback/report.md",title:"Report a problem",summary:"A verified SDK bug, misleading guidance or missing capability, drafted for the Phoenix team; read when such a problem affects the work.",whenToUse:t,steps:"Write one draft per distinct problem, as plain text with the labels below, in this order, so the Phoenix team reads every report the same way. Keep every label; write `none` or `not deployed yet` where there is nothing to put.\n\n```text\nBuild: <build id> <Studio build page link>\nConfigurator: <live configurator link>\n\nWhat I was doing:\n<the task and the step you were on>\n\nWhat happened and what I expected:\n<what you ran or called, the result you got, and the result you expected>\n\nExact error or agent output:\n<the error text or the output, copied unchanged>\n\nWorkaround:\n<what you did instead, or none>\n\nConversation log:\n<the conversation condensed to the turns that matter: what the client asked, what you tried, what failed>\n```\n\n- **Build** is the latest build of this project, whose sources show the problem. `pnpm phoenix deploy` prints its id as `Build <id> started` and its page as `Follow the build in Studio: <url>`. When that line is missing, compose the link as `https://<workspace>.<studio host>/builder/deployments/<build id>`: the workspace is the one named at `phoenix login`, and the host is `studio.eu.salsita.ai` for the `eu` region, `studio.salsita.ai` for `us` and `studio-staging.salsita.app` for staging. A Studio address passed to login with `--studioUrl` replaces the workspace and host. Never invent a build id: when the project was not deployed, write `not deployed yet`.\n- **Configurator** is the live address `pnpm phoenix deploy` prints once the build is live.\n- The team downloads the build's sources from its Studio page, so do not paste whole files; quote only the lines that show the problem.\n- Quote errors and output exactly. A report that paraphrases an error cannot be searched for.\n- Condense the conversation log rather than dumping it: keep the client's requests, the decisions and the failures, and leave out tool output the other sections already carry.\n\nThen follow [Approve and send](send.md).",doneWhen:"- Each distinct, verified problem has one draft with every label filled or marked `none`.\n- The drafts went through [Approve and send](send.md).",example:"When `pnpm phoenix variants` rejects a script that only edits `src/elements/`, confirm the script follows the documented contract, then draft a bug with the exact rejection message, the script's relevant lines and `not deployed yet` for the build."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFeedbackSending: () => PhoenixGuide;
@@ -0,0 +1,2 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let n=`- The client saw the exact text and approved it, and it was sent from a file or as a short argument; or the client declined and nothing was sent.
2
+ - The sending is confirmed to the client in one line.`;export const generatePhoenixFeedbackSending=()=>e({path:"processes/feedback/send.md",title:"Approve and send",summary:"Showing the exact payload, redacting excluded data and sending only after approval; read before sending any feedback.",whenToUse:"Before sending any feedback: a [problem report](report.md) or an [evaluation](evaluate.md).",steps:"### Ask before sending\n\nNever send feedback on your own. Show the client a draft and send it only after they approve it. When to ask is a judgement:\n\n- **Right away** — the problem is crucial: it blocks the task or forces a workaround the client should know about now. Interrupt the work, show the draft and continue once the client has answered.\n- **At the end of the task** — everything else. Collect the details while working and show all drafts together in the final message.\n- **When the client asks** to send feedback — draft it and show it before sending.\n\nThe draft is exactly what would be sent: the type, the full message, the project if `--projectSlug` names one, and the contact if the client gave one. Send it unchanged after a yes; when the client edits it, send their version. When they decline, drop it and do not raise that problem again.\n\n### Send it\n\nWrite a report or an evaluation to a text file and send the file, so the shell changes nothing in it:\n\n```bash\npnpm phoenix feedback --file <path> --type bug --agent '<your agent name>'\n```\n\nPut the file outside the project, in the system's temporary folder, and delete it after sending. A note of a line or two can go in as an argument instead:\n\n```bash\npnpm phoenix feedback '<message>' --type idea --agent '<your agent name>'\n```\n\n- Give either `--file` or the message argument, never both.\n- Put a message argument in single quotes, so the shell passes backticks, `$` and double quotes through unchanged. In bash or zsh, write a single quote inside the message as `'\\''`; in PowerShell, double it instead.\n- `--type` is `bug`, `idea` or `other` (default `other`). Use `idea` for a missing feature or an improvement, and `other` for an evaluation.\n- `--agent` names the coding agent, so the team can tell agent feedback from a person's.\n- `--contact '<email>'` only when the client wants a reply and gave the contact to use.\n- The workspace, user, SDK version and the spec's `project` are attached automatically. `--projectSlug <slug>` names another project of the workspace.\n- A message holds at most 100,000 characters. Shorten the conversation log first when a report is longer.\n\nThe command needs `phoenix login`. When it answers that the CLI is not signed in, tell the client once and continue; do not sign in on their behalf, because the sign-in is approved in a browser. After sending, confirm it to the client in one line.\n\n### What never goes into feedback\n\nThe message leaves this project and is read by the Phoenix team. Never include:\n\n- secrets and credentials: API tokens, keys, passwords or `.env` values, also when they appear inside a quoted error or log. Replace each with `<redacted>`;\n- personal data, or data of the project's customers and end users, such as names, email addresses and orders, other than a contact the client asked to add.\n\nParts of this project may go into a message: file names and paths, snippets of its specs and code, and the client's own words. They are sent only as part of a draft the client saw and approved, which is why the draft shown is always the full text.",doneWhen:n,example:"At the end of a task, show the client two drafted reports in the final message. They approve the first and decline the second; send the first from a temporary file with `--type bug`, delete the file, confirm in one line, and never raise the second problem again."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixFinalization: () => PhoenixGuide;
@@ -0,0 +1,2 @@
1
+ import{createPhoenixProcessGuide as e}from"../guide.js";let a=`- Each agreed action works end to end in the preview, and its success and failure paths are visible.
2
+ - Real messages or orders were sent only with the client's authorization.`;export const generatePhoenixFinalization=()=>e({path:"processes/finalization.md",title:"Finalization",summary:"Implement the agreed completion journey: summary PDFs, emails, sharing, quotes, orders or other integrations; read when a configuration needs an ending or an integration.",whenToUse:"When the configuration journey needs an ending: saving, sharing, a summary PDF, an email, a quote, an order or another integration. A [first draft](first-draft/build.md) uses it for its summary PDF and email.",steps:"1. Agree what completing means: what is collected, what is submitted and where, what the configurator user receives, and how progress, success, failure and recovery look. Discover requirements early when they affect earlier design decisions, and implement them here.\n2. Declare each completion as a `finalizeAction` component with `variant` `primary` or `secondary` and a handler registered with `phx.frontend.createPhoenixHandler`. Render the actions in the project layout with `phx.frontend.useFinalizeActions()`, as [Custom project layout](../features/custom-layout.md) describes.\n3. Implement the server side in the project webhook with `withConfiguratorFinalize`, chaining the tasks the [SDK core](../core/sdk.md#webhooks-and-finalization) lists, such as `GenerateConfigurationLink`, `GeneratePdf` or `GenerateStaticPdf`, and `SendEmail`, and return the result in the callback. Images rendered by the configurator, described in `docs/other-features/client-side-rendering/declarative.mdx`, embed in PDFs and emails without server rendering.\n4. Test payloads and outcomes, including a failed delivery, without sending real messages or creating real orders unless the client authorizes it. Keep unfinished rules and provisional prices identifiable, so nothing produces a misleading real quote or order.",doneWhen:a,example:"For a summary with email: the primary action generates a configuration link and two configurator renders, builds a branded PDF and offers it for download; the secondary action opens a form for an email address and sends the same PDF and images. Test the email with the client's own address after they agree, and a failed delivery with an invalid one."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFirstDraftBuild: () => PhoenixGuide;
@@ -0,0 +1,23 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let t=`### Keep the scope small
2
+
3
+ Implement one representative product with a few options, for example three finishes and one size choice, working end to end in the chosen layout and branding. Prefer one working path to a screen of inactive controls. Keep everything else in the product definition as remaining scope, and keep unconfirmed prices visibly provisional. Use reversible defaults and keep going; list them at the handoff instead of asking now.
4
+
5
+ ### Brand the first moments
6
+
7
+ - **Preset screen** — replace it with \`phx.frontend.createPresetUi()\` in the chosen branding, offering two or three meaningful starting configurations with thumbnails. \`pnpm phoenix screenshot\` captures only the state the preview shows, so open each preset in the preview with browser automation before capturing it; without automation, use a branded placeholder and say so at the handoff. Keep the preview-mode branch of the SDK example \`docs/layouts/presets/custom.mdx\`, read with \`pnpm phoenix docs -r <path>\`.
8
+ - **App loader** — replace the loading overlay's content with \`phx.frontend.createAppLoader()\`: the logo, a short brand animation and progress from the loading phases.
9
+
10
+ ### Add finalization
11
+
12
+ Add two \`finalizeAction\` components with their handlers, following [Finalization](../finalization.md):
13
+
14
+ - **Primary** — download a branded summary PDF of the configuration with images rendered from the configurator, the chosen options and the price, marked provisional while it is.
15
+ - **Secondary** — an email form that sends the same PDF and images to the address the configurator user enters.
16
+
17
+ Test the PDF in the running preview. Send a test email only to an address the client gives, after their yes; until then, report the email action as untested.
18
+
19
+ ### Check before presenting
20
+
21
+ Exercise the representative path once in the preview: the preset screen, the loader, every option and both finalization actions, at desktop and phone width. Fix what is broken. This is the quick look of the first draft, not a review process.`,n=`- The preset screen, loader, options and both finalization actions work in the running preview, in the chosen branding and layout.
22
+ - The summary PDF downloads with configuration images; the email action is tested or explicitly waiting for an address.
23
+ - Remaining scope and provisional items are recorded in the product definition and the project record.`;export const generatePhoenixFirstDraftBuild=()=>e({path:"processes/first-draft/build.md",title:"Build",summary:"A limited end-to-end configurator in the chosen branding and UX, with a branded preset screen, app loader, summary PDF and email; read once the layout is chosen.",whenToUse:"After [Direction](direction.md), once the client chose the branding and the layout. It ends with a working draft ready to present.",steps:t,doneWhen:n,example:"For the lounge chair: three upholstery colors and two leg finishes in the bottom-sheet layout, a preset screen offering a classic, a bold and a quiet starting chair, a loader that draws the logo, a branded PDF with a front and a side render, and an email form. The client's own address receives the test email after they agree."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFirstDraftDirection: () => PhoenixGuide;
@@ -0,0 +1,26 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let t=`### Intake
2
+
3
+ Use what the client already supplied. When it is enough to start, ask nothing: summarize the product as you understood it in two or three sentences and continue. When nothing was supplied, send one compact message asking for whatever exists, all optional: what the product is, who will use the configurator, the brand's website, logo or colors, and any 3D models, photos or drawings. Continue with whatever arrives; do not start a second round of questions.
4
+
5
+ When a website is given, take the colors, typography, logo and tone from it instead of asking the client to describe their brand. Write what is known into a first [product definition](../specification/product-definition.md) and mark what is provisional; its PDF is rendered once, at the handoff. Prices, rules and the full product range wait for normal mode.
6
+
7
+ ### Branding options
8
+
9
+ Prepare three branding options as standalone HTML pages in one [Variants](../../features/variants.md) set, each a one-page brand sheet with the content [Branding](../specification/branding.md) lists. With an existing brand, the options interpret it for a configurator, for example faithful, bolder and quieter; they never replace it. Without one, make three genuinely different directions that suit the product and its users. Run the set with \`--keep\`, so the chosen page remains to build from.
10
+
11
+ Save the chosen page as the branding source, render its PDF, apply the brand to the Phoenix theme and remove the variants folder.
12
+
13
+ ### Sample scene
14
+
15
+ Show the representative product with a minimal domain: its entity and one or two real options, enough for the layout options to show working controls.
16
+
17
+ - **Supplied model** — convert only the representative model now, following [Asset conversion](../asset-conversion.md); the rest waits for normal mode.
18
+ - **No model** — build a stand-in with three.js primitives exported to glTF, or with Blender when it is installed. Match the proportions of any photo or drawing, give each configurable part its own material, rest it on the floor and tell the client it is a stand-in.
19
+
20
+ Set materials, lighting, background and camera framing in the chosen brand, and look at the result in the preview before moving on.
21
+
22
+ ### Layout options
23
+
24
+ Prepare three distinct custom layouts as variant scripts over the live scene, each writing a complete \`ConfiguratorLayout\` as [Custom project layout](../../features/custom-layout.md) describes. Make them differ in structure, not only in color: for example a sidebar, a bottom sheet with in-scene controls and a guided stepper. Start from the layout gallery in the SDK documentation rather than from scratch: \`pnpm phoenix docs -l\` lists its \`docs/layouts/gallery/\` pages and \`pnpm phoenix docs -r <path>\` reads one. Keep the canvas, safe-area, message and read-mode wiring of its examples. Every option uses the chosen branding and the same working controls.
25
+
26
+ Run the set; the chosen script's edits stay in the project. Write the [UX guidelines](../specification/ux-guidelines.md) from the chosen layout and render their PDF.`;export const generatePhoenixFirstDraftDirection=()=>e({path:"processes/first-draft/direction.md",title:"Direction",summary:"Intake, three branding options, a sample scene and three layout options, ending with the chosen branding and UX guidelines; read at the start of a first draft.",whenToUse:"At the start of a first draft, once [Project operations](../operations.md) has the preview running. It ends when the client has chosen a branding and a layout and the UX guidelines record the choice.",steps:t,doneWhen:"- The client chose a branding option and a layout option, and both are applied in the running preview.\n- The branding and UX guideline sources are in `.phoenix/workspace/specification/`, with their PDFs in `docs/`.\n- The sample scene shows the representative product, or a labeled stand-in, responding to at least one real option.\n- A first product definition records what is known and what is provisional.",example:"A client sends the website of their furniture brand and a photo of a lounge chair, without a model. Summarize the chair, offer three brand sheets that interpret their site, build a stand-in chair from primitives with separate seat and frame materials, and offer a sidebar, a bottom-sheet and a stepper layout over it. The client picks the bolder brand sheet and the bottom sheet; the UX guidelines then describe the bottom-sheet patterns."});
@@ -0,0 +1,3 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ /** The first-draft index followed by its stages, in the order they run. */
3
+ export declare const generatePhoenixFirstDraftGuides: () => readonly PhoenixGuide[];
@@ -0,0 +1,3 @@
1
+ import{createPhoenixIndexGuide as e}from"../../guide.js";import{generatePhoenixFirstDraftBuild as t}from"./build.js";import{generatePhoenixFirstDraftDirection as o}from"./direction.js";import{generatePhoenixFirstDraftHandoff as n}from"./handoff.js";export const generatePhoenixFirstDraftGuides=()=>{let r=[o(),t(),n()];return[e({path:"processes/first-draft/index.md",title:"First draft",summary:"A fast, convincing first version of a new project: chosen branding and UX, a sample product, real finalization and an offer to deploy; read only for a new project, never for an existing one.",intro:`The first thing a new client sees. In one short sitting, deliver a branded, working configurator with a chosen look and UX, a sample of the product and real finalization, ready to deploy as a first live version. Use it only for a new project; an existing project continues in normal mode.
2
+
3
+ Speed is part of the quality. Run no review processes, and ask the client to choose only three things: a branding option, a layout option and whether to deploy. Everything else uses reversible defaults, stated at the handoff. Read the stages in order, and note in the project record which stage the draft reached, so a resumed session continues the draft instead of switching to normal mode; the handoff marks the draft complete.`,guides:r,notes:[]}),...r]};
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixFirstDraftHandoff: () => PhoenixGuide;
@@ -0,0 +1,7 @@
1
+ import{createPhoenixProcessGuide as e}from"../../guide.js";let t=`1. Render the product definition PDF from its current source, then present the draft in the preview: what the client can try, what is provisional, such as a stand-in model or prices, and which documents are in \`docs/\`. List the reversible defaults chosen while building.
2
+ 2. Ask whether they like it and what they would change first. Fix small requests now; record larger ones for the plan.
3
+ 3. Offer to deploy it as a first live version with [Project operations](../operations.md), and deploy only after a yes and its transcript consent. When this workspace deployed the starter model before, follow [Model migration](../model-migration.md) first.
4
+ 4. Ask once about the [preferences](../../core/workflow.md#preferences), with a recommendation, and record the answers.
5
+ 5. Recommend the next step in terms of the client's product, usually bringing in the rest of the range or the rules that [Planning](../planning.md) prepares, with one or two alternatives.`,r=`- The client has seen the draft and answered whether to deploy; the deploy went live or was declined.
6
+ - The client's reactions and preferences are recorded in the project record, which marks the first draft complete.
7
+ - The client knows the recommended next step, and the project continues in normal mode.`;export const generatePhoenixFirstDraftHandoff=()=>e({path:"processes/first-draft/handoff.md",title:"Handoff",summary:"Present the draft, offer a first live deployment, agree preferences and move to normal mode; read when the build works.",whenToUse:"When the first-draft [Build](build.md) works. The handoff ends the first draft; the project continues in normal mode, deployed or not.",steps:t,doneWhen:r,example:'"Here is your first draft: try the presets, change the upholstery and download the summary PDF. The chair is a stand-in until we have your model. Do you like the direction? I can deploy it now as your first live version. From here on, should I favor fast, lean steps or more thorough checks that take longer and cost more?"'});
@@ -0,0 +1,9 @@
1
+ export * from './first-draft/index.js';
2
+ export * from './specification/index.js';
3
+ export * from './planning.js';
4
+ export * from './operations.js';
5
+ export * from './finalization.js';
6
+ export * from './asset-conversion.js';
7
+ export * from './model-migration.js';
8
+ export * from './review/index.js';
9
+ export * from './feedback/index.js';
@@ -0,0 +1 @@
1
+ export*from"./first-draft/index.js";export*from"./specification/index.js";export*from"./planning.js";export*from"./operations.js";export*from"./finalization.js";export*from"./asset-conversion.js";export*from"./model-migration.js";export*from"./review/index.js";export*from"./feedback/index.js";
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixModelMigration: () => PhoenixGuide;
@@ -0,0 +1 @@
1
+ import{createPhoenixProcessGuide as e}from"../guide.js";export const generatePhoenixModelMigration=()=>e({path:"processes/model-migration.md",title:"Model migration",summary:"Preserve deployed model versions and migrate saved configurations; read when changing a domain model that has already been deployed.",whenToUse:"When changing a domain model that has already been deployed, including replacing a deployed starter model after a [first draft](first-draft/handoff.md).",steps:"A deployed model version cannot change, because saved configurations depend on it. `pnpm phoenix deploy` is refused, before anything is uploaded, when the model differs from the one already deployed under the same version. The version is not written anywhere: `model.latest` is always the highest numbered version plus one, so a spec with only `latest` is v1, and `applicationVersion` plays no part. `pnpm phoenix dev` accepts every model change, so a working preview does not show that the deploy will pass.\n\n### Change a deployed model\n\nTo change a model that has been deployed as v<N>:\n\n1. Keep the deployed model, unchanged, as `model.v<N>` in the spec. A file of its own, such as `spec/model-v<N>.yaml`, keeps `latest` readable.\n2. Make the change in `model.latest`, which is now v<N+1>.\n3. Add `src/migrations/v<N+1>.ts` exporting `migrateToV<N+1>`. It receives the saved entities of v<N> and returns entities that are valid in v<N+1>; `ModelV<N>` and `ModelV<N+1>` are generated global namespaces.\n\nThe admin model is versioned on its own, under `src/admin/migrations/`, with its types in `AdminV<N>`.\n\n### Replace the starter\n\nWhen the first deployment of the workspace was the starter, its `Box` model is v1 in production. When the real model replaces it, keep the starter's model as `model.v1` and define the real model in `latest`. Configurations saved from the starter are not worth converting, so the migration returns the starting state of the new model, the `initialDomainEntities` of its preset, and drops the boxes:\n\n```typescript\n// src/migrations/v2.ts\nimport type { Migration } from '@salsita-ai/sdk/domain'\n\nexport const migrateToV2: Migration<ModelV1.AnyDomainEntity, ModelV2.AnyDomainEntity> = () => [\n // the entities of the new model's preset\n]\n```\n\nAn entity of a type the new version no longer has must not stay in the returned state. An entity id starts with its type (`Box-1`), so an entity that keeps its data under a new type name needs a new id, and every relation pointing at it rewritten. Read `docs/phoenix/migrations.mdx` with `pnpm phoenix docs -r docs/phoenix/migrations.mdx` before writing any other migration.",doneWhen:"- The deployed model is kept unchanged under its version, the change is in `model.latest`, and a migration converts saved configurations.\n- A configuration saved with the previous version loads after the change.",example:"When a deployed starter `Box` model is replaced by a chair, keep the starter as `model.v1`, make the chair model `latest` (v2) and implement `migrateToV2` returning the chair preset's entities. Load a configuration saved from the starter to verify that it opens as the default chair."});
@@ -1,3 +1,4 @@
1
+ import { type PhoenixGuide } from '../guide.js';
1
2
  export interface PhoenixSkillOptions {
2
3
  readonly checkLatestCanary: boolean;
3
4
  }
@@ -10,4 +11,4 @@ export declare const followsCanaryBuilds: (project: {
10
11
  readonly useWorkspace: boolean;
11
12
  readonly sdkVersion: string;
12
13
  }) => boolean;
13
- export declare const generatePhoenixSkill: ({ checkLatestCanary }: PhoenixSkillOptions) => string;
14
+ export declare const generatePhoenixOperations: ({ checkLatestCanary }: PhoenixSkillOptions) => PhoenixGuide;
@@ -0,0 +1,2 @@
1
+ import{createPhoenixProcessGuide as e}from"../guide.js";export const followsCanaryBuilds=e=>!e.useWorkspace&&e.sdkVersion.includes("-develop.");export const generatePhoenixOperations=({checkLatestCanary:t})=>e({path:"processes/operations.md",title:"Project operations",summary:`Keep the live preview open and deploy with transcript consent and a Studio link${t?", and keep this canary project on the newest SDK build":""}; read before the first change in a conversation and when deploying.`,whenToUse:`Before the first change in a conversation, to keep the preview in front of the client, and whenever the project is deployed.${t?" This canary project also checks for a newer SDK build once per conversation.":""}`,steps:[...t?["### Stay on the latest canary\n\nDuring the internal beta this project uses the `canary` build of the SDK, which is published from every change to the platform. Once per conversation, before changing anything, compare the installed version, the `version` in `node_modules/@salsita-ai/sdk/package.json`, with the newest canary:\n\n```bash\nnpm view @salsita-ai/sdk@canary version\n```\n\nWhen they differ, tell the client which version the project moves to, then update the SDK, bring the packages it needs in line and regenerate the project files:\n\n```bash\npnpm add @salsita-ai/sdk@canary && pnpm phoenix deps && pnpm install && pnpm phoenix sync\n```\n\nSync rewrites the Phoenix skills, so read the guides in use again afterwards. When the client runs a globally installed `phoenix`, update it too with `npm install -g @salsita-ai/sdk@canary`. When the project no longer builds after the update, stop, tell the client and report it with [Feedback](feedback/index.md)."]:[],"### Keep the preview open\n\nThe client should see the configurator change while it is built. Before the first change in a conversation, make sure `pnpm phoenix dev` is running, starting it in the background when it is not, and open the address it prints as `Preview: <url>`, also written to `.phoenix/phoenix-dev.log`, in the client's browser: `open '<url>'` on macOS, `xdg-open '<url>'` on Linux, `Start-Process '<url>'` in PowerShell, `start \"\" \"<url>\"` in cmd. Keep the quotes; the shell would otherwise read a `?` in the address as a pattern. The log keeps the lines of earlier runs, so after starting dev, wait for the `Preview:` line written after the start and use the last one.\n\nOpen it once: the preview reloads on every change, so tell the client to keep that tab open instead of opening it again. A domain model change is the exception. `pnpm phoenix dev` registers the model with the server only when it starts, and after the change it logs an error that asks for a restart. Restart it, wait for the new `Preview:` line and open that address in place of the old tab, whose `?cid=` names a configuration saved with the earlier model, which the new model rejects.","### Prepare the transcript\n\nImmediately before running `pnpm phoenix deploy`, refresh `conversation.log` in the project root with the current conversation. Prefer the agent application's native session export when available; do not invent an export command or scan unrelated sessions. Otherwise write the messages still available in context and label the log `reconstructed; incomplete`. Never present a compaction summary as verbatim earlier messages.\n\nUse UTF-8 text with a header naming the agent, export time, source (native export or reconstructed), covered session and known omissions. Preserve the client's and the agent's messages in chronological order, plus tool names, arguments and results when available. Keep each tool result to at most 16 KiB of text and mark truncation explicitly; describe image attachments by reference rather than embedding binary or base64 data, and mark references whose files are not uploaded. Exclude internal instructions, hidden reasoning, credentials and unrelated sensitive content; mark redactions without repeating the removed content. Refresh the current session's log rather than appending duplicate copies or silently carrying over a previous session.\n\nShow the client the exact file to review or redact, and get their approval to include it before deploying; do not ask again once they approved that file. When they decline, move it out of the project root before deploying so it cannot be collected. Deploy includes the file in the build's private source archive, downloadable by those authorized to download that build's sources, and leaves it out of build inputs. A missing log warns but does not block deployment. The CLI does not export, redact or check the completeness of the transcript.","### Deploy and follow the build\n\n`pnpm phoenix deploy` starts a build on the server and waits for it to go live. Right after `Build <id> started` it prints `Follow the build in Studio: <url>`. Run the deploy so its output can be read while it runs, and open that link in the client's browser, quoted as above, as soon as it appears, so they can follow the build. When the line is missing, the sign-in predates the link: tell the client the build is listed under Deployments in Studio, and that `pnpm phoenix login <workspace>` brings the link back.\n\nWhen the deploy reports the configurator live, read [Feedback](feedback/index.md) before writing the final message and follow its evaluation procedure, so the client is asked about the run while they are still there. It is asked once per conversation, and only once the client has nothing more to build."].join("\n\n"),doneWhen:`- The preview runs and is open in the client's browser while work continues.
2
+ - A deploy went live with its Studio link shown, or its failure is reported with the next step.`,example:"Before changing a finish, start `pnpm phoenix dev` in the background and open the printed preview address once. To deploy, refresh `conversation.log`, show it to the client for approval, run `pnpm phoenix deploy` and open the Studio link as soon as it is printed."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../guide.js';
2
+ export declare const generatePhoenixPlanning: () => PhoenixGuide;
@@ -0,0 +1,5 @@
1
+ import{createPhoenixProcessGuide as e}from"../guide.js";let t=`1. Complete the specification for the full agreed scope: extend the [product definition](specification/product-definition.md), add [catalogs](specification/catalog.md) when components are numerous, and add the experience structure to the [UX guidelines](specification/ux-guidelines.md). An existing project without a specification derives its product definition from the implemented configurator and the client's materials; write branding and UX guidelines from the existing implementation only when the client agrees or the planned work needs them.
2
+ 2. Write \`.phoenix/workspace/plan.md\`: ordered increments, each with its outcome, acceptance checks and dependencies; deferred scope; and each open business question beside the increment that needs its answer.
3
+ 3. Order the increments by what users decide first and by real product dependencies. Put core interactions before more options, and finalization after the configuration it submits is stable.
4
+ 4. Present the plan in product language with a recommended first increment, and agree it before building out. Unanswered business questions do not block the plan; they wait at the increment that needs them.
5
+ 5. Keep the plan current as increments land, feedback arrives or the scope changes.`;export const generatePhoenixPlanning=()=>e({path:"processes/planning.md",title:"Planning",summary:"Complete the specification for the full scope and agree an ordered implementation plan; read when normal mode starts without an agreed plan or the scope changes substantially.",whenToUse:"When normal mode starts without an agreed plan, usually right after a first draft, and when the client changes the scope substantially. An isolated fix needs no plan.",steps:t,doneWhen:"- The specification covers the full agreed scope, with unknowns marked.\n- `.phoenix/workspace/plan.md` lists ordered increments with acceptance checks, and the client agreed the first one.",example:"For an office furniture range after its first draft: increment 1 adds the remaining chair models, 2 adds desks with width and height rules, 3 adds pricing once the price list arrives, and 4 replaces the first-draft email with the quote request the sales team needs. The plan notes that desk-leg compatibility is unknown and needed by increment 2."});
@@ -0,0 +1,2 @@
1
+ import { type PhoenixGuide } from '../../guide.js';
2
+ export declare const generatePhoenixAppearanceReview: () => PhoenixGuide;