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

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 (215) 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/eval-scoring.d.ts +23 -4
  16. package/dist/ai-service/evals/helpers/eval-scoring.d.ts.map +1 -1
  17. package/dist/ai-service/evals/helpers/eval-scoring.js +211 -34
  18. package/dist/ai-service/evals/helpers/eval-scoring.js.map +1 -1
  19. package/dist/ai-service/evals/helpers/index.d.ts +20 -1
  20. package/dist/ai-service/evals/helpers/index.d.ts.map +1 -1
  21. package/dist/ai-service/evals/helpers/index.js +108 -2
  22. package/dist/ai-service/evals/helpers/index.js.map +1 -1
  23. package/dist/ai-service/evals/llm-provider.d.ts +2 -0
  24. package/dist/ai-service/evals/llm-provider.d.ts.map +1 -0
  25. package/dist/ai-service/evals/llm-provider.js +9 -0
  26. package/dist/ai-service/evals/llm-provider.js.map +1 -0
  27. package/dist/ai-service/index.d.ts +10 -1
  28. package/dist/ai-service/index.d.ts.map +1 -1
  29. package/dist/ai-service/index.js +80 -11
  30. package/dist/ai-service/index.js.map +1 -1
  31. package/dist/ai-service/integrations/from-prompt-context.js +1 -1
  32. package/dist/ai-service/integrations/from-prompt-context.js.map +1 -1
  33. package/dist/ai-service/integrations/store.d.ts +3 -5
  34. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  35. package/dist/ai-service/integrations/store.js +5 -13
  36. package/dist/ai-service/integrations/store.js.map +1 -1
  37. package/dist/ai-service/llm/impl/anthropic.d.ts +3 -0
  38. package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -0
  39. package/dist/ai-service/llm/impl/anthropic.js +42 -0
  40. package/dist/ai-service/llm/impl/anthropic.js.map +1 -0
  41. package/dist/ai-service/llm/provider.d.ts +3 -0
  42. package/dist/ai-service/llm/provider.d.ts.map +1 -0
  43. package/dist/ai-service/llm/provider.js +30 -0
  44. package/dist/ai-service/llm/provider.js.map +1 -0
  45. package/dist/ai-service/llm/types.d.ts +15 -0
  46. package/dist/ai-service/llm/types.d.ts.map +1 -0
  47. package/dist/ai-service/llm/types.js +2 -0
  48. package/dist/ai-service/llm/types.js.map +1 -0
  49. package/dist/ai-service/llm/utils.d.ts +9 -0
  50. package/dist/ai-service/llm/utils.d.ts.map +1 -0
  51. package/dist/ai-service/llm/utils.js +49 -0
  52. package/dist/ai-service/llm/utils.js.map +1 -0
  53. package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts.map +1 -1
  54. package/dist/ai-service/prompt-builder-service/builders/code-generation.js +95 -38
  55. package/dist/ai-service/prompt-builder-service/builders/code-generation.js.map +1 -1
  56. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts +13 -0
  57. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts.map +1 -0
  58. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js +71 -0
  59. package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js.map +1 -0
  60. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts +24 -0
  61. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts.map +1 -0
  62. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +117 -0
  63. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -0
  64. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts +2 -2
  65. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts.map +1 -1
  66. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js +56 -29
  67. package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js.map +1 -1
  68. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts +3 -1
  69. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts.map +1 -1
  70. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js +36 -3
  71. package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js.map +1 -1
  72. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts +1 -1
  73. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts.map +1 -1
  74. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +2 -2
  75. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js.map +1 -1
  76. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  77. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts +1 -1
  78. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts.map +1 -1
  79. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +2 -2
  80. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js.map +1 -1
  81. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts +1 -1
  82. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts.map +1 -1
  83. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +2 -2
  84. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js.map +1 -1
  85. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts +1 -1
  86. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts.map +1 -1
  87. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +2 -2
  88. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js.map +1 -1
  89. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  90. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  91. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts +1 -1
  92. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts.map +1 -1
  93. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +2 -2
  94. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js.map +1 -1
  95. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts +1 -1
  96. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts.map +1 -1
  97. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +2 -2
  98. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js.map +1 -1
  99. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts +1 -1
  100. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts.map +1 -1
  101. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +2 -2
  102. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js.map +1 -1
  103. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  104. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  105. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts +1 -1
  106. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts.map +1 -1
  107. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +2 -2
  108. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js.map +1 -1
  109. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  110. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts +1 -1
  111. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts.map +1 -1
  112. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +2 -2
  113. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js.map +1 -1
  114. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts +1 -1
  115. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts.map +1 -1
  116. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +2 -2
  117. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js.map +1 -1
  118. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  119. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  120. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  121. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts +1 -1
  122. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts.map +1 -1
  123. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +2 -2
  124. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js.map +1 -1
  125. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts +1 -0
  126. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts.map +1 -1
  127. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js +1 -0
  128. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js.map +1 -1
  129. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts +1 -1
  130. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts.map +1 -1
  131. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +2 -2
  132. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js.map +1 -1
  133. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  134. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  135. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  136. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  137. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  138. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  139. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  140. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  141. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  142. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  143. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming.js +1 -1
  144. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  145. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts +2 -0
  146. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts.map +1 -0
  147. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +6 -0
  148. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js.map +1 -0
  149. package/dist/ai-service/prompt-builder-service/types.d.ts +21 -7
  150. package/dist/ai-service/prompt-builder-service/types.d.ts.map +1 -1
  151. package/dist/ai-service/prompt-builder-service/types.js +10 -1
  152. package/dist/ai-service/prompt-builder-service/types.js.map +1 -1
  153. package/dist/ai-service/result-buffer/bolt.js +2 -2
  154. package/dist/ai-service/result-buffer/bolt.js.map +1 -1
  155. package/dist/ai-service/state-machine/clark-fsm.d.ts +10 -2
  156. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  157. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  158. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  159. package/dist/ai-service/state-machine/handlers/agent-planning.js +49 -11
  160. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  161. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +1 -1
  162. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  163. package/dist/ai-service/state-machine/handlers/llm-generating.js +226 -231
  164. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  165. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +1 -1
  166. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -1
  167. package/dist/ai-service/state-machine/handlers/post-processing.js +56 -3
  168. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
  169. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts +1 -1
  170. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts.map +1 -1
  171. package/dist/ai-service/test-utils/anthropic-service-mock.js +9 -1
  172. package/dist/ai-service/test-utils/anthropic-service-mock.js.map +1 -1
  173. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +1 -1
  174. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -1
  175. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +80 -38
  176. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -1
  177. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +1 -1
  178. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -1
  179. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +9 -3
  180. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -1
  181. package/dist/ai-service/transform/shared.d.ts.map +1 -1
  182. package/dist/ai-service/transform/shared.js +1 -5
  183. package/dist/ai-service/transform/shared.js.map +1 -1
  184. package/dist/ai-service/types.d.ts +1 -1
  185. package/dist/ai-service/types.d.ts.map +1 -1
  186. package/dist/components-manager.d.ts.map +1 -1
  187. package/dist/components-manager.js +9 -15
  188. package/dist/components-manager.js.map +1 -1
  189. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  190. package/dist/file-sync-vite-plugin.js +50 -11
  191. package/dist/file-sync-vite-plugin.js.map +1 -1
  192. package/dist/lock-service/index.d.ts +1 -0
  193. package/dist/lock-service/index.d.ts.map +1 -1
  194. package/dist/lock-service/index.js +27 -11
  195. package/dist/lock-service/index.js.map +1 -1
  196. package/dist/server-rpc/index.d.ts +0 -1
  197. package/dist/server-rpc/index.d.ts.map +1 -1
  198. package/dist/server-rpc/index.js +0 -4
  199. package/dist/server-rpc/index.js.map +1 -1
  200. package/dist/socket-manager.d.ts.map +1 -1
  201. package/dist/socket-manager.js +5 -0
  202. package/dist/socket-manager.js.map +1 -1
  203. package/dist/virtual-modules.d.ts +5 -0
  204. package/dist/virtual-modules.d.ts.map +1 -0
  205. package/dist/virtual-modules.js +5 -0
  206. package/dist/virtual-modules.js.map +1 -0
  207. package/package.json +6 -6
  208. package/dist/ai-service/evals/lib/modal-config.d.ts +0 -8
  209. package/dist/ai-service/evals/lib/modal-config.d.ts.map +0 -1
  210. package/dist/ai-service/evals/lib/modal-config.js +0 -23
  211. package/dist/ai-service/evals/lib/modal-config.js.map +0 -1
  212. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.d.ts +0 -3
  213. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.d.ts.map +0 -1
  214. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.js +0 -24
  215. package/dist/ai-service/prompt-builder-service/constants/superblocks-components-fragments.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ export const modelFromClassification = (modelForTask, classification) => {
2
+ switch (classification) {
3
+ case "new_app":
4
+ case "question":
5
+ return modelForTask("generateFullApp");
6
+ case "broad_update":
7
+ return modelForTask("generateBroadUpdate");
8
+ case "incremental_edit":
9
+ case "unknown":
10
+ return modelForTask("generateIncrementalEdit");
11
+ default:
12
+ throw new Error(`Unknown classification: ${classification}`);
13
+ }
14
+ };
15
+ export const jwtMiddleware = (getJwt) => {
16
+ return {
17
+ transformParams: async ({ params }) => {
18
+ const jwt = getJwt?.();
19
+ if (jwt) {
20
+ return {
21
+ ...params,
22
+ headers: {
23
+ ...params.headers,
24
+ Authorization: `Bearer ${jwt}`,
25
+ "x-superblocks-authorization": `Bearer ${jwt}`,
26
+ },
27
+ };
28
+ }
29
+ return params;
30
+ },
31
+ };
32
+ };
33
+ // named so as to be distinct from the ai SDK's defaultSettingsMiddleware
34
+ // which has confusing behavior
35
+ export const prioritySettingsMiddleware = ({ settings, }) => {
36
+ return {
37
+ transformParams: async ({ params }) => {
38
+ return {
39
+ ...params,
40
+ ...settings,
41
+ providerMetadata: {
42
+ ...params.providerMetadata,
43
+ ...settings.providerMetadata,
44
+ },
45
+ };
46
+ },
47
+ };
48
+ };
49
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ai-service/llm/utils.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,YAAoD,EACpD,cAAoC,EACnB,EAAE;IACnB,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACzC,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAC7C,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAC;QACjD;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAiC,EACN,EAAE;IAC7B,OAAO;QACL,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO;oBACL,GAAG,MAAM;oBACT,OAAO,EAAE;wBACP,GAAG,MAAM,CAAC,OAAO;wBACjB,aAAa,EAAE,UAAU,GAAG,EAAE;wBAC9B,6BAA6B,EAAE,UAAU,GAAG,EAAE;qBAC/C;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,yEAAyE;AACzE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,QAAQ,GAGT,EAA6B,EAAE;IAC9B,OAAO;QACL,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,QAAQ;gBACX,gBAAgB,EAAE;oBAChB,GAAG,MAAM,CAAC,gBAAgB;oBAC1B,GAAG,QAAQ,CAAC,gBAAgB;iBAC7B;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-generation.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/code-generation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC,CA4E1B"}
1
+ {"version":3,"file":"code-generation.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/builders/code-generation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC,CAiG1B"}
@@ -1,5 +1,10 @@
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 {
4
+ // getBroadUpdateBaseFragment,
5
+ getFullAppBaseFragment,
6
+ // getIncrementalUpdateBaseFragment,
7
+ } from "../fragment-generators/base-fragment.js";
3
8
  import { getFileContextFragment } from "../fragment-generators/file-fragments.js";
