@superblocksteam/vite-plugin-file-sync 2.0.18-next.8 → 2.0.18

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 (245) hide show
  1. package/dist/ai-service/app-interface/source-tracker.d.ts +9 -2
  2. package/dist/ai-service/app-interface/source-tracker.d.ts.map +1 -1
  3. package/dist/ai-service/app-interface/source-tracker.js +22 -4
  4. package/dist/ai-service/app-interface/source-tracker.js.map +1 -1
  5. package/dist/ai-service/artifacts/bolt.js +4 -4
  6. package/dist/ai-service/artifacts/bolt.js.map +1 -1
  7. package/dist/ai-service/context/app-context.d.ts +37 -0
  8. package/dist/ai-service/context/app-context.d.ts.map +1 -0
  9. package/dist/ai-service/context/app-context.js +205 -0
  10. package/dist/ai-service/context/app-context.js.map +1 -0
  11. package/dist/ai-service/evals/content-matchers/index.d.ts +1 -0
  12. package/dist/ai-service/evals/content-matchers/index.d.ts.map +1 -1
  13. package/dist/ai-service/evals/content-matchers/index.js +8 -0
  14. package/dist/ai-service/evals/content-matchers/index.js.map +1 -1
  15. package/dist/ai-service/evals/helpers/critical-scorers.d.ts +10 -0
  16. package/dist/ai-service/evals/helpers/critical-scorers.d.ts.map +1 -0
  17. package/dist/ai-service/evals/helpers/critical-scorers.js +331 -0
  18. package/dist/ai-service/evals/helpers/critical-scorers.js.map +1 -0
  19. package/dist/ai-service/evals/helpers/eval-scoring.d.ts +76 -12
  20. package/dist/ai-service/evals/helpers/eval-scoring.d.ts.map +1 -1
  21. package/dist/ai-service/evals/helpers/eval-scoring.js +155 -235
  22. package/dist/ai-service/evals/helpers/eval-scoring.js.map +1 -1
  23. package/dist/ai-service/evals/helpers/index.d.ts +34 -3
  24. package/dist/ai-service/evals/helpers/index.d.ts.map +1 -1
  25. package/dist/ai-service/evals/helpers/index.js +147 -22
  26. package/dist/ai-service/evals/helpers/index.js.map +1 -1
  27. package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts +6 -0
  28. package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts.map +1 -0
  29. package/dist/ai-service/evals/helpers/non-critical-scorers.js +187 -0
  30. package/dist/ai-service/evals/helpers/non-critical-scorers.js.map +1 -0
  31. package/dist/ai-service/evals/helpers/scorer-types.d.ts +39 -0
  32. package/dist/ai-service/evals/helpers/scorer-types.d.ts.map +1 -0
  33. package/dist/ai-service/evals/helpers/scorer-types.js +19 -0
  34. package/dist/ai-service/evals/helpers/scorer-types.js.map +1 -0
  35. package/dist/ai-service/evals/llm-provider.d.ts +2 -0
  36. package/dist/ai-service/evals/llm-provider.d.ts.map +1 -0
  37. package/dist/ai-service/evals/llm-provider.js +9 -0
  38. package/dist/ai-service/evals/llm-provider.js.map +1 -0
  39. package/dist/ai-service/index.d.ts +10 -1
  40. package/dist/ai-service/index.d.ts.map +1 -1
  41. package/dist/ai-service/index.js +85 -11
  42. package/dist/ai-service/index.js.map +1 -1
  43. package/dist/ai-service/integrations/from-prompt-context.js +1 -1
  44. package/dist/ai-service/integrations/from-prompt-context.js.map +1 -1
  45. package/dist/ai-service/integrations/store.d.ts +3 -5
  46. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  47. package/dist/ai-service/integrations/store.js +5 -13
  48. package/dist/ai-service/integrations/store.js.map +1 -1
  49. package/dist/ai-service/llm/impl/anthropic.d.ts +3 -0
  50. package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -0
  51. package/dist/ai-service/llm/impl/anthropic.js +42 -0
  52. package/dist/ai-service/llm/impl/anthropic.js.map +1 -0
  53. package/dist/ai-service/llm/provider.d.ts +3 -0
  54. package/dist/ai-service/llm/provider.d.ts.map +1 -0
  55. package/dist/ai-service/llm/provider.js +30 -0
  56. package/dist/ai-service/llm/provider.js.map +1 -0
  57. package/dist/ai-service/llm/types.d.ts +15 -0
  58. package/dist/ai-service/llm/types.d.ts.map +1 -0
  59. package/dist/ai-service/llm/types.js +2 -0
  60. package/dist/ai-service/llm/types.js.map +1 -0
  61. package/dist/ai-service/llm/utils.d.ts +9 -0
  62. package/dist/ai-service/llm/utils.d.ts.map +1 -0
  63. package/dist/ai-service/llm/utils.js +49 -0
  64. package/dist/ai-service/llm/utils.js.map +1 -0
  65. package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts.map +1 -1
  66. package/dist/ai-service/prompt-builder-service/builders/code-generation.js +74 -42
  67. package/dist/ai-service/prompt-builder-service/builders/code-generation.js.map +1 -1
  68. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts +13 -0
  69. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts.map +1 -0
  70. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js +71 -0
  71. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js.map +1 -0
  72. package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts +13 -0
  73. package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts.map +1 -0
  74. package/dist/ai-service/prompt-builder-service/builders/specific-edits.js +71 -0
  75. package/dist/ai-service/prompt-builder-service/builders/specific-edits.js.map +1 -0
  76. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts +23 -0
  77. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts.map +1 -0
  78. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +108 -0
  79. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -0
  80. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts +2 -2
  81. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts.map +1 -1
  82. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js +56 -29
  83. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js.map +1 -1
  84. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts +3 -1
  85. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts.map +1 -1
  86. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js +36 -3
  87. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js.map +1 -1
  88. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts +1 -1
  89. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts.map +1 -1
  90. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +2 -2
  91. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js.map +1 -1
  92. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  93. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts +1 -1
  94. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts.map +1 -1
  95. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +2 -2
  96. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js.map +1 -1
  97. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts +1 -1
  98. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts.map +1 -1
  99. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +2 -2
  100. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js.map +1 -1
  101. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts +1 -1
  102. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts.map +1 -1
  103. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +2 -2
  104. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js.map +1 -1
  105. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  106. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  107. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts +1 -1
  108. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts.map +1 -1
  109. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +2 -2
  110. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js.map +1 -1
  111. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts +1 -1
  112. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts.map +1 -1
  113. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +2 -2
  114. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js.map +1 -1
  115. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts +1 -1
  116. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts.map +1 -1
  117. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +2 -2
  118. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js.map +1 -1
  119. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  120. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  121. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts +1 -1
  122. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts.map +1 -1
  123. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +2 -2
  124. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js.map +1 -1
  125. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  126. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts +1 -1
  127. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts.map +1 -1
  128. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +2 -2
  129. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js.map +1 -1
  130. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts +1 -1
  131. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts.map +1 -1
  132. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +2 -2
  133. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js.map +1 -1
  134. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  135. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  136. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  137. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts +1 -1
  138. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts.map +1 -1
  139. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +2 -2
  140. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js.map +1 -1
  141. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts +2 -0
  142. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts.map +1 -1
  143. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js +2 -0
  144. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js.map +1 -1
  145. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts +1 -1
  146. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts.map +1 -1
  147. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +2 -2
  148. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js.map +1 -1
  149. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  150. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  151. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  152. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  153. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  154. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  155. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  156. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  157. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  158. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  159. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming.js +1 -1
  160. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  161. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts +2 -0
  162. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts.map +1 -0
  163. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +6 -0
  164. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js.map +1 -0
  165. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts +2 -0
  166. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts.map +1 -0
  167. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +6 -0
  168. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js.map +1 -0
  169. package/dist/ai-service/prompt-builder-service/types.d.ts +21 -7
  170. package/dist/ai-service/prompt-builder-service/types.d.ts.map +1 -1
  171. package/dist/ai-service/prompt-builder-service/types.js +10 -1
  172. package/dist/ai-service/prompt-builder-service/types.js.map +1 -1
  173. package/dist/ai-service/result-buffer/bolt.js +2 -2
  174. package/dist/ai-service/result-buffer/bolt.js.map +1 -1
  175. package/dist/ai-service/state-machine/clark-fsm.d.ts +10 -2
  176. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  177. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  178. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  179. package/dist/ai-service/state-machine/handlers/agent-planning.js +51 -11
  180. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  181. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +1 -1
  182. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  183. package/dist/ai-service/state-machine/handlers/llm-generating.js +226 -231
  184. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  185. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +1 -1
  186. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -1
  187. package/dist/ai-service/state-machine/handlers/post-processing.js +56 -3
  188. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
  189. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts +1 -1
  190. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts.map +1 -1
  191. package/dist/ai-service/test-utils/anthropic-service-mock.js +9 -1
  192. package/dist/ai-service/test-utils/anthropic-service-mock.js.map +1 -1
  193. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +1 -1
  194. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -1
  195. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +80 -38
  196. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -1
  197. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +1 -1
  198. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -1
  199. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +9 -3
  200. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -1
  201. package/dist/ai-service/transform/shared.d.ts.map +1 -1
  202. package/dist/ai-service/transform/shared.js +1 -5
  203. package/dist/ai-service/transform/shared.js.map +1 -1
  204. package/dist/ai-service/types.d.ts +1 -1
  205. package/dist/ai-service/types.d.ts.map +1 -1
  206. package/dist/components-manager.d.ts +1 -1
  207. package/dist/components-manager.d.ts.map +1 -1
  208. package/dist/components-manager.js +81 -18
  209. package/dist/components-manager.js.map +1 -1
  210. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  211. package/dist/file-sync-vite-plugin.js +50 -11
  212. package/dist/file-sync-vite-plugin.js.map +1 -1
  213. package/dist/file-system-manager.d.ts.map +1 -1
  214. package/dist/file-system-manager.js +2 -1
  215. package/dist/file-system-manager.js.map +1 -1
  216. package/dist/refactor/javascript.d.ts.map +1 -1
  217. package/dist/refactor/javascript.js +19 -2
  218. package/dist/refactor/javascript.js.map +1 -1
  219. package/dist/rename-manager.d.ts +2 -1
  220. package/dist/rename-manager.d.ts.map +1 -1
  221. package/dist/rename-manager.js +8 -6
  222. package/dist/rename-manager.js.map +1 -1
  223. package/dist/sb-scope-manager.d.ts.map +1 -1
  224. package/dist/sb-scope-manager.js +19 -0
  225. package/dist/sb-scope-manager.js.map +1 -1
  226. package/dist/socket-manager.d.ts.map +1 -1
  227. package/dist/socket-manager.js +5 -0
  228. package/dist/socket-manager.js.map +1 -1
  229. package/dist/source-tracker.d.ts +2 -1
  230. package/dist/source-tracker.d.ts.map +1 -1
  231. package/dist/source-tracker.js +2 -1
  232. package/dist/source-tracker.js.map +1 -1
  233. package/dist/virtual-modules.d.ts +5 -0
  234. package/dist/virtual-modules.d.ts.map +1 -0
  235. package/dist/virtual-modules.js +5 -0
  236. package/dist/virtual-modules.js.map +1 -0
  237. package/package.json +6 -6
  238. package/dist/ai-service/evals/lib/modal-config.d.ts +0 -8
  239. package/dist/ai-service/evals/lib/modal-config.d.ts.map +0 -1
  240. package/dist/ai-service/evals/lib/modal-config.js +0 -23
  241. package/dist/ai-service/evals/lib/modal-config.js.map +0 -1
  242. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.d.ts +0 -3
  243. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.d.ts.map +0 -1
  244. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.js +0 -24
  245. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.js.map +0 -1
