@superblocksteam/vite-plugin-file-sync 2.0.0-next.9 → 2.0.0-next.90

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 (284) hide show
  1. package/dist/ai-service/app-interface/source-tracker.d.ts +17 -0
  2. package/dist/ai-service/app-interface/source-tracker.d.ts.map +1 -0
  3. package/dist/ai-service/app-interface/source-tracker.js +41 -0
  4. package/dist/ai-service/app-interface/source-tracker.js.map +1 -0
  5. package/dist/ai-service/artifacts/bolt.js +1 -1
  6. package/dist/ai-service/artifacts/bolt.js.map +1 -1
  7. package/dist/ai-service/const.d.ts +8 -2
  8. package/dist/ai-service/const.d.ts.map +1 -1
  9. package/dist/ai-service/const.js +8 -2
  10. package/dist/ai-service/const.js.map +1 -1
  11. package/dist/ai-service/index.d.ts +5 -1
  12. package/dist/ai-service/index.d.ts.map +1 -1
  13. package/dist/ai-service/index.js +18 -0
  14. package/dist/ai-service/index.js.map +1 -1
  15. package/dist/ai-service/integrations/const.d.ts +1 -1
  16. package/dist/ai-service/integrations/const.js +1 -1
  17. package/dist/ai-service/integrations/const.js.map +1 -1
  18. package/dist/ai-service/integrations/to-sdk-prompt.js +210 -15
  19. package/dist/ai-service/integrations/to-sdk-prompt.js.map +1 -1
  20. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts +1 -1
  21. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts.map +1 -1
  22. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js +2 -2
  23. package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js.map +1 -1
  24. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts +1 -1
  25. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts.map +1 -1
  26. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js +2 -2
  27. package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js.map +1 -1
  28. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts +1 -1
  29. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts.map +1 -1
  30. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js +2 -2
  31. package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js.map +1 -1
  32. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts +1 -1
  33. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts.map +1 -1
  34. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js +2 -2
  35. package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js.map +1 -1
  36. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts +1 -1
  37. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts.map +1 -1
  38. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js +2 -2
  39. package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js.map +1 -1
  40. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts +1 -1
  41. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts.map +1 -1
  42. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js +2 -2
  43. package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js.map +1 -1
  44. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts +1 -1
  45. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts.map +1 -1
  46. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js +2 -2
  47. package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js.map +1 -1
  48. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts +1 -1
  49. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts.map +1 -1
  50. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js +2 -2
  51. package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js.map +1 -1
  52. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts +1 -1
  53. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts.map +1 -1
  54. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js +2 -2
  55. package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js.map +1 -1
  56. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts +1 -1
  57. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts.map +1 -1
  58. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js +2 -2
  59. package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js.map +1 -1
  60. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts +1 -1
  61. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts.map +1 -1
  62. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js +2 -2
  63. package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js.map +1 -1
  64. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts +1 -1
  65. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts.map +1 -1
  66. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js +2 -2
  67. package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js.map +1 -1
  68. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts +1 -1
  69. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts.map +1 -1
  70. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js +2 -2
  71. package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js.map +1 -1
  72. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts +1 -1
  73. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts.map +1 -1
  74. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js +2 -2
  75. package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js.map +1 -1
  76. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts +1 -1
  77. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts.map +1 -1
  78. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js +2 -2
  79. package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js.map +1 -1
  80. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts +1 -1
  81. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts.map +1 -1
  82. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js +2 -2
  83. package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js.map +1 -1
  84. package/dist/ai-service/prompts/generated/library-typedefs/Dim.js +1 -1
  85. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts +1 -1
  86. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts.map +1 -1
  87. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js +2 -2
  88. package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js.map +1 -1
  89. package/dist/ai-service/prompts/generated/subprompts/index.d.ts +3 -0
  90. package/dist/ai-service/prompts/generated/subprompts/index.d.ts.map +1 -1
  91. package/dist/ai-service/prompts/generated/subprompts/index.js +3 -0
  92. package/dist/ai-service/prompts/generated/subprompts/index.js.map +1 -1
  93. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts +1 -1
  94. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts.map +1 -1
  95. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js +2 -2
  96. package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js.map +1 -1
  97. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts +1 -1
  98. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts.map +1 -1
  99. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js +2 -2
  100. package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js.map +1 -1
  101. package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js +1 -1
  102. package/dist/ai-service/prompts/generated/subprompts/superblocks-data-filtering.d.ts +2 -0
  103. package/dist/ai-service/prompts/generated/subprompts/superblocks-data-filtering.d.ts.map +1 -0
  104. package/dist/ai-service/prompts/generated/subprompts/superblocks-data-filtering.js +6 -0
  105. package/dist/ai-service/prompts/generated/subprompts/superblocks-data-filtering.js.map +1 -0
  106. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts +1 -1
  107. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts.map +1 -1
  108. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js +2 -2
  109. package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js.map +1 -1
  110. package/dist/ai-service/prompts/generated/subprompts/superblocks-forms.d.ts +2 -0
  111. package/dist/ai-service/prompts/generated/subprompts/superblocks-forms.d.ts.map +1 -0
  112. package/dist/ai-service/prompts/generated/subprompts/superblocks-forms.js +6 -0
  113. package/dist/ai-service/prompts/generated/subprompts/superblocks-forms.js.map +1 -0
  114. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts +1 -1
  115. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts.map +1 -1
  116. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js +2 -2
  117. package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js.map +1 -1
  118. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts +1 -1
  119. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts.map +1 -1
  120. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js +2 -2
  121. package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js.map +1 -1
  122. package/dist/ai-service/prompts/generated/subprompts/superblocks-rbac.d.ts +2 -0
  123. package/dist/ai-service/prompts/generated/subprompts/superblocks-rbac.d.ts.map +1 -0
  124. package/dist/ai-service/prompts/generated/subprompts/superblocks-rbac.js +6 -0
  125. package/dist/ai-service/prompts/generated/subprompts/superblocks-rbac.js.map +1 -0
  126. package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js +1 -1
  127. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts +1 -1
  128. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts.map +1 -1
  129. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js +2 -2
  130. package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js.map +1 -1
  131. package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js +1 -1
  132. package/dist/ai-service/prompts/generated/subprompts/system.d.ts +1 -1
  133. package/dist/ai-service/prompts/generated/subprompts/system.d.ts.map +1 -1
  134. package/dist/ai-service/prompts/generated/subprompts/system.js +2 -2
  135. package/dist/ai-service/prompts/generated/subprompts/system.js.map +1 -1
  136. package/dist/ai-service/prompts/system.d.ts.map +1 -1
  137. package/dist/ai-service/prompts/system.js +12 -0
  138. package/dist/ai-service/prompts/system.js.map +1 -1
  139. package/dist/ai-service/result-buffer/bolt.d.ts +3 -0
  140. package/dist/ai-service/result-buffer/bolt.d.ts.map +1 -1
  141. package/dist/ai-service/result-buffer/bolt.js +28 -1
  142. package/dist/ai-service/result-buffer/bolt.js.map +1 -1
  143. package/dist/ai-service/result-buffer/shared.d.ts +6 -2
  144. package/dist/ai-service/result-buffer/shared.d.ts.map +1 -1
  145. package/dist/ai-service/result-buffer/shared.js.map +1 -1
  146. package/dist/ai-service/state-machine/clark-fsm.d.ts +17 -2
  147. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  148. package/dist/ai-service/state-machine/clark-fsm.js +1 -0
  149. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  150. package/dist/ai-service/state-machine/fsm.js +1 -1
  151. package/dist/ai-service/state-machine/fsm.js.map +1 -1
  152. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  153. package/dist/ai-service/state-machine/handlers/agent-planning.js +93 -29
  154. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  155. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +1 -1
  156. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  157. package/dist/ai-service/state-machine/handlers/llm-generating.js +79 -16
  158. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  159. package/dist/ai-service/state-machine/handlers/post-processing.d.ts +6 -1
  160. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -1
  161. package/dist/ai-service/state-machine/handlers/post-processing.js +174 -38
  162. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
  163. package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
  164. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +18 -0
  165. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  166. package/dist/ai-service/state-machine/helpers/change-info.d.ts +8 -0
  167. package/dist/ai-service/state-machine/helpers/change-info.d.ts.map +1 -0
  168. package/dist/ai-service/state-machine/helpers/change-info.js +109 -0
  169. package/dist/ai-service/state-machine/helpers/change-info.js.map +1 -0
  170. package/dist/ai-service/state-machine/helpers/peer.d.ts +3 -2
  171. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  172. package/dist/ai-service/state-machine/helpers/peer.js +35 -4
  173. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  174. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  175. package/dist/ai-service/state-machine/mocks.js +9 -1
  176. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  177. package/dist/ai-service/transform/api-builder/shared.js +1 -1
  178. package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
  179. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +1 -1
  180. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  181. package/dist/ai-service/transform/shared.d.ts +5 -0
  182. package/dist/ai-service/transform/shared.d.ts.map +1 -1
  183. package/dist/ai-service/transform/shared.js +24 -0
  184. package/dist/ai-service/transform/shared.js.map +1 -1
  185. package/dist/ai-service/types.d.ts +9 -0
  186. package/dist/ai-service/types.d.ts.map +1 -1
  187. package/dist/ai-service/types.js.map +1 -1
  188. package/dist/binding-extraction/extract-embedded-identifiers.d.ts +2 -11
  189. package/dist/binding-extraction/extract-embedded-identifiers.d.ts.map +1 -1
  190. package/dist/binding-extraction/extract-embedded-identifiers.js +9 -91
  191. package/dist/binding-extraction/extract-embedded-identifiers.js.map +1 -1
  192. package/dist/binding-extraction/template-strings.d.ts +1 -2
  193. package/dist/binding-extraction/template-strings.d.ts.map +1 -1
  194. package/dist/codegen.d.ts +2 -1
  195. package/dist/codegen.d.ts.map +1 -1
  196. package/dist/codegen.js +52 -16
  197. package/dist/codegen.js.map +1 -1
  198. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  199. package/dist/file-sync-vite-plugin.js +15 -26
  200. package/dist/file-sync-vite-plugin.js.map +1 -1
  201. package/dist/file-system-manager.d.ts +5 -4
  202. package/dist/file-system-manager.d.ts.map +1 -1
  203. package/dist/file-system-manager.js +46 -9
  204. package/dist/file-system-manager.js.map +1 -1
  205. package/dist/index.d.ts +3 -0
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js +2 -0
  208. package/dist/index.js.map +1 -1
  209. package/dist/inject-index-vite-plugin.d.ts +8 -0
  210. package/dist/inject-index-vite-plugin.d.ts.map +1 -0
  211. package/dist/inject-index-vite-plugin.js +41 -0
  212. package/dist/inject-index-vite-plugin.js.map +1 -0
  213. package/dist/lock-service/index.d.ts +1 -1
  214. package/dist/lock-service/index.d.ts.map +1 -1
  215. package/dist/lock-service/index.js +37 -12
  216. package/dist/lock-service/index.js.map +1 -1
  217. package/dist/parsing/ids.d.ts.map +1 -1
  218. package/dist/parsing/ids.js +2 -3
  219. package/dist/parsing/ids.js.map +1 -1
  220. package/dist/parsing/imports.d.ts +15 -0
  221. package/dist/parsing/imports.d.ts.map +1 -1
  222. package/dist/parsing/imports.js +42 -0
  223. package/dist/parsing/imports.js.map +1 -1
  224. package/dist/parsing/jsx-utils.d.ts +1 -1
  225. package/dist/parsing/jsx-utils.d.ts.map +1 -1
  226. package/dist/parsing/jsx-utils.js +1 -1
  227. package/dist/parsing/jsx-utils.js.map +1 -1
  228. package/dist/parsing/jsx.d.ts.map +1 -1
  229. package/dist/parsing/jsx.js +1 -12
  230. package/dist/parsing/jsx.js.map +1 -1
  231. package/dist/parsing/properties.d.ts.map +1 -1
  232. package/dist/parsing/properties.js +12 -2
  233. package/dist/parsing/properties.js.map +1 -1
  234. package/dist/parsing/scope.d.ts +0 -1
  235. package/dist/parsing/scope.d.ts.map +1 -1
  236. package/dist/parsing/scope.js +3 -7
  237. package/dist/parsing/scope.js.map +1 -1
  238. package/dist/parsing/theme.js +2 -2
  239. package/dist/parsing/theme.js.map +1 -1
  240. package/dist/parsing/util.d.ts +1 -0
  241. package/dist/parsing/util.d.ts.map +1 -1
  242. package/dist/parsing/util.js +3 -0
  243. package/dist/parsing/util.js.map +1 -1
  244. package/dist/plugin-options.d.ts +1 -1
  245. package/dist/plugin-options.d.ts.map +1 -1
  246. package/dist/refactor/javascript.d.ts.map +1 -1
  247. package/dist/refactor/javascript.js +7 -0
  248. package/dist/refactor/javascript.js.map +1 -1
  249. package/dist/rename-manager.d.ts.map +1 -1
  250. package/dist/rename-manager.js +19 -4
  251. package/dist/rename-manager.js.map +1 -1
  252. package/dist/routing.d.ts +2 -2
  253. package/dist/routing.d.ts.map +1 -1
  254. package/dist/routing.js +1 -2
  255. package/dist/routing.js.map +1 -1
  256. package/dist/sb-scope-manager.d.ts +3 -1
  257. package/dist/sb-scope-manager.d.ts.map +1 -1
  258. package/dist/sb-scope-manager.js +27 -12
  259. package/dist/sb-scope-manager.js.map +1 -1
  260. package/dist/socket-manager.d.ts +4 -2
  261. package/dist/socket-manager.d.ts.map +1 -1
  262. package/dist/socket-manager.js +17 -4
  263. package/dist/socket-manager.js.map +1 -1
  264. package/dist/source-tracker.d.ts.map +1 -1
  265. package/dist/source-tracker.js +42 -30
  266. package/dist/source-tracker.js.map +1 -1
  267. package/dist/sync-service/draft-helpers.d.ts.map +1 -1
  268. package/dist/sync-service/draft-helpers.js +5 -90
  269. package/dist/sync-service/draft-helpers.js.map +1 -1
  270. package/dist/sync-service/index.d.ts +2 -0
  271. package/dist/sync-service/index.d.ts.map +1 -1
  272. package/dist/sync-service/index.js +43 -7
  273. package/dist/sync-service/index.js.map +1 -1
  274. package/dist/sync-service/server-rpc/client.d.ts +5 -1
  275. package/dist/sync-service/server-rpc/client.d.ts.map +1 -1
  276. package/dist/sync-service/server-rpc/client.js +9 -25
  277. package/dist/sync-service/server-rpc/client.js.map +1 -1
  278. package/dist/sync-service/server-rpc/handlers.d.ts +2 -2
  279. package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -1
  280. package/dist/sync-service/server-rpc/handlers.js.map +1 -1
  281. package/dist/util/logger.d.ts.map +1 -1
  282. package/dist/util/logger.js +9 -8
  283. package/dist/util/logger.js.map +1 -1
  284. package/package.json +13 -8