4
9
  import { getIntegrationContextFragment, getUnresolvedIntegrationsFragment, } from "../fragment-generators/integration-fragments.js";
5
10
  export async function buildCodeGenerationSystemPrompt(options) {
@@ -7,42 +12,69 @@ export async function buildCodeGenerationSystemPrompt(options) {
7
12
  logOptions(options);
8
13
  }
9
14
  const systemMessages = [];
10
- 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
- }
30
- break;
31
- case "incremental_edit":
32
- // TODO: Add incremental edit logic
33
- break;
34
- case "broad_update":
35
- // TODO: Add broad update logic
36
- break;
37
- case "question":
38
- // TODO: Add question logic
39
- break;
40
- case "unknown":
41
- // TODO: Add unknown logic
42
- break;
43
- default:
44
- throw new Error(`Unknown classification: ${options.classification}`);
45
- }
15
+ // NOTE: We're currently hardcoding the classification to "new_app". We will follow up with a PR to remove this.
16
+ // TODO: Remove this once we have a proper classification system
17
+ systemMessages.push(getFullAppBaseFragment());
18
+ systemMessages.push(...commonFragments(options));
19
+ 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.");
20
+ // Temporarily hardcoding the classification to "new_app", so commenting out the rest of the switch statement.
21
+ // switch (options.classification) {
22
+ // case "new_app":
23
+ // systemMessages.push(getFullAppBaseFragment());
24
+ // systemMessages.push(...commonFragments(options));
25
+ // systemMessages.push(
26
+ // "We have determined that the user intends to create a new Superblocks app. Create a new Superblocks app based on the user's request.",
27
+ // );
28
+ // break;
29
+ // case "incremental_edit": {
30
+ // const tagNames =
31
+ // options.componentTargets?.map((target) => target.tagName) ?? [];
32
+ // const anyCustomComponents =
33
+ // options.componentTargets?.some((target) => target.isCustomComponent) ??
34
+ // false;
35
+ // systemMessages.push(
36
+ // getIncrementalUpdateBaseFragment(tagNames, anyCustomComponents),
37
+ // );
38
+ // systemMessages.push(
39
+ // `
40
+ // The user has focused one or more code elements in the UI. They want to make changes specific to the focused element(s).
41
+ // Your job is to return the updated component artifact for each focused element.
42
+ // 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.`,
43
+ // );
44
+ // options.componentTargets?.forEach((target, index) => {
45
+ // systemMessages.push(
46
+ // `**Focused Element ${index + 1} (path: ${target.filePath}):**`,
47
+ // );
48
+ // systemMessages.push(focusedElementCodeFragment(target));
49
+ // });
50
+ // systemMessages.push(`
51
+ // When making changes:
52
+ // 1. ONLY modify the relevant attributes of the focused code elements.
53
+ // 2. Consult the relevant TypeScript types for the focused elements.
54
+ // 3. If it is not clear how to modify the focused elements based on the user's request, ask the user for clarification.`);
55
+ // break;
56
+ // }
57
+ // case "broad_update":
58
+ // systemMessages.push(getBroadUpdateBaseFragment());
59
+ // systemMessages.push(...commonFragments(options));
60
+ // systemMessages.push(
61
+ // "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.",
62
+ // );
63
+ // break;
64
+ // case "question":
65
+ // systemMessages.push(getFullAppBaseFragment());
66
+ // systemMessages.push(
67
+ // "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.",
68
+ // );
69
+ // break;
70
+ // case "unknown":
71
+ // systemMessages.push(
72
+ // "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.",
73
+ // );
74
+ // break;
75
+ // default:
76
+ // throw new Error(`Unknown classification: ${options.classification}`);
77
+ // }
46
78
  // TODO: Add other entity types (state_vars, components, timers, etc.)