@@ -1,47 +1,72 @@
1
+ import { WIDGET_SOURCE_ID_ATTRIBUTE } from "@superblocksteam/library-shared";
1
2
  import { getLogger } from "../../../util/logger.js";
2
- import { getBaseFragment } from "../fragment-generators/base-fragment.js";
3
+ import { getBroadUpdateBaseFragment, getFullAppBaseFragment, getSpecificEditBaseFragment, } from "../fragment-generators/base-fragment.js";
3
4
  import { getFileContextFragment } from "../fragment-generators/file-fragments.js";
4
5
  import { getIntegrationContextFragment, getUnresolvedIntegrationsFragment, } from "../fragment-generators/integration-fragments.js";
6
+ import { focusedElementCodeFragment } from "./specific-edits.js";
7
+ const logOptions = (options) => {
8
+ const logger = getLogger();
9
+ logger.info("[prompt-service] " + "=".repeat(80));
10
+ logger.info("[prompt-service] buildCodeGenerationSystemPrompt options:");
11
+ const safeOptions = {
12
+ ...options,
13
+ componentTargets: options.componentTargets?.map(({ nodePath, ...rest }) => rest),
14
+ };
15
+ logger.info(JSON.stringify(safeOptions, null, 2));
16
+ logger.info("[prompt-service] " + "=".repeat(80));
17
+ };
18
+ const logSystemPrompt = (systemMessages) => {
19
+ const logger = getLogger();
20
+ logger.info("[prompt-service] " + "=".repeat(80));
21
+ logger.info("[prompt-service] SYSTEM PROMPT:");
22
+ logger.info(systemMessages.join("\n\n"));
23
+ logger.info("[prompt-service] " + "=".repeat(80));
24
+ };
5
25
  export async function buildCodeGenerationSystemPrompt(options) {
6
26
  if (options.enableDebugLogging) {
7
27
  logOptions(options);
8
28
  }
9
29
  const systemMessages = [];
10
30
  switch (options.classification) {
11
- case "new_app":
12
- // Add static prompt (base system prompt + library components)
13
- systemMessages.push(getBaseFragment());
14
- // Current working directory
15
- systemMessages.push(`The current working directory is \`${options.workingDirectory}\`.`);
16
- // Add integration context
17
- if (options.integrationPromptContent &&
18
- options.integrationPromptContent.length > 0) {
19
- systemMessages.push(getIntegrationContextFragment(options.integrationPromptContent));
20
- }
21
- // Handle unresolved integrations
22
- if (options.unresolvedIntegrations &&
23
- options.unresolvedIntegrations.length > 0) {
24
- systemMessages.push(getUnresolvedIntegrationsFragment(options.unresolvedIntegrations));
25
- }
26
- // Add file context (artifactContext)
27
- if (options.filePaths && options.fileContent) {
28
- systemMessages.push(getFileContextFragment(options.filePaths, options.fileContent));
29
- }
31
+ case "full_app_gen":
32
+ systemMessages.push(getFullAppBaseFragment());
33
+ systemMessages.push(...commonFragments(options));
34
+ systemMessages.push("We have determined that the user intends to create a new Superblocks app. Create a new Superblocks app based on the user's request.");
30
35
  break;
31
- case "incremental_edit":
32
- // TODO: Add incremental edit logic
36
+ case "specific_edit": {
37
+ const tagNames = options.componentTargets?.map((target) => target.tagName) ?? [];
38
+ const anyCustomComponents = options.componentTargets?.some((target) => target.isCustomComponent) ??
39
+ false;
40
+ systemMessages.push(getSpecificEditBaseFragment(tagNames, anyCustomComponents));
41
+ systemMessages.push(`
42
+ The user has focused one or more code elements in the UI. They want to make changes specific to the focused element(s).
43
+
44
+ Your job is to return the updated component artifact for each focused element.
45
+
46
+ Let the user know which attributes you modified in an easy to understand way. Do not mention Superblocks internals like ${WIDGET_SOURCE_ID_ATTRIBUTE} or mention attributes you have not modified.`);
47
+ options.componentTargets?.forEach((target, index) => {
48
+ systemMessages.push(`**Focused Element ${index + 1} (path: ${target.filePath}):**`);
49
+ systemMessages.push(focusedElementCodeFragment(target));
50
+ });
51
+ systemMessages.push(`
52
+ When making changes:
53
+ 1. ONLY modify the relevant attributes of the focused code elements.
54
+ 2. Consult the relevant TypeScript types for the focused elements.
55
+ 3. If it is not clear how to modify the focused elements based on the user's request, ask the user for clarification.`);
33
56
  break;
34
- case "broad_update":
35
- // TODO: Add broad update logic
57
+ }
58
+ case "broad_edit":
59
+ systemMessages.push(getBroadUpdateBaseFragment());
60
+ systemMessages.push(...commonFragments(options));
61
+ systemMessages.push("We have determined that the user is asking for an update to an existing app. Heed the user's request and update the app accordingly. Do not remove existing functionality unless the user explicitly asks for it.");
36
62
  break;
37
63
  case "question":
38
- // TODO: Add question logic
64
+ systemMessages.push(getFullAppBaseFragment());
65
+ systemMessages.push("We have determined that the user appears to be asking a question. Formulate a helpful response. CRITICAL: DO NOT return any artifacts. CRITICAL: ONLY return responses relevant to Superblocks.");
39
66
  break;
40
67
  case "unknown":
41
- // TODO: Add unknown logic
68
+ systemMessages.push("The user's request is unclear. The response should ask for more information about how they want to use Superblocks. CRITICAL: DO NOT return any artifacts.");
42
69
  break;
43
- default:
44
- throw new Error(`Unknown classification: ${options.classification}`);
45
70
  }
46
71
  // TODO: Add other entity types (state_vars, components, timers, etc.)
47
72
  // Return the content of all system messages joined together
@@ -53,18 +78,25 @@ export async function buildCodeGenerationSystemPrompt(options) {
53
78
  content: msg,
54
79
  }));