@@ -1,71 +1,123 @@
1
1
  import { Paths } from "../../const.js";
2
- import { AddMetadataToApiYamlTransformer } from "../../transform/add-metadata-to-api-yaml/transformer.js";
3
- import { ApiBuilderToYamlTransformer } from "../../transform/api-builder/to-yaml-transformer.js";
4
- import { RemoveApiBuilderImportsTransformer } from "../../transform/remove-api-builder-imports/transformer.js";
5
- import { applyFileTransformations, matchPath } from "../../transform/shared.js";
6
- import { WorkaroundMissingSbApiTransformer } from "../../transform/workaround-missing-sbapi/transformer.js";
2
+ import { matchMultiplePaths, renderPath } from "../../transform/shared.js";
7
3
  import { LLM_FINISHED, POST_PROCESSING_ERRORED, POST_PROCESSING_FINISHED, } from "../clark-fsm.js";
4
+ import { sendChangeInfoHelper, DependencyInfoPath, } from "../helpers/change-info.js";
8
5
  import { sendUserMessageChannel } from "../helpers/peer.js";
9
6
  import { transitionFrom } from "../helpers/transition.js";
10
- export const doPostProcessing = (clark, { applicationId, organizationId, draftInterface, templateRenderer, appShell, }) => {
7
+ export const doPostProcessing = (clark, { draftInterface, appShell }) => {
11
8
  const transitionTo = transitionFrom(clark);
9
+ const sendChangeInfo = sendChangeInfoHelper(clark);
12
10
  const sendUserMessage = sendUserMessageChannel(clark);
13
11
  const createDraftFiles = (files) => {
12
+ for (const file of files) {
13
+ // ui > page/api change infos: ready dot
14
+ void sendChangeInfo({
15
+ type: "ready",
16
+ filePath: file.filePath,
17
+ });
18
+ }
14
19
  return Promise.all(files.map((file) => draftInterface.createDraftFile(file.filePath, file.content)));
15
20
  };
21
+ // send ui messages and invoke package installer
22
+ const handleDependencies = async (packageJson) => {
23
+ // ui > control message A: spin
24
+ void sendUserMessage({
25
+ type: "control",
26
+ group: "dependency-resolve",
27
+ status: "pending",
28
+ text: "Resolving dependencies…",
29
+ });
30
+ const packageChanges = await parsePackageJsonChanges(draftInterface, packageJson.content);
31
+ // ui > deps change infos: spin
32
+ for (const change of packageChanges) {
33
+ void sendChangeInfo({
34
+ type: "pending",
35
+ filePath: renderPath(DependencyInfoPath, {
36
+ packageName: change.package,
37
+ }),
38
+ action: change.type,
39
+ });
40
+ }
41
+ // ui > control message A: checkmark
42
+ void sendUserMessage({
43
+ type: "control",
44
+ group: "dependency-resolve",
45
+ status: "validated",
46
+ text: "Resolved dependencies",
47
+ });
48
+ // any previous package changes that are still marked ready
49
+ // should be treated as deleted
50
+ const previousReadyChanges = Object.values(clark.context.generatedChangeInfo ?? {}).filter((change) => change.status === "ready" &&
51
+ change.action !== "delete" &&
52
+ change.filePath.startsWith(DependencyInfoPath));
53
+ // ui > deps change infos: delete
54
+ for (const change of previousReadyChanges) {
55
+ sendChangeInfo({
56
+ type: "ready",
57
+ filePath: change.filePath,
58
+ action: "delete",
59
+ });
60
+ }
61
+ // ui > control message B: spin
62
+ void sendUserMessage({
63
+ type: "control",
64
+ group: "dependency-validate",
65
+ status: "pending",
66
+ text: "Verifying dependencies…",
67
+ });
68
+ await appShell.runNpmInstall(clark.context.abortController?.signal);
69
+ // ui > deps change infos: checkmark
70
+ for (const change of packageChanges) {
71
+ sendChangeInfo({
72
+ type: "validated",
73
+ filePath: renderPath(DependencyInfoPath, {
74
+ packageName: change.package,
75
+ }),
76
+ });
77
+ }
78
+ // ui > control message B: checkmark
79
+ void sendUserMessage({
80
+ type: "control",
81
+ group: "dependency-validate",
82
+ status: "validated",
83
+ text: "Dependencies verified",
84
+ });
85
+ };
16
86
  return async ({ event }) => {
17
87
  switch (event.type) {
18
88
  case LLM_FINISHED: {
19
89
  const { files } = event;
90
+ const apiPaths = matchMultiplePaths(
91
+ // we have already drafted the generated apis into yaml at this point,
92
+ // but the api builder files are still in the event's files list
93
+ Paths.ApiYamls, Paths.GeneratedApis);
94
+ const scopePaths = matchMultiplePaths(Paths.PageScopes, Paths.AppScope);
20
95
  try {
21
- const transformed = await applyFileTransformations(files, [
22
- new ApiBuilderToYamlTransformer({
23
- skipCleanup: true,
24
- templateRenderer,
25
- }),
26
- new AddMetadataToApiYamlTransformer({
27
- applicationId,
28
- organizationId,
29
- }),
30
- new RemoveApiBuilderImportsTransformer(),
31
- new WorkaroundMissingSbApiTransformer(),
32
- ]);
33
- const scopePathMatcher = matchPath(Paths.AllScopes);
34
- const apiPathMatcher = matchPath(Paths.ApiYamls);
35
- // bucket files because order matters
36
- const { packageJson, scopes, apiYamls, otherArtifacts } = transformed.reduce((acc, file) => {
37
- if (file.filePath === "package.json") {
96
+ const { packageJson, scopes, notApiArtifacts } = files.reduce((acc, file) => {
97
+ if (file.filePath === Paths.PackageJson) {
38
98
  acc.packageJson = file;
39
99
  }
40
- else if (scopePathMatcher(file.filePath).matched) {
100
+ else if (scopePaths(file.filePath).matched) {
41
101
  acc.scopes.push(file);
42
102
  }
43
- else if (apiPathMatcher(file.filePath).matched) {
44
- acc.apiYamls.push(file);
45
- }
46
- else {
47
- acc.otherArtifacts.push(file);
103
+ else if (!apiPaths(file.filePath).matched) {
104
+ acc.notApiArtifacts.push(file);
48
105
  }
49
106
  return acc;
50
107
  }, {
51
108
  packageJson: null,
52
- apiYamls: [],
53
109
  scopes: [],
54
- otherArtifacts: [],
110
+ notApiArtifacts: [],
55
111
  });
56
112
  if (packageJson) {
57
- sendUserMessage({
58
- text: "Installing dependencies…",
59
- });
60
113
  await createDraftFiles([packageJson]);
61
- await appShell.runNpmInstall(clark.context.abortController?.signal);
114
+ await handleDependencies(packageJson);
62
115
  }
63
116
  await createDraftFiles(scopes);
64
- await createDraftFiles(apiYamls);
65
- await createDraftFiles(otherArtifacts);
117
+ await createDraftFiles(notApiArtifacts);
66
118
  transitionTo({
67
119
  type: POST_PROCESSING_FINISHED,
68
- files: transformed,
120
+ files: files,
69
121
  });
70
122
  }
71
123
  catch (err) {
@@ -82,4 +134,88 @@ export const doPostProcessing = (clark, { applicationId, organizationId, draftIn
82
134
  }
83
135
  };
84
136
  };
137
+ // get dependency changes to be shown in the ui
138
+ export const parsePackageJsonChanges = async (draftInterface, updatedPackageJsonContent) => {
139
+ // TODO: as an optimization, we could get the datastructure diff form rather than string
140
+ const diff = await draftInterface.getDraftDiff([Paths.PackageJson]);
141
+ if (!diff) {
142
+ return [];
143
+ }
144
+ let updatedPackageJson;
145
+ try {
146
+ updatedPackageJson = JSON.parse(updatedPackageJsonContent);
147
+ }
148
+ catch {
149
+ return [];
150
+ }
151
+ const allCurrentPackages = new Set([
152
+ // we only surface packages in the dependencies object
153
+ ...Object.keys(updatedPackageJson.dependencies || {}),
154
+ ]);
155
+ const changes = [];
156
+ const lines = diff.split("\n");
157
+ const addedPackages = new Set();
158
+ const removedPackages = new Set();
159
+ const packageRegex = /^\s*"([^"]+)":\s*"[^"]*",?$/;
160
+ for (const line of lines) {
161
+ // Skip non-diff content lines
162
+ if (!line.startsWith("+") && !line.startsWith("-")) {
163
+ continue;
164
+ }
165
+ // Skip diff metadata lines (like +++ or ---)
166
+ if (line.startsWith("+++") || line.startsWith("---")) {
167
+ continue;
168
+ }
169
+ const lineContent = line.slice(1); // Remove +, -, or space prefix
170
+ const match = lineContent.match(packageRegex);
171
+ if (match) {
172
+ const packageName = match[1];
173
+ if (!packageName) {
174
+ continue;
175
+ }
176
+ if (line.startsWith("+")) {
177
+ // For additions, verify the package is actually in the final dependencies
178
+ if (allCurrentPackages.has(packageName)) {
179
+ addedPackages.add(packageName);
180
+ }
181
+ }
182
+ else if (line.startsWith("-")) {
183
+ // For removals, exclude obvious top-level package.json fields
184
+ if (!commonTopLevelPackageJsonFields.has(packageName)) {
185
+ removedPackages.add(packageName);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ // Determine the type of change for each package
191
+ for (const packageName of addedPackages) {
192
+ if (removedPackages.has(packageName)) {
193
+ // Package appears in both add and remove = edit
194
+ changes.push({ type: "edit", package: packageName });
195
+ }
196
+ else {
197
+ // Package only appears in add = addition
198
+ changes.push({ type: "create", package: packageName });
199
+ }
200
+ }
201
+ for (const packageName of removedPackages) {
202
+ if (!addedPackages.has(packageName)) {
203
+ changes.push({ type: "delete", package: packageName });
204
+ }
205
+ }
206
+ return changes;
207
+ };
208
+ const commonTopLevelPackageJsonFields = new Set([
209
+ "name",
210
+ "version",
211
+ "description",
212
+ "main",
213
+ "scripts",
214
+ "keywords",
215
+ "author",
216
+ "license",
217
+ "repository",
218
+ "homepage",
219
+ "bugs",
220
+ ]);
85
221
  //# sourceMappingURL=post-processing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"post-processing.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/post-processing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-processing.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/post-processing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-reviewing.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/runtime-reviewing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKV,KAAK,EACL,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,QAAQ,uBAAuB,MAIjB,WAAW,eAAe,KAAG,OAAO,CAAC,IAAI,CAwCxD,CAAC"}
1
+ {"version":3,"file":"runtime-reviewing.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/runtime-reviewing.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAKV,KAAK,EACL,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,QAAQ,uBAAuB,MAMjB,WAAW,eAAe,KAAG,OAAO,CAAC,IAAI,CA0DxD,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { APP_RUNTIME_UPDATED_WITHOUT_EDITS, POST_PROCESSING_FINISHED, RUNTIME_REVIEW_ERRORED, RUNTIME_REVIEW_FINISHED, USER_REJECTED_DRAFT, } from "../clark-fsm.js";
2
+ import { sendChangeInfoHelper } from "../helpers/change-info.js";
3
+ import { sendUserMessageChannel } from "../helpers/peer.js";
2
4
  import { transitionFrom } from "../helpers/transition.js";
3
5
  export const doRuntimeReviewing = (clark, params) => {
4
6
  const transitionTo = transitionFrom(clark);
7
+ const sendChangeInfo = sendChangeInfoHelper(clark);
8
+ const sendUserMessage = sendUserMessageChannel(clark);
5
9
  return async ({ event }) => {
6
10
  switch (event.type) {
7
11
  case USER_REJECTED_DRAFT:
@@ -26,6 +30,20 @@ export const doRuntimeReviewing = (clark, params) => {
26
30
  });
27
31
  }
28
32
  else {
33
+ for (const filePath of Object.keys(clark.context.generatedChangeInfo ?? {})) {
34
+ void sendChangeInfo({
35
+ type: "validated",
36
+ filePath,
37
+ });
38
+ }
39
+ if (clark.context.usedDebugging) {
40
+ void sendUserMessage({
41
+ type: "control",
42
+ group: "debugging",
43
+ status: "pending",
44
+ text: "QA checks passed",
45
+ });
46
+ }
29
47
  transitionTo({
30
48
  type: RUNTIME_REVIEW_FINISHED,
31
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-reviewing.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/runtime-reviewing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAW1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAY,EACZ,MAA+B,EAC/B,EAAE;IACF,MAAM,YAAY,GAAG,cAAc,CAAoB,KAAK,CAAC,CAAC;IAE9D,OAAO,KAAK,EAAE,EAAE,KAAK,EAAmB,EAAiB,EAAE;QACzD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,mBAAmB;gBACtB,gCAAgC;gBAChC,0EAA0E;gBAC1E,YAAY,CAAQ;oBAClB,IAAI,EAAE,iCAAiC;iBACxC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,wBAAwB;gBAC3B,CAAC;oBACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;oBAExB,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBAChC,GAAG,OAAO;wBACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;qBAC3D,CAAC,CAAC,CAAC;oBAEJ,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CACvD,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CACtC,CAAC;oBAEF,IAAI,cAAc,EAAE,CAAC;wBACnB,YAAY,CAAiB;4BAC3B,IAAI,EAAE,sBAAsB;4BAC5B,cAAc;yBACf,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,YAAY,CAAgB;4BAC1B,IAAI,EAAE,uBAAuB;yBAC9B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime-reviewing.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/runtime-reviewing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAW1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAY,EACZ,MAA+B,EAC/B,EAAE;IACF,MAAM,YAAY,GAAG,cAAc,CAAoB,KAAK,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEtD,OAAO,KAAK,EAAE,EAAE,KAAK,EAAmB,EAAiB,EAAE;QACzD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,mBAAmB;gBACtB,gCAAgC;gBAChC,0EAA0E;gBAC1E,YAAY,CAAQ;oBAClB,IAAI,EAAE,iCAAiC;iBACxC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,wBAAwB;gBAC3B,CAAC;oBACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;oBAExB,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBAChC,GAAG,OAAO;wBACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;qBAC3D,CAAC,CAAC,CAAC;oBAEJ,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CACvD,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CACtC,CAAC;oBAEF,IAAI,cAAc,EAAE,CAAC;wBACnB,YAAY,CAAiB;4BAC3B,IAAI,EAAE,sBAAsB;4BAC5B,cAAc;yBACf,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAChC,KAAK,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CACxC,EAAE,CAAC;4BACF,KAAK,cAAc,CAAC;gCAClB,IAAI,EAAE,WAAW;gCACjB,QAAQ;6BACT,CAAC,CAAC;wBACL,CAAC;wBAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;4BAChC,KAAK,eAAe,CAAC;gCACnB,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,WAAW;gCAClB,MAAM,EAAE,SAAS;gCACjB,IAAI,EAAE,kBAAkB;6BACzB,CAAC,CAAC;wBACL,CAAC;wBAED,YAAY,CAAgB;4BAC1B,IAAI,EAAE,uBAAuB;yBAC9B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Clark } from "../clark-fsm.js";
2
+ export declare const DependencyInfoPath = "package.json/:packageName";
3
+ export declare const sendChangeInfoHelper: (clark: Clark) => ({ type, filePath, action, }: {
4
+ type: "pending" | "error" | "ready" | "validated";
5
+ filePath: string;
6
+ action?: "create" | "edit" | "delete";
7
+ }) => Promise<void> | undefined;
8
+ //# sourceMappingURL=change-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-info.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/change-info.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,MAsBvC,6BAIL;IACD,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CACvC,8BA+FF,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { basename } from "node:path";
2
+ import { getLogger } from "../../../util/logger.js";
3
+ import { Paths } from "../../const.js";
4
+ import { matchPath, renderPath } from "../../transform/shared.js";
5
+ import { sendChangeInfoChannel } from "./peer.js";
6
+ export const DependencyInfoPath = "package.json/:packageName";
7
+ export const sendChangeInfoHelper = (clark) => {
8
+ const apiPathMatcher = matchPath(Paths.GeneratedApis);
9
+ const componentPathMatcher = matchPath(Paths.Components);
10
+ const pagePathMatcher = matchPath(Paths.PageIndexes);
11
+ const dependencyPathMatcher = matchPath(DependencyInfoPath);
12
+ const sendChangeInfo = sendChangeInfoChannel(clark);
13
+ const push = (info) => {
14
+ clark.updateContext((context) => ({
15
+ ...context,
16
+ generatedChangeInfo: {
17
+ ...context.generatedChangeInfo,
18
+ [info.filePath]: info,
19
+ },
20
+ }));
21
+ return sendChangeInfo(info);
22
+ };
23
+ if (!clark.context.generatedChangeInfo) {
24
+ clark.updateContext({
25
+ generatedChangeInfo: {},
26
+ });
27
+ }
28
+ return ({ type, filePath, action, }) => {
29
+ const { initialFilePaths } = clark.context;
30
+ const existingChangeInfo = clark.context.generatedChangeInfo?.[filePath];
31
+ switch (type) {
32
+ case "ready":
33
+ case "validated":
34
+ case "error": {
35
+ if (!existingChangeInfo) {
36
+ getLogger().warn(`[ai-service] can't update changeInfo for unknown file: ${filePath} (type: ${type}, action: ${action})`);
37
+ getLogger().info(`[ai-service] ${JSON.stringify({
38
+ generatedChangeInfo: clark.context.generatedChangeInfo,
39
+ })}`);
40
+ return;
41
+ }
42
+ return push({
43
+ ...existingChangeInfo,
44
+ status: type,
45
+ });
46
+ }
47
+ case "pending": {
48
+ const { apis, components } = initialFilePaths ?? {};
49
+ if (existingChangeInfo) {
50
+ return push({
51
+ ...existingChangeInfo,
52
+ status: "pending",
53
+ });
54
+ }
55
+ const dependencyPath = dependencyPathMatcher(filePath);
56
+ if (dependencyPath.matched) {
57
+ const { packageName } = dependencyPath.params;
58
+ return push({
59
+ type: "dependency",
60
+ name: packageName,
61
+ action: action ?? "create",
62
+ status: "pending",
63
+ filePath,
64
+ });
65
+ }
66
+ const componentPath = componentPathMatcher(filePath);
67
+ if (componentPath.matched) {
68
+ let { componentName } = componentPath.params;
69
+ componentName = basename(componentName, ".tsx");
70
+ return push({
71
+ type: "component",
72
+ name: componentName,
73
+ action: components?.includes(componentName) ? "edit" : "create",
74
+ status: "pending",
75
+ filePath,
76
+ });
77
+ }
78
+ const pagePath = pagePathMatcher(filePath);
79
+ if (pagePath.matched) {
80
+ const { pageName } = pagePath.params;
81
+ return push({
82
+ type: "page",
83
+ name: pageName,
84
+ action: "edit",
85
+ status: "pending",
86
+ filePath,
87
+ });
88
+ }
89
+ const apiPath = apiPathMatcher(filePath);
90
+ if (apiPath.matched) {
91
+ let { apiName } = apiPath.params;
92
+ apiName = basename(apiName, ".ts");
93
+ const yamlPath = renderPath(Paths.ApiYamls, {
94
+ ...apiPath.params,
95
+ apiName,
96
+ });
97
+ return push({
98
+ type: "api",
99
+ name: apiName,
100
+ action: apis?.includes(yamlPath) ? "edit" : "create",
101
+ status: "pending",
102
+ filePath,
103
+ });
104
+ }
105
+ }
106
+ }
107
+ };
108
+ };
109
+ //# sourceMappingURL=change-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-info.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/change-info.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Clark } from "../clark-fsm.js";
2
2
  import type { EditorClientMethods } from "@superblocksteam/library-shared/types";
3
- export declare const sendUserMessageChannel: (clark: Clark) => (payload: Parameters<EditorClientMethods["aiPushMessage"]>[0]) => undefined;
4
- export declare const sendUserCompletionChannel: (clark: Clark) => (payload: Parameters<EditorClientMethods["aiSetCompleted"]>[0]) => Promise<undefined>;
3
+ export declare const sendUserMessageChannel: (clark: Clark) => (payload: Parameters<EditorClientMethods["aiPushMessage"]>[0], delay?: number) => Promise<void>;
4
+ export declare const sendUserCompletionChannel: (clark: Clark) => (payload: Parameters<EditorClientMethods["aiSetCompleted"]>[0], delay?: number) => Promise<void>;
5
+ export declare const sendChangeInfoChannel: (clark: Clark) => (payload: Parameters<EditorClientMethods["aiPushChangeInfo"]>[0], delay?: number) => Promise<void>;
5
6
  //# sourceMappingURL=peer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,eAAO,MAAM,sBAAsB,GAChC,OAAO,KAAK,MACZ,SAAS,UAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,cAE5D,CAAC;AAEJ,eAAO,MAAM,yBAAyB,GACnC,OAAO,KAAK,MACN,SAAS,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,uBAEnE,CAAC"}
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAwBjF,eAAO,MAAM,sBAAsB,GAAI,OAAO,KAAK,MAG/C,SAAS,UAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5D,cAAS,kBAOZ,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,KAAK,MAGlD,SAAS,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7D,cAAS,kBAOZ,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,OAAO,KAAK,MAG9C,SAAS,UAAU,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/D,cAAS,kBAOZ,CAAC"}
@@ -1,7 +1,38 @@
1
- export const sendUserMessageChannel = (clark) => (payload) => {
2
- return void clark.context.peer?.call.aiPushMessage(payload);
1
+ import { OperationQueue } from "../../../util/operation-queue.js";
2
+ const peerQueue = (clark) => {
3
+ const queue = clark.context.peerChannelQueue ?? new OperationQueue();
4
+ clark.updateContext({
5
+ peerChannelQueue: queue,
6
+ });
7
+ return (operation, delay = 0) => {
8
+ if (delay) {
9
+ queue.enqueue(() => new Promise((resolve) => {
10
+ setTimeout(() => {
11
+ operation().then(resolve);
12
+ }, delay);
13
+ }));
14
+ }
15
+ else {
16
+ queue.enqueue(operation);
17
+ }
18
+ };
3
19
  };
4
- export const sendUserCompletionChannel = (clark) => async (payload) => {
5
- return void clark.context.peer?.call.aiSetCompleted(payload);
20
+ export const sendUserMessageChannel = (clark) => {
21
+ const queue = peerQueue(clark);
22
+ return async (payload, delay = 0) => {
23
+ return queue(async () => clark.context.peer?.call.aiPushMessage(payload), delay);
24
+ };
25
+ };
26
+ export const sendUserCompletionChannel = (clark) => {
27
+ const queue = peerQueue(clark);
28
+ return async (payload, delay = 0) => {
29
+ return queue(async () => clark.context.peer?.call.aiSetCompleted(payload), delay);
30
+ };
31
+ };
32
+ export const sendChangeInfoChannel = (clark) => {
33
+ const queue = peerQueue(clark);
34
+ return async (payload, delay = 0) => {
35
+ return queue(async () => clark.context.peer?.call.aiPushChangeInfo(payload), delay);
36
+ };
6
37
  };
7
38
  //# sourceMappingURL=peer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GACjC,CAAC,KAAY,EAAE,EAAE,CACjB,CAAC,OAA4D,EAAE,EAAE;IAC/D,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GACpC,CAAC,KAAY,EAAE,EAAE,CACjB,KAAK,EAAE,OAA6D,EAAE,EAAE;IACtE,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,cAAc,EAAE,CAAC;IACrE,KAAK,CAAC,aAAa,CAAC;QAClB,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,SAA8B,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,CACX,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,UAAU,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC,CAAC,CACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAY,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,EACV,OAA4D,EAC5D,KAAK,GAAG,CAAC,EACT,EAAE;QACF,OAAO,KAAK,CACV,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAC3D,KAAK,CACN,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAY,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,EACV,OAA6D,EAC7D,KAAK,GAAG,CAAC,EACT,EAAE;QACF,OAAO,KAAK,CACV,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAC5D,KAAK,CACN,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,EACV,OAA+D,EAC/D,KAAK,GAAG,CAAC,EACT,EAAE;QACF,OAAO,KAAK,CACV,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC9D,KAAK,CACN,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,QAAQ,EAML,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAEnD,eAAO,MAAM,SAAS,EAQN,KAAK,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAqDd,uBAAuB,CAAC"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,QAAQ,EAML,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAEnD,eAAO,MAAM,SAAS,EAQN,KAAK,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EA6Dd,uBAAuB,CAAC"}
@@ -33,9 +33,17 @@ export const mockHandlerParams = {
33
33
  signals: {
34
34
  emit: vi.fn(),
35
35
  },
36
+ sourceTrackerInterface: {
37
+ getElementToFilePathMap: vi.fn(),
38
+ },
36
39
  appShell: {
37
40
  appRootDirPath: "/test/app",
38
- readFiles: vi.fn(),
41
+ readFiles: vi.fn().mockReturnValue([
42
+ {
43
+ name: "test.ts",
44
+ content: 'console.log("test");',
45
+ },
46
+ ]),
39
47
  runTypecheck: vi.fn(),
40
48
  },
41
49
  artifactProcessor: {
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAK5B,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE;QACJ,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;QACtB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;KACxB;IACD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;CACkC,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;CACM,CAAC;AAEtB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE;QACd,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB;IACD,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE;QAChB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;KACxD;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACd;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,WAAW;QAC3B,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC5C;gBACE,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,sBAAsB;aAChC;SACF,CAAC;QACF,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC7C,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,mBAAmB;SAC7B,CAAC;KACH;IACD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CACxC,IAAI,mBAAmB,CAAC;QACtB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,sBAAsB,CAAC;gBAC7B,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;oBAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;oBAC5C;wBACE,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,MAAM;wBACpB,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;qBACjD;iBACF;aACF,CAAC;YACF,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;SAC9C,CAAC;KACH,CAAC,CACH;CACoC,CAAC"}
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export class ApiBuilderTransformer extends FileTransformer {
13
13
  runEvaluation(cwd) {
14
14
  return new Promise((resolve, reject) => {
15
15
  const logger = getLogger();
16
- logger.debug("[ai-service] Evaluating in", cwd);
16
+ logger.debug(`[ai-service] Evaluating in ${cwd}`);
17
17
  const tsc = spawn("npx", ["tsc", "--noEmitOnError", "false"], { cwd });
18
18
  tsc.stdout.on("data", (data) => {
19
19
  logger.info("[ai-service] tsc stdout", data.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ai-service/transform/api-builder/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,OAAgB,qBAGpB,SAAQ,eAA0B;IAIf;IAHnB,YACE,GAAQ,EACR,IAAU,EACO,gBAAkC;QAEnD,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAFA,qBAAgB,GAAhB,gBAAgB,CAAkB;IAGrD,CAAC;IAIS,KAAK,CAAC,cAAc;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACrE,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAEvE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,yDAAyD;oBACzD,iBAAiB;oBACjB,eAAe;oBACf,iFAAiF;oBACjF,OAAO;oBACP,KAAK;gBACP,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CACrB,MAAM,EACN,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,EAAE,GAAG,EAAE,CACR,CAAC;gBAEF,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,SAAS,GAAG,EAAE,CAAC;gBAEnB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACnC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACnC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC5B,OAAO,MAAM,CACX,IAAI,KAAK,CACP,uCAAuC,IAAI,KAAK,SAAS,EAAE,CAC5D,CACF,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACtC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/ai-service/transform/api-builder/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,OAAgB,qBAGpB,SAAQ,eAA0B;IAIf;IAHnB,YACE,GAAQ,EACR,IAAU,EACO,gBAAkC;QAEnD,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAFA,qBAAgB,GAAhB,gBAAgB,CAAkB;IAGrD,CAAC;IAIS,KAAK,CAAC,cAAc;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACrE,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAEvE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,yDAAyD;oBACzD,iBAAiB;oBACjB,eAAe;oBACf,iFAAiF;oBACjF,OAAO;oBACP,KAAK;gBACP,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CACrB,MAAM,EACN,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,EAAE,GAAG,EAAE,CACR,CAAC;gBAEF,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,SAAS,GAAG,EAAE,CAAC;gBAEnB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACnC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACnC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC5B,OAAO,MAAM,CACX,IAAI,KAAK,CACP,uCAAuC,IAAI,KAAK,SAAS,EAAE,CAC5D,CACF,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACtC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -18,7 +18,7 @@ export class YamlToApiBuilderTransformer extends ApiBuilderTransformer {
18
18
  // TODO: move the following to the AppShell service
19
19
  const apiDir = path.join(this.config.appRootDirPath, path.dirname(relativePath));
20
20
  const parentDir = path.dirname(apiDir);
21
- return readAppApiYamlFile(parentDir, pathParams.apiName);
21
+ return readAppApiYamlFile(parentDir, pathParams.apiName, false);
22
22
  }
23
23
  async transform(src) {
24
24
  // prepare the template
@@ -1 +1 @@
1
- {"version":3,"file":"to-sdk-transformer.js","sourceRoot":"","sources":["../../../../src/ai-service/transform/api-builder/to-sdk-transformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-sdk-transformer.js","sourceRoot":"","sources":["../../../../src/ai-service/transform/api-builder/to-sdk-transformer.ts"],"names":[],"mappings":"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"}