47
79
  // Return the content of all system messages joined together
48
80
  if (options.enableDebugLogging) {
@@ -53,11 +85,36 @@ export async function buildCodeGenerationSystemPrompt(options) {
53
85
  content: msg,
54
86
  }));
55
87
  }
88
+ function commonFragments(options) {
89
+ const systemMessages = [];
90
+ // Current working directory
91
+ systemMessages.push(`The current working directory is \`${options.workingDirectory}\`.`);
92
+ // Add integration context
93
+ if (options.integrationPromptContent &&
94
+ options.integrationPromptContent.length > 0) {
95
+ systemMessages.push(getIntegrationContextFragment(options.integrationPromptContent));
96
+ }
97
+ // Handle unresolved integrations
98
+ if (options.unresolvedIntegrations &&
99
+ options.unresolvedIntegrations.length > 0) {
100
+ systemMessages.push(getUnresolvedIntegrationsFragment(options.unresolvedIntegrations));
101
+ }
102
+ // Add file context (artifactContext)
103
+ if (options.fileArtifacts?.length) {
104
+ const { content, paths } = options.artifactProcessor.createArtifactContext(options.fileArtifacts);
105
+ systemMessages.push(getFileContextFragment(paths, content));
106
+ }
107
+ return systemMessages;
108
+ }
56
109
  const logOptions = (options) => {
57
110
  const logger = getLogger();
58
111
  logger.info("[prompt-service] " + "=".repeat(80));
59
112
  logger.info("[prompt-service] buildCodeGenerationSystemPrompt options:");
60
- logger.info(JSON.stringify(options, null, 2));
113
+ const safeOptions = {
114
+ ...options,
115
+ componentTargets: options.componentTargets?.map(({ nodePath, ...rest }) => rest),
116
+ };
117
+ logger.info(JSON.stringify(safeOptions, null, 2));
61
118
  logger.info("[prompt-service] " + "=".repeat(80));
62
119
  };