55
80
  }
56
- const logOptions = (options) => {
57
- const logger = getLogger();
58
- logger.info("[prompt-service] " + "=".repeat(80));
59
- logger.info("[prompt-service] buildCodeGenerationSystemPrompt options:");
60
- logger.info(JSON.stringify(options, null, 2));
61
- logger.info("[prompt-service] " + "=".repeat(80));
62
- };
63
- const logSystemPrompt = (systemMessages) => {
64
- const logger = getLogger();
65
- logger.info("[prompt-service] " + "=".repeat(80));
66
- logger.info("[prompt-service] SYSTEM PROMPT:");
67
- logger.info(systemMessages.join("\n\n"));
68
- logger.info("[prompt-service] " + "=".repeat(80));
69
- };
81
+ function commonFragments(options) {
82
+ const systemMessages = [];
83
+ // Current working directory
84
+ systemMessages.push(`The current working directory is \`${options.workingDirectory}\`.`);
85
+ // Add integration context
86
+ if (options.integrationPromptContent &&
87
+ options.integrationPromptContent.length > 0) {
88
+ systemMessages.push(getIntegrationContextFragment(options.integrationPromptContent));
89
+ }
90
+ // Handle unresolved integrations
91
+ if (options.unresolvedIntegrations &&
92
+ options.unresolvedIntegrations.length > 0) {
93
+ systemMessages.push(getUnresolvedIntegrationsFragment(options.unresolvedIntegrations));
94
+ }
95
+ // Add file context (artifactContext)
96
+ if (options.fileArtifacts?.length) {
97
+ const { content, paths } = options.artifactProcessor.createArtifactContext(options.fileArtifacts);
98
+ systemMessages.push(getFileContextFragment(paths, content));
99
+ }
100
+ return systemMessages;
101
+ }
70
102
  //# sourceMappingURL=code-generation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/code-generation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,MAAM,UAAU,GAAG,CAAC,OAA2B,EAAQ,EAAE;IACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG;QAClB,GAAG,OAAO;QACV,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAC7C,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAChC;KACF,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,cAAwB,EAAQ,EAAE;IACzD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAOF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAA2B;IAE3B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,QAAQ,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/B,KAAK,cAAc;YACjB,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAC9C,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,cAAc,CAAC,IAAI,CACjB,qIAAqI,CACtI,CAAC;YACF,MAAM;QAER,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClE,MAAM,mBAAmB,GACvB,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACpE,KAAK,CAAC;YAER,cAAc,CAAC,IAAI,CACjB,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAC3D,CAAC;YAEF,cAAc,CAAC,IAAI,CACjB;;;;;4HAKoH,0BAA0B,+CAA+C,CAC9L,CAAC;YAEF,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAClD,cAAc,CAAC,IAAI,CACjB,qBAAqB,KAAK,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,MAAM,CAC/D,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,IAAI,CAAC;;;;wHAI8F,CAAC,CAAC;YACpH,MAAM;QACR,CAAC;QAED,KAAK,YAAY;YACf,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;YAClD,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,cAAc,CAAC,IAAI,CACjB,mNAAmN,CACpN,CAAC;YACF,MAAM;QAER,KAAK,UAAU;YACb,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAC9C,cAAc,CAAC,IAAI,CACjB,iMAAiM,CAClM,CAAC;YACF,MAAM;QAER,KAAK,SAAS;YACZ,cAAc,CAAC,IAAI,CACjB,4JAA4J,CAC7J,CAAC;YACF,MAAM;IACV,CAAC;IAED,sEAAsE;IAEtE,4DAA4D;IAC5D,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,eAAe,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,OAA2B;IAClD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,4BAA4B;IAC5B,cAAc,CAAC,IAAI,CACjB,sCAAsC,OAAO,CAAC,gBAAgB,KAAK,CACpE,CAAC;IAEF,0BAA0B;IAC1B,IACE,OAAO,CAAC,wBAAwB;QAChC,OAAO,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAC3C,CAAC;QACD,cAAc,CAAC,IAAI,CACjB,6BAA6B,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,IACE,OAAO,CAAC,sBAAsB;QAC9B,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EACzC,CAAC;QACD,cAAc,CAAC,IAAI,CACjB,iCAAiC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CACxE,OAAO,CAAC,aAAa,CACtB,CAAC;QAEF,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ComponentTarget } from "../types.js";
2
+ import type { NodePath } from "@babel/traverse";
3
+ import type { JSXOpeningElement } from "@babel/types";
4
+ import type { SbElement } from "@superblocksteam/library-shared/types";
5
+ export type FocusedContext = {
6
+ focusedElementId: SbElement;
7
+ focusedPath: NodePath<JSXOpeningElement>;
8
+ focusedComponentName: string | null;
9
+ focusedFilePath: string;
10
+ customComponentFilePath: string | undefined;
11
+ };
12
+ export declare const focusedElementCodeFragment: (target: ComponentTarget) => string;
13
+ //# sourceMappingURL=incremental-edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-edits.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/incremental-edits.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C,CAAC;AAoDF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,eAAe,WAqCjE,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { WIDGET_SOURCE_ID_ATTRIBUTE } from "@superblocksteam/library-shared";
2
+ import { generate } from "../../../generate.js";
3
+ import { getVariableReferences, makeJSXAttribute, } from "../../../parsing/jsx.js";
4
+ import { getLogger } from "../../../util/logger.js";
5
+ import { Paths } from "../../const.js";
6
+ import { matchPath } from "../../transform/shared.js";
7
+ const _getElementDependencies = (focusedContext, params) => {
8
+ const dependencyList = {};
9
+ const sourceTracker = params.sourceTrackerInterface;
10
+ // get scope from page name
11
+ const pagePathMatcher = matchPath(Paths.PageIndexes);
12
+ const pagePath = pagePathMatcher(focusedContext.focusedFilePath);
13
+ if (!pagePath.matched) {
14
+ return [];
15
+ }
16
+ const scope = sourceTracker.getScopeDefinitionForPage(pagePath.params.pageName);
17
+ if (!scope) {
18
+ return [];
19
+ }
20
+ const variablesToCheck = new Set(scope.entityNames);
21
+ let attributes = focusedContext.focusedPath.get("attributes");
22
+ if (!Array.isArray(attributes)) {
23
+ attributes = [attributes];
24
+ }
25
+ for (const attribute of attributes) {
26
+ if (attribute.isJSXAttribute()) {
27
+ const refs = getVariableReferences(attribute.node, variablesToCheck);
28
+ for (const ref of refs) {
29
+ const elementId = scope.scopeNameToEntityId[ref];
30
+ if (!elementId) {
31
+ continue;
32
+ }
33
+ dependencyList[ref] = {
34
+ entityId: elementId,
35
+ attributeName: attribute.node.name.name,
36
+ isCustomComponent: sourceTracker.isCustomComponent(ref),
37
+ };
38
+ }
39
+ }
40
+ }
41
+ return dependencyList;
42
+ };
43
+ export const focusedElementCodeFragment = (target) => {
44
+ const nodePath = target.nodePath;
45
+ nodePath.pushContainer("attributes", makeJSXAttribute(WIDGET_SOURCE_ID_ATTRIBUTE, target.elementId));
46
+ const openingElement = nodePath.node;
47
+ const originalSelfClosing = openingElement.selfClosing;
48
+ openingElement.selfClosing = true;
49
+ const focusedCode = generate(openingElement, {
50
+ jsescOption: {
51
+ minimal: true,
52
+ },
53
+ }).code.trim();
54
+ target.nodePath?.traverse({
55
+ JSXAttribute(path) {
56
+ if (path.node.name.name === WIDGET_SOURCE_ID_ATTRIBUTE) {
57
+ path.remove();
58
+ }
59
+ },
60
+ });
61
+ openingElement.selfClosing = originalSelfClosing;
62
+ getLogger().debug(`[ai-service] focused code ${focusedCode}`);
63
+ return `
64
+ \`\`\`tsx
65
+ // ${target.filePath}
66
+
67
+ ${focusedCode}
68
+ \`\`\`
69
+ `;
70
+ };
71
+ //# sourceMappingURL=incremental-edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-edits.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/incremental-edits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ComponentTarget } from "../types.js";
2
+ import type { NodePath } from "@babel/traverse";
3
+ import type { JSXOpeningElement } from "@babel/types";
4
+ import type { SbElement } from "@superblocksteam/library-shared/types";
5
+ export type FocusedContext = {
6
+ focusedElementId: SbElement;
7
+ focusedPath: NodePath<JSXOpeningElement>;
8
+ focusedComponentName: string | null;
9
+ focusedFilePath: string;
10
+ customComponentFilePath: string | undefined;
11
+ };
12
+ export declare const focusedElementCodeFragment: (target: ComponentTarget) => string;
13
+ //# sourceMappingURL=specific-edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specific-edits.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/specific-edits.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C,CAAC;AAoDF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,eAAe,WAqCjE,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { WIDGET_SOURCE_ID_ATTRIBUTE } from "@superblocksteam/library-shared";
2
+ import { generate } from "../../../generate.js";
3
+ import { getVariableReferences, makeJSXAttribute, } from "../../../parsing/jsx.js";
4
+ import { getLogger } from "../../../util/logger.js";
5
+ import { Paths } from "../../const.js";
6
+ import { matchPath } from "../../transform/shared.js";
7
+ const _getElementDependencies = (focusedContext, params) => {
8
+ const dependencyList = {};
9
+ const sourceTracker = params.sourceTrackerInterface;
10
+ // get scope from page name
11
+ const pagePathMatcher = matchPath(Paths.PageIndexes);
12
+ const pagePath = pagePathMatcher(focusedContext.focusedFilePath);
13
+ if (!pagePath.matched) {
14
+ return [];
15
+ }
16
+ const scope = sourceTracker.getScopeDefinitionForPage(pagePath.params.pageName);
17
+ if (!scope) {
18
+ return [];
19
+ }
20
+ const variablesToCheck = new Set(scope.entityNames);
21
+ let attributes = focusedContext.focusedPath.get("attributes");
22
+ if (!Array.isArray(attributes)) {
23
+ attributes = [attributes];
24
+ }
25
+ for (const attribute of attributes) {
26
+ if (attribute.isJSXAttribute()) {
27
+ const refs = getVariableReferences(attribute.node, variablesToCheck);
28
+ for (const ref of refs) {
29
+ const elementId = scope.scopeNameToEntityId[ref];
30
+ if (!elementId) {
31
+ continue;
32
+ }
33
+ dependencyList[ref] = {
34
+ entityId: elementId,
35
+ attributeName: attribute.node.name.name,
36
+ isCustomComponent: sourceTracker.isCustomComponent(ref),
37
+ };
38
+ }
39
+ }
40
+ }
41
+ return dependencyList;
42
+ };
43
+ export const focusedElementCodeFragment = (target) => {
44
+ const nodePath = target.nodePath;
45
+ nodePath.pushContainer("attributes", makeJSXAttribute(WIDGET_SOURCE_ID_ATTRIBUTE, target.elementId));
46
+ const openingElement = nodePath.node;
47
+ const originalSelfClosing = openingElement.selfClosing;
48
+ openingElement.selfClosing = true;
49
+ const focusedCode = generate(openingElement, {
50
+ jsescOption: {
51
+ minimal: true,
52
+ },
53
+ }).code.trim();
54
+ target.nodePath?.traverse({
55
+ JSXAttribute(path) {
56
+ if (path.node.name.name === WIDGET_SOURCE_ID_ATTRIBUTE) {
57
+ path.remove();
58
+ }
59
+ },
60
+ });
61
+ openingElement.selfClosing = originalSelfClosing;
62
+ getLogger().debug(`[ai-service] focused code ${focusedCode}`);
63
+ return `
64
+ \`\`\`tsx
65
+ // ${target.filePath}
66
+
67
+ ${focusedCode}
68
+ \`\`\`
69
+ `;
70
+ };
71
+ //# sourceMappingURL=specific-edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specific-edits.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/specific-edits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type PromptClassification } from "../types.js";
2
+ import type { AppContextStore } from "../../context/app-context.js";
3
+ import type { LLMProvider } from "../../llm/types.js";
4
+ import type { SbElement } from "@superblocksteam/library-shared/types";
5
+ export interface PromptInterpretationTaskResult {
6
+ classification: PromptClassification;
7
+ components: SbElement[];
8
+ apis: string[];
9
+ }
10
+ export declare class PromptInterpretTask {
11
+ private readonly llmProvider;
12
+ private readonly appContext;
13
+ private readonly prompt;
14
+ private abortController;
15
+ private result;
16
+ constructor(llmProvider: LLMProvider, appContext: AppContextStore, prompt: string);
17
+ static defaultResult: PromptInterpretationTaskResult;
18
+ private buildSystemPrompt;
19
+ abort(): void;
20
+ resolve(): Promise<PromptInterpretationTaskResult>;
21
+ private doResolve;
22
+ }
23
+ //# sourceMappingURL=prompt-interpret-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-interpret-task.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,cAAc,EAAE,oBAAoB,CAAC;IACrC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAwD;gBAGnD,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,MAAM;IAKjC,OAAc,aAAa,EAAE,8BAA8B,CAIzD;IAEF,OAAO,CAAC,iBAAiB;IAgFlB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,OAAO,CAAC,8BAA8B,CAAC;YAQ3C,SAAS;CAgBxB"}
@@ -0,0 +1,108 @@
1
+ import { generateObject } from "ai";
2
+ import { z } from "zod";
3
+ import { PromptClassificationEnum, } from "../types.js";
4
+ export class PromptInterpretTask {
5
+ llmProvider;
6
+ appContext;
7
+ prompt;
8
+ abortController;
9
+ result = null;
10
+ constructor(llmProvider, appContext, prompt) {
11
+ this.llmProvider = llmProvider;
12
+ this.appContext = appContext;
13
+ this.prompt = prompt;
14
+ this.abortController = new AbortController();
15
+ }
16
+ static defaultResult = {
17
+ classification: "full_app_gen",
18
+ components: [],
19
+ apis: [],
20
+ };
21
+ buildSystemPrompt() {
22
+ const componentContext = Object.fromEntries(Object.entries(this.appContext.componentSemanticsById).map(([id, { tagName, bindName, semanticPath, semanticProperties }]) => [
23
+ id,
24
+ {
25
+ type: tagName,
26
+ name: bindName,
27
+ path: semanticPath,
28
+ properties: semanticProperties,
29
+ },
30
+ ]));
31
+ const apiContext = this.appContext.apiSemanticsByName;
32
+ const componentIds = Object.keys(this.appContext.componentSemanticsById);
33
+ const apiNames = Object.keys(this.appContext.apiSemanticsByName);
34
+ const systemPrompt = `
35
+ You are an expert AI assistant for a low-code platform. Your task is to analyze a user's request and identify the specific UI components and backend APIs they are referring to based on the application's context. You must also determine the user's primary intent.
36
+
37
+ Think step-by-step.
38
+ 1. First, determine the user's primary intent based on their request. Use the 'Intent Definitions' section below to guide your choice.
39
+ 2. Analyze the user's prompt for keywords related to components (e.g., 'button', 'table', 'red', 'submit') and APIs (e.g., 'run query', 'fetch data').
40
+ 3. Compare these keywords against the provided application context below.
41
+ 4. Pay close attention to the 'properties' of components, as users often refer to them by their visual state (e.g., color, text).
42
+ 5. Use the 'path' property to understand the location of components, which might be mentioned by the user (e.g., 'the button at the top').
43
+ 6. Use the 'name' property, which is how a developer might refer to the component in code.
44
+
45
+ # Intent Definitions
46
+ - **full_app_gen**: The user wants to create a new application from scratch. The prompt will be very high-level and describe the app's purpose. Examples: "build a user management dashboard", "create an app to track inventory".
47
+ - **broad_edit**: The user wants to add a new feature or make a significant change to the existing application. This often involves creating new components or complex logic. Examples: "add a form to create new users", "create a detail view for the selected table row".
48
+ - **specific_edit**: The user wants to make a small, targeted change to existing components or APIs. This is for modifying, connecting, or deleting existing things. Examples: "make the button blue", "change the table title", "when the button is clicked, run the fetchUsers API".
49
+ - **question**: The user is asking a question and not requesting a change. Examples: "what does this button do?", "how do I add an event listener to the button?".
50
+ - **unknown**: The user's intent is unclear, irrelevant, or gibberish.
51
+
52
+ # Application Context
53
+
54
+ ## UI Components
55
+ A list of all UI components in the application.
56
+ \`\`\`json
57
+ ${JSON.stringify(componentContext, null, 2)}
58
+ \`\`\`
59
+
60
+ ## APIs
61
+ A list of all available APIs (backend logic).
62
+ \`\`\`json
63
+ ${JSON.stringify(apiContext, null, 2)}
64
+ \`\`\`
65
+
66
+ # User Request
67
+ Analyze the following user request and identify which components (by their \`id\`) and APIs (by their \`name\`) are the most likely targets, and determine the user's intent.
68
+
69
+ **User Request:** "${this.prompt}"
70
+
71
+ Select the components and APIs that are most relevant to this request. If the user's request is ambiguous, select all potential candidates. If nothing seems relevant, return empty arrays.`;
72
+ const schema = z.object({
73
+ classification: PromptClassificationEnum.describe("The user's primary intent. Analyze the prompt to determine the most fitting category."),
74
+ components: (componentIds.length > 0
75
+ ? z.array(z.enum(componentIds))
76
+ : z.array(z.string()).max(0)).describe("An array of component IDs that are the target of the user's prompt. If no components are relevant, return an empty array."),
77
+ apis: (apiNames.length > 0
78
+ ? z.array(z.enum(apiNames))
79
+ : z.array(z.string()).max(0)).describe("An array of API names that are the target of the user's prompt. If no APIs are relevant, return an empty array."),
80
+ });
81
+ return { systemPrompt, schema };
82
+ }
83
+ abort() {
84
+ this.abortController.abort();
85
+ }
86
+ resolve() {
87
+ if (this.result) {
88
+ return this.result;
89
+ }
90
+ this.result = this.doResolve();
91
+ return this.result;
92
+ }
93
+ async doResolve() {
94
+ const { systemPrompt, schema } = this.buildSystemPrompt();
95
+ const { object: interpretation } = await generateObject({
96
+ model: this.llmProvider.modelForTask("classifyPrompt"),
97
+ schema,
98
+ prompt: systemPrompt,
99
+ abortSignal: this.abortController.signal,
100
+ });
101
+ return {
102
+ classification: interpretation.classification,
103
+ components: interpretation.components,
104
+ apis: interpretation.apis,
105
+ };
106
+ }
107
+ }
108
+ //# sourceMappingURL=prompt-interpret-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-interpret-task.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- declare const SUPERBLOCKS_PLATFORM_FRAGMENTS: Record<string, string>;
2
- export default SUPERBLOCKS_PLATFORM_FRAGMENTS;
1
+ export declare const PLATFORM_FRAGMENTS: string[][];
2
+ export declare const COMPONENT_FRAGMENTS: string[][];
3
3
  //# sourceMappingURL=superblocks-platform-fragments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"superblocks-platform-fragments.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8B1D,CAAC;AAYF,eAAe,8BAA8B,CAAC"}