63
120
  const logSystemPrompt = (systemMessages) => {
@@ -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":"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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=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,24 @@
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
+ static mergeResults(result1: PromptInterpretationTaskResult | undefined, result2: PromptInterpretationTaskResult | undefined): PromptInterpretationTaskResult;
19
+ private buildSystemPrompt;
20
+ abort(): void;
21
+ resolve(): Promise<PromptInterpretationTaskResult>;
22
+ private doResolve;
23
+ }
24
+ //# 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;WAEY,YAAY,CACxB,OAAO,EAAE,8BAA8B,GAAG,SAAS,EACnD,OAAO,EAAE,8BAA8B,GAAG,SAAS,GAClD,8BAA8B;IAWjC,OAAO,CAAC,iBAAiB;IAgFlB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,OAAO,CAAC,8BAA8B,CAAC;YAQ3C,SAAS;CAgBxB"}
@@ -0,0 +1,117 @@
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: "unknown",
18
+ components: [],
19
+ apis: [],
20
+ };
21
+ static mergeResults(result1, result2) {
22
+ result1 = result1 ?? PromptInterpretTask.defaultResult;
23
+ result2 = result2 ?? PromptInterpretTask.defaultResult;
24
+ return {
25
+ classification: result2.classification,
26
+ components: [...new Set([...result1.components, ...result2.components])],
27
+ apis: [...new Set([...result1.apis, ...result2.apis])],
28
+ };
29
+ }
30
+ buildSystemPrompt() {
31
+ const componentContext = Object.fromEntries(Object.entries(this.appContext.componentSemanticsById).map(([id, { tagName, bindName, semanticPath, semanticProperties }]) => [
32
+ id,
33
+ {
34
+ type: tagName,
35
+ name: bindName,
36
+ path: semanticPath,
37
+ properties: semanticProperties,
38
+ },
39
+ ]));
40
+ const apiContext = this.appContext.apiSemanticsByName;
41
+ const componentIds = Object.keys(this.appContext.componentSemanticsById);
42
+ const apiNames = Object.keys(this.appContext.apiSemanticsByName);
43
+ const systemPrompt = `
44
+ 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.
45
+
46
+ Think step-by-step.
47
+ 1. First, determine the user's primary intent based on their request. Use the 'Intent Definitions' section below to guide your choice.
48
+ 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').
49
+ 3. Compare these keywords against the provided application context below.
50
+ 4. Pay close attention to the 'properties' of components, as users often refer to them by their visual state (e.g., color, text).
51
+ 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').
52
+ 6. Use the 'name' property, which is how a developer might refer to the component in code.
53
+
54
+ # Intent Definitions
55
+ - **new_app**: 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".
56
+ - **broad_update**: 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".
57
+ - **incremental_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".
58
+ - **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?".
59
+ - **unknown**: The user's intent is unclear, irrelevant, or gibberish.
60
+
61
+ # Application Context
62
+
63
+ ## UI Components
64
+ A list of all UI components in the application.
65
+ \`\`\`json
66
+ ${JSON.stringify(componentContext, null, 2)}
67
+ \`\`\`
68
+
69
+ ## APIs
70
+ A list of all available APIs (backend logic).
71
+ \`\`\`json
72
+ ${JSON.stringify(apiContext, null, 2)}
73
+ \`\`\`
74
+
75
+ # User Request
76
+ 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.
77
+
78
+ **User Request:** "${this.prompt}"
79
+
80
+ 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.`;
81
+ const schema = z.object({
82
+ classification: PromptClassificationEnum.describe("The user's primary intent. Analyze the prompt to determine the most fitting category."),
83
+ components: (componentIds.length > 0
84
+ ? z.array(z.enum(componentIds))
85
+ : 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."),
86
+ apis: (apiNames.length > 0
87
+ ? z.array(z.enum(apiNames))
88
+ : 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."),
89
+ });
90
+ return { systemPrompt, schema };
91
+ }
92
+ abort() {
93
+ this.abortController.abort();
94
+ }
95
+ resolve() {
96
+ if (this.result) {
97
+ return this.result;
98
+ }
99
+ this.result = this.doResolve();
100
+ return this.result;
101
+ }
102
+ async doResolve() {
103
+ const { systemPrompt, schema } = this.buildSystemPrompt();
104
+ const { object: interpretation } = await generateObject({
105
+ model: this.llmProvider.modelForTask("classifyPrompt"),
106
+ schema,
107
+ prompt: systemPrompt,
108
+ abortSignal: this.abortController.signal,
109
+ });
110
+ return {
111
+ classification: interpretation.classification,
112
+ components: interpretation.components,
113
+ apis: interpretation.apis,
114
+ };
115
+ }
116
+ }
117
+ //# 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"}
@@ -1,2 +1,4 @@
1
- export declare const getBaseFragment: () => string;
1
+ export declare const getFullAppBaseFragment: () => string;
2
+ export declare const getBroadUpdateBaseFragment: () => string;
3
+ export declare const getIncrementalUpdateBaseFragment: (tagNames: string[], anyCustomComponents: boolean) => string;
2
4
  //# sourceMappingURL=base-fragment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-fragment.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/fragment-generators/base-fragment.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,cAW3B,CAAC"}
1
+ {"version":3,"file":"base-fragment.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/fragment-generators/base-fragment.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,sBAAsB,cAclC,CAAC;AAEF,eAAO,MAAM,0BAA0B,cActC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,UAAU,MAAM,EAAE,EAClB,qBAAqB,OAAO,WAkC7B,CAAC"}