1
+ {"version":3,"file":"superblocks-platform-fragments.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.ts"],"names":[],"mappings":"AAsDA,eAAO,MAAM,kBAAkB,YAG7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,YAG9B,CAAC"}
@@ -1,30 +1,57 @@
1
- import { wrapFragmentsWithXMLTags } from "../utils/formatting.js";
2
- import { loadPromptFragment } from "../utils/markdown-loader.js";
3
- import SUPERBLOCKS_COMPONENT_FRAGMENTS from "./superblocks-components-fragments.js";
4
- const SUPERBLOCKS_PLATFORM_FRAGMENTS = {
5
- superblocks_page: loadPromptFragment("platform-parts/superblocks-page"),
6
- superblocks_routes: loadPromptFragment("platform-parts/superblocks-routes"),
7
- superblocks_components_rules: loadPromptFragment("platform-parts/superblocks-components-rules"),
8
- superblocks_event_flow_typedefs: loadPromptFragment("library-typedefs/EventFlow"),
9
- superblocks_dim_typedefs: loadPromptFragment("library-typedefs/Dim"),
10
- superblocks_text_style_with_variant_typedefs: loadPromptFragment("library-typedefs/TextStyleWithVariant"),
11
- superblocks_custom_components: loadPromptFragment("platform-parts/superblocks-custom-components"),
12
- superblocks_layouts: loadPromptFragment("platform-parts/superblocks-layouts"),
13
- superblocks_forms: loadPromptFragment("platform-parts/superblocks-forms"),
14
- superblocks_state: loadPromptFragment("platform-parts/superblocks-state"),
15
- // superblocks_timers: loadPromptFragment("platform-parts/superblocks-timers"),
16
- superblocks_api: loadPromptFragment("platform-parts/superblocks-api"),
17
- superblocks_event_flow: loadPromptFragment("platform-parts/superblocks-event-flow"),
18
- superblocks_theming: loadPromptFragment("platform-parts/superblocks-theming"),
19
- superblocks_rbac: loadPromptFragment("platform-parts/superblocks-rbac"),
20
- superblocks_data_filtering: loadPromptFragment("platform-parts/superblocks-data-filtering"),
21
- full_examples: loadPromptFragment("platform-parts/full-examples"),
22
- };
23
- // Wrap with XML tags
24
- wrapFragmentsWithXMLTags(SUPERBLOCKS_PLATFORM_FRAGMENTS);
25
- // Add the component fragments
26
- Object.entries(SUPERBLOCKS_COMPONENT_FRAGMENTS).forEach(([name, content]) => {
27
- SUPERBLOCKS_PLATFORM_FRAGMENTS[`superblocks_component_${name.toLowerCase()}`] = content;
28
- });
29
- export default SUPERBLOCKS_PLATFORM_FRAGMENTS;
1
+ import { wrapWithXMLTags } from "../utils/formatting.js";
2
+ import { loadLibraryComponentPromptFragment, loadPromptFragment, } from "../utils/markdown-loader.js";
3
+ const LIBRARY_COMPONENTS = [
4
+ "Button",
5
+ "Checkbox",
6
+ "Container",
7
+ "Text",
8
+ "Dropdown",
9
+ "Switch",
10
+ "Input",
11
+ "Image",
12
+ "Icon",
13
+ "DatePicker",
14
+ "Page",
15
+ "Table",
16
+ "Modal",
17
+ "KeyValue",
18
+ "Slideout",
19
+ ];
20
+ // Define fragments in an array to guarantee order
21
+ const PLATFORM_DEFINITIONS = [
22
+ ["superblocks_page", "platform-parts/superblocks-page"],
23
+ ["superblocks_routes", "platform-parts/superblocks-routes"],
24
+ [
25
+ "superblocks_components_rules",
26
+ "platform-parts/superblocks-components-rules",
27
+ ],
28
+ ["superblocks_event_flow_typedefs", "library-typedefs/EventFlow"],
29
+ ["superblocks_dim_typedefs", "library-typedefs/Dim"],
30
+ [
31
+ "superblocks_text_style_with_variant_typedefs",
32
+ "library-typedefs/TextStyleWithVariant",
33
+ ],
34
+ [
35
+ "superblocks_custom_components",
36
+ "platform-parts/superblocks-custom-components",
37
+ ],
38
+ ["superblocks_layouts", "platform-parts/superblocks-layouts"],
39
+ ["superblocks_forms", "platform-parts/superblocks-forms"],
40
+ ["superblocks_state", "platform-parts/superblocks-state"],
41
+ // ["superblocks_timers", "platform-parts/superblocks-timers"],
42
+ ["superblocks_api", "platform-parts/superblocks-api"],
43
+ ["superblocks_event_flow", "platform-parts/superblocks-event-flow"],
44
+ ["superblocks_theming", "platform-parts/superblocks-theming"],
45
+ ["superblocks_rbac", "platform-parts/superblocks-rbac"],
46
+ ["superblocks_data_filtering", "platform-parts/superblocks-data-filtering"],
47
+ ["full_examples", "platform-parts/full-examples"],
48
+ ];
49
+ export const PLATFORM_FRAGMENTS = PLATFORM_DEFINITIONS.map(([key, path]) => [
50
+ key,
51
+ wrapWithXMLTags(key, loadPromptFragment(path)),
52
+ ]);
53
+ export const COMPONENT_FRAGMENTS = LIBRARY_COMPONENTS.map((key) => [
54
+ `superblocks_component_${key.toLowerCase()}`,
55
+ wrapWithXMLTags(key, loadLibraryComponentPromptFragment(key)),
56
+ ]);
30
57
  //# sourceMappingURL=superblocks-platform-fragments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"superblocks-platform-fragments.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,+BAA+B,MAAM,uCAAuC,CAAC;AAEpF,MAAM,8BAA8B,GAA2B;IAC7D,gBAAgB,EAAE,kBAAkB,CAAC,iCAAiC,CAAC;IACvE,kBAAkB,EAAE,kBAAkB,CAAC,mCAAmC,CAAC;IAC3E,4BAA4B,EAAE,kBAAkB,CAC9C,6CAA6C,CAC9C;IACD,+BAA+B,EAAE,kBAAkB,CACjD,4BAA4B,CAC7B;IACD,wBAAwB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC;IACpE,4CAA4C,EAAE,kBAAkB,CAC9D,uCAAuC,CACxC;IACD,6BAA6B,EAAE,kBAAkB,CAC/C,8CAA8C,CAC/C;IACD,mBAAmB,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;IAC7E,iBAAiB,EAAE,kBAAkB,CAAC,kCAAkC,CAAC;IACzE,iBAAiB,EAAE,kBAAkB,CAAC,kCAAkC,CAAC;IACzE,+EAA+E;IAC/E,eAAe,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;IACrE,sBAAsB,EAAE,kBAAkB,CACxC,uCAAuC,CACxC;IACD,mBAAmB,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;IAC7E,gBAAgB,EAAE,kBAAkB,CAAC,iCAAiC,CAAC;IACvE,0BAA0B,EAAE,kBAAkB,CAC5C,2CAA2C,CAC5C;IACD,aAAa,EAAE,kBAAkB,CAAC,8BAA8B,CAAC;CAClE,CAAC;AAEF,qBAAqB;AACrB,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;AAEzD,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;IAC1E,8BAA8B,CAC5B,yBAAyB,IAAI,CAAC,WAAW,EAAE,EAAE,CAC9C,GAAG,OAAO,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,eAAe,8BAA8B,CAAC"}
1
+ {"version":3,"file":"superblocks-platform-fragments.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,kCAAkC,EAClC,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,MAAM,kBAAkB,GAAG;IACzB,QAAQ;IACR,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,YAAY;IACZ,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;CACF,CAAC;AAEX,kDAAkD;AAClD,MAAM,oBAAoB,GAAG;IAC3B,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IACvD,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;IAC3D;QACE,8BAA8B;QAC9B,6CAA6C;KAC9C;IACD,CAAC,iCAAiC,EAAE,4BAA4B,CAAC;IACjE,CAAC,0BAA0B,EAAE,sBAAsB,CAAC;IACpD;QACE,8CAA8C;QAC9C,uCAAuC;KACxC;IACD;QACE,+BAA+B;QAC/B,8CAA8C;KAC/C;IACD,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;IAC7D,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACzD,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACzD,+DAA+D;IAC/D,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;IACrD,CAAC,wBAAwB,EAAE,uCAAuC,CAAC;IACnE,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;IAC7D,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IACvD,CAAC,4BAA4B,EAAE,2CAA2C,CAAC;IAC3E,CAAC,eAAe,EAAE,8BAA8B,CAAC;CACzC,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC1E,GAAG;IACH,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IACjE,yBAAyB,GAAG,CAAC,WAAW,EAAE,EAAE;IAC5C,eAAe,CAAC,GAAG,EAAE,kCAAkC,CAAC,GAAG,CAAC,CAAC;CAC9D,CAAC,CAAC"}