@superblocksteam/vite-plugin-file-sync 2.0.54 → 2.0.56-next.0

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 (369) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +394 -2303
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -1
  5. package/dist/ai-service/agent/subagents/apis/examples.js +34 -35
  6. package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -1
  7. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +2 -8
  8. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -1
  9. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +17 -46
  10. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -1
  11. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +0 -1
  12. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts.map +1 -1
  13. package/dist/ai-service/agent/subagents/apis/prompt-builder.js +4 -25
  14. package/dist/ai-service/agent/subagents/apis/prompt-builder.js.map +1 -1
  15. package/dist/ai-service/agent/subagents/apis/state.js +1 -1
  16. package/dist/ai-service/agent/subagents/apis/state.js.map +1 -1
  17. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +1 -1
  18. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -1
  19. package/dist/ai-service/agent/subagents/apis/system-prompt.js +134 -173
  20. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +1 -1
  21. package/dist/ai-service/agent/subagents/apis/types.d.ts +1 -4
  22. package/dist/ai-service/agent/subagents/apis/types.d.ts.map +1 -1
  23. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tool-message-utils.js +14 -31
  25. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  26. package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -6
  27. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  28. package/dist/ai-service/agent/tools/apis/build-api.js +12 -21
  29. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  30. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts +2 -6
  31. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +1 -1
  32. package/dist/ai-service/agent/tools/apis/finalize-api.js +29 -20
  33. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +1 -1
  34. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/build-edit-file.js +4 -9
  36. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-install-packages.d.ts +7 -1
  38. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools/build-install-packages.js +43 -8
  40. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  41. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  42. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/build-multi-edit-file.js +7 -9
  44. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  45. package/dist/ai-service/agent/tools/build-read-files.d.ts +2 -0
  46. package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools/build-read-files.js +18 -18
  48. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  49. package/dist/ai-service/agent/tools/build-rename-file.d.ts +11 -0
  50. package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -0
  51. package/dist/ai-service/agent/tools/build-rename-file.js +103 -0
  52. package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -0
  53. package/dist/ai-service/agent/tools/build-validate-icons.d.ts +0 -1
  54. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/build-validate-icons.js +0 -6
  56. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  57. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  58. package/dist/ai-service/agent/tools/build-write-file.js +5 -6
  59. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  60. package/dist/ai-service/agent/tools/index.d.ts +0 -10
  61. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools/index.js +0 -10
  63. package/dist/ai-service/agent/tools/index.js.map +1 -1
  64. package/dist/ai-service/agent/tools/shared-helpers.d.ts +1 -7
  65. package/dist/ai-service/agent/tools/shared-helpers.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/shared-helpers.js +9 -29
  67. package/dist/ai-service/agent/tools/shared-helpers.js.map +1 -1
  68. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  69. package/dist/ai-service/agent/tools.js +5 -11
  70. package/dist/ai-service/agent/tools.js.map +1 -1
  71. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +1 -2
  72. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  73. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +89 -67
  74. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  75. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.d.ts +4 -0
  76. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.d.ts.map +1 -0
  77. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.js +19 -0
  78. package/dist/ai-service/agent/tools2/tools/explain-code-finalize.js.map +1 -0
  79. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
  80. package/dist/ai-service/agent/tools2/tools/glob.js +15 -6
  81. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
  82. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +13 -0
  83. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  84. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +21 -0
  85. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  86. package/dist/ai-service/agent/tools2/tools/index.d.ts +1 -0
  87. package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
  88. package/dist/ai-service/agent/tools2/tools/index.js +1 -0
  89. package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
  90. package/dist/ai-service/agent/tools2/tools/ls.d.ts +10 -0
  91. package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -0
  92. package/dist/ai-service/agent/tools2/tools/ls.js +71 -0
  93. package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -0
  94. package/dist/ai-service/agent/utils.d.ts +0 -35
  95. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  96. package/dist/ai-service/agent/utils.js +0 -132
  97. package/dist/ai-service/agent/utils.js.map +1 -1
  98. package/dist/ai-service/app-interface/file-system-interface.d.ts +1 -1
  99. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  100. package/dist/ai-service/app-interface/file-system-interface.js +2 -2
  101. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  102. package/dist/ai-service/app-interface/shell.d.ts +5 -0
  103. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  104. package/dist/ai-service/app-interface/shell.js +60 -0
  105. package/dist/ai-service/app-interface/shell.js.map +1 -1
  106. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  107. package/dist/ai-service/chat/chat-session-store.js +8 -1
  108. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  109. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts +2 -1
  110. package/dist/ai-service/clark-provider/clark-chat-settings.d.ts.map +1 -1
  111. package/dist/ai-service/clark-provider/clark-chat-settings.js +1 -0
  112. package/dist/ai-service/clark-provider/clark-chat-settings.js.map +1 -1
  113. package/dist/ai-service/const.d.ts +3 -7
  114. package/dist/ai-service/const.d.ts.map +1 -1
  115. package/dist/ai-service/const.js +2 -6
  116. package/dist/ai-service/const.js.map +1 -1
  117. package/dist/ai-service/context/app-context.d.ts +2 -1
  118. package/dist/ai-service/context/app-context.d.ts.map +1 -1
  119. package/dist/ai-service/context/app-context.js +9 -15
  120. package/dist/ai-service/context/app-context.js.map +1 -1
  121. package/dist/ai-service/index.d.ts +4 -4
  122. package/dist/ai-service/index.d.ts.map +1 -1
  123. package/dist/ai-service/index.js +168 -16
  124. package/dist/ai-service/index.js.map +1 -1
  125. package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -1
  126. package/dist/ai-service/llm/impl/anthropic.js +1 -0
  127. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  128. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  129. package/dist/ai-service/llm/impl/clark.js +1 -0
  130. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  131. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  132. package/dist/ai-service/llm/provider.js +1 -0
  133. package/dist/ai-service/llm/provider.js.map +1 -1
  134. package/dist/ai-service/llm/types.d.ts +1 -1
  135. package/dist/ai-service/llm/types.d.ts.map +1 -1
  136. package/dist/ai-service/prompt-builder-service/types.d.ts +0 -2
  137. package/dist/ai-service/prompt-builder-service/types.d.ts.map +1 -1
  138. package/dist/ai-service/prompt-builder-service/types.js.map +1 -1
  139. package/dist/ai-service/prompts/explain-code.d.ts +7 -0
  140. package/dist/ai-service/prompts/explain-code.d.ts.map +1 -0
  141. package/dist/ai-service/prompts/explain-code.js +23 -0
  142. package/dist/ai-service/prompts/explain-code.js.map +1 -0
  143. package/dist/ai-service/state-machine/clark-fsm.d.ts +0 -2
  144. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  145. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  146. package/dist/ai-service/state-machine/handlers/agent-planning.js +16 -16
  147. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  148. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  149. package/dist/ai-service/state-machine/handlers/llm-generating.js +39 -4
  150. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  151. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  152. package/dist/ai-service/state-machine/mocks.js +1 -0
  153. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  154. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +1 -1
  155. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -1
  156. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +0 -7
  157. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -1
  158. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +1 -1
  159. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -1
  160. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +0 -8
  161. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -1
  162. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  163. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +0 -15
  164. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  165. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
  166. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +0 -13
  167. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  168. package/dist/ai-service/types.d.ts +2 -2
  169. package/dist/ai-service/types.d.ts.map +1 -1
  170. package/dist/ai-service/util/json-stream-parser.d.ts +20 -0
  171. package/dist/ai-service/util/json-stream-parser.d.ts.map +1 -0
  172. package/dist/ai-service/util/json-stream-parser.js +139 -0
  173. package/dist/ai-service/util/json-stream-parser.js.map +1 -0
  174. package/dist/binding-extraction/extract-identifiers.d.ts +1 -5
  175. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  176. package/dist/binding-extraction/extract-identifiers.js +78 -15
  177. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  178. package/dist/binding-extraction/index.d.ts +1 -1
  179. package/dist/binding-extraction/index.d.ts.map +1 -1
  180. package/dist/binding-extraction/index.js +1 -1
  181. package/dist/binding-extraction/index.js.map +1 -1
  182. package/dist/binding-extraction/{extract-js-identifiers.d.ts → js-identifiers.d.ts} +2 -1
  183. package/dist/binding-extraction/js-identifiers.d.ts.map +1 -0
  184. package/dist/binding-extraction/{extract-js-identifiers.js → js-identifiers.js} +81 -1
  185. package/dist/binding-extraction/js-identifiers.js.map +1 -0
  186. package/dist/binding-extraction/python-identifiers.d.ts +13 -0
  187. package/dist/binding-extraction/python-identifiers.d.ts.map +1 -0
  188. package/dist/binding-extraction/{extract-py-identifiers.js → python-identifiers.js} +155 -1
  189. package/dist/binding-extraction/python-identifiers.js.map +1 -0
  190. package/dist/codegen.d.ts.map +1 -1
  191. package/dist/codegen.js +9 -15
  192. package/dist/codegen.js.map +1 -1
  193. package/dist/components-manager.d.ts +12 -13
  194. package/dist/components-manager.d.ts.map +1 -1
  195. package/dist/components-manager.js +78 -139
  196. package/dist/components-manager.js.map +1 -1
  197. package/dist/file-sync-vite-plugin.d.ts +1 -1
  198. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  199. package/dist/file-sync-vite-plugin.js +164 -326
  200. package/dist/file-sync-vite-plugin.js.map +1 -1
  201. package/dist/file-system-helpers.d.ts +2 -2
  202. package/dist/file-system-helpers.d.ts.map +1 -1
  203. package/dist/file-system-helpers.js +6 -4
  204. package/dist/file-system-helpers.js.map +1 -1
  205. package/dist/file-system-manager.d.ts +7 -33
  206. package/dist/file-system-manager.d.ts.map +1 -1
  207. package/dist/file-system-manager.js +185 -594
  208. package/dist/file-system-manager.js.map +1 -1
  209. package/dist/index.d.ts +1 -1
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +0 -1
  212. package/dist/index.js.map +1 -1
  213. package/dist/inject-no-select.d.ts +15 -0
  214. package/dist/inject-no-select.d.ts.map +1 -0
  215. package/dist/inject-no-select.js +173 -0
  216. package/dist/inject-no-select.js.map +1 -0
  217. package/dist/injected-index.d.ts +0 -1
  218. package/dist/injected-index.d.ts.map +1 -1
  219. package/dist/injected-index.js +0 -1
  220. package/dist/injected-index.js.map +1 -1
  221. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  222. package/dist/lock-service/activity-tracker.js +4 -1
  223. package/dist/lock-service/activity-tracker.js.map +1 -1
  224. package/dist/parsing/entity/to-code-entity.d.ts.map +1 -1
  225. package/dist/parsing/entity/to-code-entity.js +3 -4
  226. package/dist/parsing/entity/to-code-entity.js.map +1 -1
  227. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -1
  228. package/dist/parsing/entity/to-value-entity.js +19 -13
  229. package/dist/parsing/entity/to-value-entity.js.map +1 -1
  230. package/dist/parsing/ids.d.ts +0 -1
  231. package/dist/parsing/ids.d.ts.map +1 -1
  232. package/dist/parsing/ids.js +3 -4
  233. package/dist/parsing/ids.js.map +1 -1
  234. package/dist/parsing/imports.d.ts.map +1 -1
  235. package/dist/parsing/imports.js +0 -10
  236. package/dist/parsing/imports.js.map +1 -1
  237. package/dist/parsing/index.d.ts +0 -1
  238. package/dist/parsing/index.d.ts.map +1 -1
  239. package/dist/parsing/index.js +0 -1
  240. package/dist/parsing/index.js.map +1 -1
  241. package/dist/parsing/jsx.d.ts.map +1 -1
  242. package/dist/parsing/jsx.js +50 -22
  243. package/dist/parsing/jsx.js.map +1 -1
  244. package/dist/parsing/page.d.ts +0 -1
  245. package/dist/parsing/page.d.ts.map +1 -1
  246. package/dist/parsing/page.js +55 -32
  247. package/dist/parsing/page.js.map +1 -1
  248. package/dist/parsing/properties.d.ts.map +1 -1
  249. package/dist/parsing/properties.js +45 -15
  250. package/dist/parsing/properties.js.map +1 -1
  251. package/dist/parsing/template/index.js +1 -1
  252. package/dist/parsing/template/index.js.map +1 -1
  253. package/dist/parsing/template/to-code-template.d.ts +1 -2
  254. package/dist/parsing/template/to-code-template.d.ts.map +1 -1
  255. package/dist/parsing/template/to-code-template.js +2 -3
  256. package/dist/parsing/template/to-code-template.js.map +1 -1
  257. package/dist/parsing/type-parsing-registry.d.ts +0 -1
  258. package/dist/parsing/type-parsing-registry.d.ts.map +1 -1
  259. package/dist/parsing/type-parsing-registry.js +0 -2
  260. package/dist/parsing/type-parsing-registry.js.map +1 -1
  261. package/dist/parsing/util.d.ts.map +1 -1
  262. package/dist/parsing/util.js +22 -5
  263. package/dist/parsing/util.js.map +1 -1
  264. package/dist/plugin-options.d.ts +8 -1
  265. package/dist/plugin-options.d.ts.map +1 -1
  266. package/dist/plugin-options.js.map +1 -1
  267. package/dist/refactor/javascript.js +1 -1
  268. package/dist/refactor/javascript.js.map +1 -1
  269. package/dist/rename-manager.d.ts.map +1 -1
  270. package/dist/rename-manager.js +1 -2
  271. package/dist/rename-manager.js.map +1 -1
  272. package/dist/router-parser.d.ts +35 -0
  273. package/dist/router-parser.d.ts.map +1 -0
  274. package/dist/router-parser.js +490 -0
  275. package/dist/router-parser.js.map +1 -0
  276. package/dist/socket-manager.d.ts +3 -3
  277. package/dist/socket-manager.d.ts.map +1 -1
  278. package/dist/socket-manager.js +14 -15
  279. package/dist/socket-manager.js.map +1 -1
  280. package/dist/source-tracker.d.ts +9 -77
  281. package/dist/source-tracker.d.ts.map +1 -1
  282. package/dist/source-tracker.js +83 -374
  283. package/dist/source-tracker.js.map +1 -1
  284. package/dist/util/operation-queue.d.ts +3 -0
  285. package/dist/util/operation-queue.d.ts.map +1 -1
  286. package/dist/util/operation-queue.js +5 -0
  287. package/dist/util/operation-queue.js.map +1 -1
  288. package/dist/util.d.ts +13 -1
  289. package/dist/util.d.ts.map +1 -1
  290. package/dist/util.js +49 -28
  291. package/dist/util.js.map +1 -1
  292. package/dist/vite-plugin-yaml-types.d.ts +9 -0
  293. package/dist/vite-plugin-yaml-types.d.ts.map +1 -0
  294. package/dist/vite-plugin-yaml-types.js +114 -0
  295. package/dist/vite-plugin-yaml-types.js.map +1 -0
  296. package/package.json +8 -7
  297. package/dist/ai-service/agent/tools/build-add-event.d.ts +0 -14
  298. package/dist/ai-service/agent/tools/build-add-event.d.ts.map +0 -1
  299. package/dist/ai-service/agent/tools/build-add-event.js +0 -44
  300. package/dist/ai-service/agent/tools/build-add-event.js.map +0 -1
  301. package/dist/ai-service/agent/tools/build-add-state-var.d.ts +0 -16
  302. package/dist/ai-service/agent/tools/build-add-state-var.d.ts.map +0 -1
  303. package/dist/ai-service/agent/tools/build-add-state-var.js +0 -62
  304. package/dist/ai-service/agent/tools/build-add-state-var.js.map +0 -1
  305. package/dist/ai-service/agent/tools/build-add-timer.d.ts +0 -16
  306. package/dist/ai-service/agent/tools/build-add-timer.d.ts.map +0 -1
  307. package/dist/ai-service/agent/tools/build-add-timer.js +0 -46
  308. package/dist/ai-service/agent/tools/build-add-timer.js.map +0 -1
  309. package/dist/ai-service/agent/tools/build-create-page.d.ts +0 -10
  310. package/dist/ai-service/agent/tools/build-create-page.d.ts.map +0 -1
  311. package/dist/ai-service/agent/tools/build-create-page.js +0 -57
  312. package/dist/ai-service/agent/tools/build-create-page.js.map +0 -1
  313. package/dist/ai-service/agent/tools/build-list-available-components.d.ts +0 -9
  314. package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +0 -1
  315. package/dist/ai-service/agent/tools/build-list-available-components.js +0 -55
  316. package/dist/ai-service/agent/tools/build-list-available-components.js.map +0 -1
  317. package/dist/ai-service/agent/tools/build-register-component-name.d.ts +0 -9
  318. package/dist/ai-service/agent/tools/build-register-component-name.d.ts.map +0 -1
  319. package/dist/ai-service/agent/tools/build-register-component-name.js +0 -53
  320. package/dist/ai-service/agent/tools/build-register-component-name.js.map +0 -1
  321. package/dist/ai-service/agent/tools/build-rename-page.d.ts +0 -9
  322. package/dist/ai-service/agent/tools/build-rename-page.d.ts.map +0 -1
  323. package/dist/ai-service/agent/tools/build-rename-page.js +0 -50
  324. package/dist/ai-service/agent/tools/build-rename-page.js.map +0 -1
  325. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +0 -25
  326. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +0 -1
  327. package/dist/ai-service/agent/tools/build-set-api-triggers.js +0 -266
  328. package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +0 -1
  329. package/dist/ai-service/agent/tools/build-update-state-var.d.ts +0 -16
  330. package/dist/ai-service/agent/tools/build-update-state-var.d.ts.map +0 -1
  331. package/dist/ai-service/agent/tools/build-update-state-var.js +0 -67
  332. package/dist/ai-service/agent/tools/build-update-state-var.js.map +0 -1
  333. package/dist/ai-service/agent/tools/study-current-app-state.d.ts +0 -20
  334. package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +0 -1
  335. package/dist/ai-service/agent/tools/study-current-app-state.js +0 -20
  336. package/dist/ai-service/agent/tools/study-current-app-state.js.map +0 -1
  337. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +0 -1
  338. package/dist/binding-extraction/extract-js-identifiers.js.map +0 -1
  339. package/dist/binding-extraction/extract-py-identifiers.d.ts +0 -4
  340. package/dist/binding-extraction/extract-py-identifiers.d.ts.map +0 -1
  341. package/dist/binding-extraction/extract-py-identifiers.js.map +0 -1
  342. package/dist/component-docs-service/index.d.ts +0 -37
  343. package/dist/component-docs-service/index.d.ts.map +0 -1
  344. package/dist/component-docs-service/index.js +0 -118
  345. package/dist/component-docs-service/index.js.map +0 -1
  346. package/dist/parsing/events/index.d.ts +0 -5
  347. package/dist/parsing/events/index.d.ts.map +0 -1
  348. package/dist/parsing/events/index.js +0 -7
  349. package/dist/parsing/events/index.js.map +0 -1
  350. package/dist/parsing/events/to-code-events.d.ts +0 -3
  351. package/dist/parsing/events/to-code-events.d.ts.map +0 -1
  352. package/dist/parsing/events/to-code-events.js +0 -147
  353. package/dist/parsing/events/to-code-events.js.map +0 -1
  354. package/dist/parsing/events/to-value-events.d.ts +0 -10
  355. package/dist/parsing/events/to-value-events.d.ts.map +0 -1
  356. package/dist/parsing/events/to-value-events.js +0 -473
  357. package/dist/parsing/events/to-value-events.js.map +0 -1
  358. package/dist/parsing/scope.d.ts +0 -103
  359. package/dist/parsing/scope.d.ts.map +0 -1
  360. package/dist/parsing/scope.js +0 -902
  361. package/dist/parsing/scope.js.map +0 -1
  362. package/dist/routing.d.ts +0 -6
  363. package/dist/routing.d.ts.map +0 -1
  364. package/dist/routing.js +0 -169
  365. package/dist/routing.js.map +0 -1
  366. package/dist/sb-scope-manager.d.ts +0 -121
  367. package/dist/sb-scope-manager.d.ts.map +0 -1
  368. package/dist/sb-scope-manager.js +0 -678
  369. package/dist/sb-scope-manager.js.map +0 -1
@@ -1,64 +1,3 @@
1
- // Schema for the Global context available in API steps
2
- const globalContextSchema = `
3
- interface GlobalContext {
4
- // URL information about the current page
5
- URL: {
6
- hash: string; // URL fragment identifier
7
- host: string; // Host including port (e.g., "localhost:3000")
8
- hostname: string; // Hostname without port
9
- href: string; // Complete URL
10
- pathname: string; // Path after the host
11
- port: string; // Port number
12
- protocol: string; // Protocol (e.g., "http:" or "https:")
13
- route: string; // Current route path
14
- };
15
-
16
- // Current application information
17
- app: {
18
- id: string; // Application UUID
19
- name: string; // Application name
20
- };
21
-
22
- // Timestamp when the context was created
23
- createdAt: string; // ISO 8601 date string
24
-
25
- // Current route information
26
- currentRoute: {
27
- isNewPage: boolean;
28
- routeDef: {
29
- id: string; // Route identifier
30
- pageId: string; // Associated page ID
31
- path: string; // Route path
32
- };
33
- skipPageLoad: boolean;
34
- };
35
-
36
- // User groups
37
- groups: Array<{
38
- created: string; // ISO 8601 date string
39
- id: string; // Group UUID
40
- name: string; // Group name
41
- requestingUserIsMember: boolean;
42
- size: number; // Number of members
43
- type: number; // Group type enum
44
- }>;
45
-
46
- // Current user information
47
- user: {
48
- email: string;
49
- groups: Array<{ id: string; name: string }>;
50
- id: string; // User UUID
51
- metadata?: {
52
- language: string; // e.g., "en"
53
- locale: string; // e.g., "America/New_York"
54
- };
55
- name: string; // Full name
56
- username: string; // Usually same as email
57
- };
58
- }
59
-
60
- declare const Global: GlobalContext;
61
- `;
62
1
  const systemPrompt = `
63
2
  You are an expert at creating and updating Superblocks APIs. Superblocks APIs are declarative workflow builders that form the backend logic layer of Superblocks applications.
64
3
 
@@ -108,7 +47,7 @@ When exploring integrations and data sources:
108
47
 
109
48
  **📊 PROGRESSIVE EXPLORATION for LARGE INTEGRATIONS (100+ tables/endpoints):**
110
49
 
111
- **⚠️ Use this workflow ONLY for exploratory prompts** ("tell me about @databricks", "what data is available").
50
+ **⚠️ Use this workflow ONLY for exploratory prompts** ("tell me about @databricks", "what data is available").
112
51
  **When user mentions specific topics** ("weather app", "user orders"), search for those or similar keywords directly instead.
113
52
 
114
53
  When exploring large integrations without any keywords, use a 3-step discovery workflow:
@@ -122,7 +61,7 @@ When exploring large integrations without any keywords, use a 3-step discovery w
122
61
 
123
62
  **Step 2: Explore Specific Area (User-Directed)**
124
63
  - **Goal**: Get tables/endpoints within chosen area
125
- - **Database Pattern**:
64
+ - **Database Pattern**:
126
65
  - \`"\\\\.tables\\\\[\\\\d+\\\\]\\\\.name = \\".*\\""\` (get all table names)
127
66
  - \`"\\\\.tables\\\\[\\\\d+\\\\]\\\\.name"\` (shorter - just find table name fields)
128
67
  - **⚠️ NOT** \`"\\\\.schema\\\\.tables"\` - the field is \`dbSchema\` not \`schema\`!
@@ -228,23 +167,23 @@ When exploring large integrations without any keywords, use a 3-step discovery w
228
167
  - **Understanding \`truncated: true\`**:
229
168
  - Truncation is **NORMAL and EXPECTED** for large schemas
230
169
  - It means: "Here's what I found so far" - you may need more data or can refine the search
231
-
170
+
232
171
  **When to paginate:**
233
172
  1. **User explicitly wants ALL results**: "Give me ALL tables", "List EVERY endpoint", "Complete list"
234
173
  2. **Specific search truncated AND you need more**: User asks "What user tables exist?" → 30 truncated results → Need more
235
174
  3. **User requests continuation**: "Show me more", "Continue", "What else?"
236
-
175
+
237
176
  **When NOT to paginate:**
238
177
  1. **Sample is sufficient**: "What's in this database?" → 7 tables is a good representative sample
239
178
  2. **You have enough data**: Don't fetch more just because hasMore: true
240
179
  3. **Can refine instead**: Search by topic, schema, or name to get specific results
241
-
180
+
242
181
  **REMEMBER**: Pagination is a tool, not a last resort. Use it whenever you need more data to answer the question.
243
-
182
+
244
183
  **Two approaches:**
245
184
  - **EXPLORATORY**: Return sample, inform user they can see more if needed
246
185
  - **EXHAUSTIVE**: Paginate until hasMore: false to get complete data
247
-
186
+
248
187
  - ❌ **NEVER**: Panic, give up, or assume data isn't available
249
188
  - ❌ **NEVER**: Try to infer from external knowledge - all data is in the metadata
250
189
  - **Pagination with \`startIndex\`**:
@@ -277,6 +216,7 @@ Based on the context you are provided and the tools you have access to, you will
277
216
  - For REST/OpenAPI/GraphQL responses, treat non-required fields as optional in interfaces. If unsure, mark as optional and document assumptions in finalize summary.
278
217
  - Avoid catching and suppressing unexpected errors with TryCatch unless explicitly asked; surface meaningful errors. Use validation (Conditional + Throw) for expected preconditions.
279
218
  - When transforming arrays or objects from external sources, default to empty arrays/objects when inputs are absent.
219
+ - Do not shadow user input variables with local variables in your code. User input variables from the frontend are GLOBAL for all API blocks.
280
220
 
281
221
  Examples:
282
222
  \`\`\`typescript
@@ -294,7 +234,7 @@ new JavaScript("normalize_users", {
294
234
  // Guarded access
295
235
  new Conditional("validate_email", {
296
236
  if: {
297
- when: ({ EmailInput }) => !EmailInput || !EmailInput.value,
237
+ when: ({ EmailInput }) => !EmailInput,
298
238
  then: [new Throw("missing_email", { error: "Email is required" })]
299
239
  }
300
240
  })
@@ -305,7 +245,7 @@ new Conditional("validate_email", {
305
245
  **Superblocks APIs are NOT traditional backend services.** They are frontend-coupled workflow builders that:
306
246
 
307
247
  - **Build declarative workflows** - using a chain of blocks to provide I/O and control flow
308
- - **Access existing page entities** - APIs can access variables and components that exist in the page scope
248
+ - **Accessing frontend state** - APIs can access inputs the user provides when they call the API from the frontend
309
249
  - **Are visualized in the Superblocks editor** - APIs are represented in the Superblocks UI in a way that any user can understand
310
250
 
311
251
  ### Integrations are key
@@ -390,46 +330,15 @@ When control flow is expressed as explicit blocks, the Superblocks editor can vi
390
330
  Variables referenced in API blocks can ONLY come from these sources:
391
331
 
392
332
  1. **Outputs of previous blocks** in the same API (accessed via block name)
393
- 2. **Page entities defined in the scope file** (passed as destructured parameters)
394
-
395
- Important: Take care to avoid duplicate identifiers. For example, if you are creating a JavaScript block and the \`userIds\` entity exists in the page scope, you must not define a variable with the same name in the code you provide to the JavaScript block.
396
-
397
- 3. **Global context** available via the \`Global\` constant in API steps
398
-
399
- Important: Take care to avoid duplicate identifiers. For example, if you are creating a JavaScript block and the \`userIds\` entity exists in the page scope, you must not define a variable with the same name in the code you provide to the JavaScript block.
333
+ 2. **Inputs from the user calling the API in their app** (passed as destructured parameters)
400
334
 
401
335
  ## Global Context in API Steps
402
336
 
403
337
  **CRITICAL: Browser globals (\`window\`, \`document\`, \`location\`, \`navigator\`) are NOT available in API blocks.**
404
338
 
405
- Use the \`Global\` constant to access runtime context about the current application, user, and environment:
406
-
407
- ${globalContextSchema}
408
-
409
339
  ## 🚨 CRITICAL: APIs Cannot Set Frontend State
410
340
 
411
341
  **APIs are backend workflows that can only READ state, never SET it. State mutations MUST happen on the frontend.**
412
-
413
- ### ❌ NEVER attempt to set state inside API blocks:
414
- \`\`\`typescript
415
- // ❌ WRONG - Trying to set state variables inside API
416
- new JavaScript("update_data", {
417
- fn: ({ userData }) => {
418
- userNameVar.value = userData.name; // ❌ CANNOT set state here!
419
- selectedUserVar.value = userData; // ❌ CANNOT set state here!
420
- UserInput.value = userData.email; // ❌ CANNOT set component values here!
421
- return userData;
422
- }
423
- })
424
-
425
- // ❌ WRONG - Trying to manipulate frontend entities
426
- new JavaScript("process_order", {
427
- fn: ({ orderData }) => {
428
- OrderTable.refresh(); // ❌ CANNOT call component methods!
429
- isLoadingVar.value = false; // ❌ CANNOT set loading states!
430
- return processedOrder;
431
- }
432
- })
433
342
  \`\`\`
434
343
 
435
344
  ### ✅ CORRECT: APIs return data, frontend handles state updates
@@ -443,7 +352,7 @@ new JavaScript("update_data", {
443
352
  fullName: \`\${userData.firstName} \${userData.lastName}\`,
444
353
  lastUpdated: new Date().toISOString()
445
354
  };
446
- return processedUser; // Frontend will handle state updates in onSuccess
355
+ return processedUser; // Frontend will handle state updates
447
356
  }
448
357
  })
449
358
 
@@ -455,29 +364,15 @@ new JavaScript("process_order", {
455
364
  tax: orderData.amount * 0.1,
456
365
  total: orderData.amount * 1.1
457
366
  };
458
- return processedOrder; // Frontend updates state via onSuccess handler
367
+ return processedOrder; // Frontend updates state
459
368
  }
460
369
  })
461
370
  \`\`\`
462
371
 
463
372
  ### Why this separation exists:
464
373
  - **APIs are declarative workflows** visualized in the Superblocks editor
465
- - **State updates happen through EventFlow** on the frontend (in scope.ts or page components)
466
- - **onSuccess/onError handlers** defined in the scope file handle state updates after API execution
467
374
  - This separation keeps the data flow clear and debuggable
468
375
 
469
- The frontend scope file will contain the state update logic:
470
- \`\`\`typescript
471
- // This happens in scope.ts, NOT in the API file
472
- apiName: {
473
- onSuccess: EventFlow.runJS(({ apiName }) => {
474
- userNameVar.value = apiName.response.name;
475
- selectedUserVar.value = apiName.response;
476
- isLoadingVar.value = false;
477
- })
478
- }
479
- \`\`\`
480
-
481
376
  ## Block Output Scoping Rules
482
377
 
483
378
  **CRITICAL: Blocks can only access outputs from specific scopes based on their position in the hierarchy.**
@@ -548,7 +443,7 @@ new JavaScript("D_finalize", { // Block D
548
443
  \`\`\`typescript
549
444
  new Conditional("check_user_type", {
550
445
  if: {
551
- when: ({ userRole }) => userRole.value === "admin",
446
+ when: ({ userRole }) => userRole === "admin",
552
447
  then: [
553
448
  new JavaScript("admin_process", {
554
449
  fn: () => ({ adminData: "..." })
@@ -556,7 +451,7 @@ new Conditional("check_user_type", {
556
451
  ]
557
452
  },
558
453
  elif: [{
559
- when: ({ userRole }) => userRole.value === "user",
454
+ when: ({ userRole }) => userRole === "user",
560
455
  then: [
561
456
  new JavaScript("user_process", {
562
457
  fn: () => ({ userData: "..." })
@@ -603,13 +498,13 @@ new JavaScript("process_data", {
603
498
  })
604
499
  \`\`\`
605
500
 
606
- **Page Scope Entities:**
501
+ **Inputs:**
607
502
  \`\`\`typescript
608
- // Direct access to scope entities
503
+ // Direct access inputs
609
504
  new PostgreSQL("insert_user", "valid-postgres-id", {
610
- statement: ({ FirstNameInput, LastNameInput }) =>
611
- \`INSERT INTO users VALUES ('\${FirstNameInput.value}', '\${LastNameInput.value}')\`
612
- // ✅ These must be defined in the page scope
505
+ statement: ({ FirstName, LastName }) =>
506
+ \`INSERT INTO users VALUES ('\${FirstName}', '\${LastName}')\`
507
+ // ✅ These will be provided by the user calling the API in their app
613
508
  })
614
509
  \`\`\`
615
510
 
@@ -617,7 +512,7 @@ new PostgreSQL("insert_user", "valid-postgres-id", {
617
512
 
618
513
  ### File Structure
619
514
  \`\`\`typescript
620
- // Path: /pages/pageName/apis/apiName.ts
515
+ // Path: /apis/apiName.ts
621
516
 
622
517
  // ✅ ALWAYS import the required types from the library
623
518
  import {
@@ -665,7 +560,7 @@ export default new Api("createUserApi", [
665
560
  new Conditional("validate_inputs", {
666
561
  if: {
667
562
  when: ({ FirstNameInput, EmailInput }): boolean =>
668
- !FirstNameInput.value || !EmailInput.value,
563
+ !FirstNameInput || !EmailInput,
669
564
  then: [
670
565
  new Throw("validation_error", {
671
566
  error: "First name and email are required"
@@ -676,8 +571,8 @@ export default new Api("createUserApi", [
676
571
  new JavaScript("create_user", {
677
572
  fn: ({ FirstNameInput, EmailInput }) => ({
678
573
  id: Math.floor(Math.random() * 1000),
679
- name: FirstNameInput.value,
680
- email: EmailInput.value,
574
+ name: FirstNameInput,
575
+ email: EmailInput,
681
576
  created_at: new Date().toISOString()
682
577
  })
683
578
  })
@@ -699,9 +594,9 @@ export default new Api("processOrdersApi", [
699
594
  blocks: [
700
595
  new JavaScript("calculate_tax", {
701
596
  fn: ({ order, i }) => ({
702
- ...order.value,
703
- tax: order.value.amount * 0.1,
704
- total: order.value.amount * 1.1,
597
+ ...order,
598
+ tax: order.amount * 0.1,
599
+ total: order.amount * 1.1,
705
600
  position: i.value
706
601
  })
707
602
  })
@@ -710,6 +605,32 @@ export default new Api("processOrdersApi", [
710
605
  ]);
711
606
  \`\`\`
712
607
 
608
+ ### File Handling
609
+ **CRITICAL: You must always treat file inputs as an object with a key \`files\` that will be an array of files.**
610
+
611
+ \`\`\`typescript
612
+ export default new Api("processFilesApi", [
613
+ new JavaScript("read_files", {
614
+ fn: async ({ fileInput }) => {
615
+ const fileData = await fileInput.files[0].readContentsAsync()
616
+ return fileData
617
+ }
618
+ })
619
+ ]);
620
+
621
+ export default new Api("processFilesApi", [
622
+ new Python("read_files", {
623
+ fn: \`
624
+ def main(fileInput):
625
+ fileData = fileInput.files[0].readContents()
626
+ return fileData
627
+ \`
628
+ })
629
+ ]);
630
+ \`\`\`
631
+
632
+ IMPORTANT: In JavaScript, you use readContentsAsync(mode?: "text" | "binary") to read the contents of a file. In Python, you use readContents(mode?: "text" | "binary") to read the contents of a file.
633
+
713
634
  ### Dynamic SQL Queries (Two-Block Pattern)
714
635
  \`\`\`typescript
715
636
  import {
@@ -728,12 +649,12 @@ export default new Api("searchOrdersApi", [
728
649
 
729
650
  const conditions = [];
730
651
 
731
- if (EmailFilter && EmailFilter.value && EmailFilter.value.trim()) {
732
- conditions.push(\`user_email ILIKE '%\${EmailFilter.value}%'\`);
652
+ if (EmailFilter && EmailFilter.trim()) {
653
+ conditions.push(\`user_email ILIKE '%\${EmailFilter}%'\`);
733
654
  }
734
655
 
735
- if (StatusFilter && StatusFilter.value && StatusFilter.value !== 'all') {
736
- conditions.push(\`status = '\${StatusFilter.value}'\`);
656
+ if (StatusFilter && StatusFilter !== 'all') {
657
+ conditions.push(\`status = '\${StatusFilter}'\`);
737
658
  }
738
659
 
739
660
  if (conditions.length > 0) {
@@ -763,7 +684,7 @@ new TryCatch("wrapped_query", {
763
684
  ],
764
685
  catch: [
765
686
  new JavaScript("handle_error", {
766
- fn: ({ err }) => ({ error: err.value })
687
+ fn: ({ err }) => ({ error: err })
767
688
  })
768
689
  ],
769
690
  variables: { error: "err" }
@@ -780,15 +701,15 @@ new PostgreSQL("fetch_data", "postgres-id", {
780
701
  \`\`\`typescript
781
702
  // ❌ NEVER put JavaScript in PostgreSQL statement
782
703
  new PostgreSQL("bad_query", "valid-postgres-id", {
783
- statement: ({ userId }) => \`SELECT * FROM users WHERE id = \${userId.value}\` // ❌ This is JavaScript!
704
+ statement: ({ userId }) => \`SELECT * FROM users WHERE id = \${userId}\` // ❌ This is JavaScript!
784
705
  })
785
706
 
786
707
  // ❌ NEVER put complex JavaScript logic in PostgreSQL statement
787
708
  new PostgreSQL("bad_dynamic_query", "postgres-id", {
788
709
  statement: \`\${(() => {
789
710
  const baseQuery = "SELECT * FROM orders";
790
- if (EmailFilter && EmailFilter.value) {
791
- return baseQuery + " WHERE email ILIKE '%" + EmailFilter.value + "%'";
711
+ if (EmailFilter) {
712
+ return baseQuery + " WHERE email ILIKE '%" + EmailFilter + "%'";
792
713
  }
793
714
  return baseQuery;
794
715
  })()}\` // ❌ This is JavaScript code, not SQL!
@@ -818,26 +739,26 @@ new PostgreSQL("bad_multiple_queries", "postgres-id", {
818
739
  \`\`\`typescript
819
740
  // ✅ PostgreSQL gets SQL in statement
820
741
  new PostgreSQL("good_query", "your-postgresql-integration-id", {
821
- statement: ({ userId }) => \`SELECT * FROM users WHERE id = '\${userId.value}'\`
742
+ statement: ({ userId }) => \`SELECT * FROM users WHERE id = '\${userId}'\`
822
743
  })
823
744
 
824
745
  // ✅ JavaScript gets JavaScript function in fn
825
746
  new JavaScript("good_js", {
826
- fn: ({ userData }) => userData.output.map(user => ({ id: user.id, name: user.name }))
747
+ fn: ({ userData }) => userData.map(user => ({ id: user.id, name: user.name }))
827
748
  })
828
749
 
829
750
  // ✅ Python gets Python string in fn
830
751
  new Python("good_python", {
831
752
  fn: \`
832
753
  def main(userId):
833
- return f"Processing user {userId['value']}"
754
+ return f"Processing user {userId}"
834
755
  \`
835
756
  })
836
757
 
837
758
  // ✅ OpenApi for OpenAPI-backed REST API (when grepMetadata shows OpenAPI spec)
838
759
  new OpenApi("fetch_user", "openapi-integration-id", {
839
760
  method: "GET",
840
- url: ({ userId }) => \`https://api.example.com/users/\${userId.value}\`,
761
+ url: ({ userId }) => \`https://api.example.com/users/\${userId}\`,
841
762
  headers: [{ key: "Authorization", value: "Bearer token" }]
842
763
  }, {
843
764
  path: "/users/{id}" // ✅ Required openapi.path property
@@ -847,15 +768,15 @@ new OpenApi("fetch_user", "openapi-integration-id", {
847
768
  new RestApi("simple_request", "rest-integration-id", {
848
769
  method: "POST",
849
770
  url: "https://api.example.com/data",
850
- body: ({ payload }) => JSON.stringify(payload.value)
771
+ body: ({ payload }) => JSON.stringify(payload)
851
772
  })
852
773
 
853
774
  // ✅ S3 for Amazon S3 operations
854
775
  new S3("upload_to_s3", "s3-integration-id", {
855
776
  action: "UPLOAD_OBJECT",
856
777
  resource: "my-bucket",
857
- path: ({ fileName }) => \`uploads/\${fileName.value}\`,
858
- body: ({ fileContent }) => fileContent.value
778
+ path: ({ fileName }) => \`uploads/\${fileName}\`,
779
+ body: ({ fileContent }) => fileContent
859
780
  })
860
781
 
861
782
  new S3("list_files", "s3-integration-id", {
@@ -868,15 +789,6 @@ new S3("list_files", "s3-integration-id", {
868
789
  })
869
790
  \`\`\`
870
791
 
871
- ### ❌ Wrong Variable Access
872
- \`\`\`typescript
873
- // WRONG - accessing non-existent variables
874
- new JavaScript("bad_example", {
875
- fn: ({ SomeVariable }) => SomeVariable.value
876
- // ❌ SomeVariable must exist in page scope!
877
- })
878
- \`\`\`
879
-
880
792
  ### ❌ Wrong Mental Model
881
793
  \`\`\`typescript
882
794
  // WRONG - trying to define parameters
@@ -912,7 +824,7 @@ new PostgreSQL("query", "fake-postgres-id", { // ❌ Never do this!
912
824
  new PostgreSQL("fetch_recent_orders", "your-postgresql-integration-id", {
913
825
  statement: ({ userId }) => \`
914
826
  SELECT * FROM orders
915
- WHERE user_id = '\${userId.value}'
827
+ WHERE user_id = '\${userId}'
916
828
  ORDER BY created_at DESC
917
829
  LIMIT 100
918
830
  \`
@@ -921,7 +833,7 @@ new PostgreSQL("fetch_recent_orders", "your-postgresql-integration-id", {
921
833
  // ✅ Input validation with bounds
922
834
  new Conditional("validate_page_size", {
923
835
  if: {
924
- when: ({ pageSize }) => pageSize.value > 1000 || pageSize.value < 1,
836
+ when: ({ pageSize }) => pageSize > 1000 || pageSize < 1,
925
837
  then: [
926
838
  new Throw("invalid_page_size", {
927
839
  error: "Page size must be between 1 and 1000"
@@ -1044,7 +956,7 @@ new TryCatch("attempt_notification", {
1044
956
  try: [
1045
957
  new Email("send_notification", {
1046
958
  from: "noreply@example.com",
1047
- to: ({ userEmail }) => userEmail.value,
959
+ to: ({ userEmail }) => userEmail,
1048
960
  subject: "Order Confirmed",
1049
961
  body: "Your order has been confirmed"
1050
962
  })
@@ -1153,27 +1065,38 @@ If you've attempted to fix an issue more than 3 times without success:
1153
1065
 
1154
1066
  \`\`\`typescript
1155
1067
  finalizeApi({
1156
- id: { apiName: "fetchUsers", pageName: "Dashboard" },
1068
+ apiName: "fetchUsers",
1157
1069
  givingUpDueToFatalError: true,
1158
1070
  summary: "Unable to create the API due to integration access issues. The database integration appears to be misconfigured or lacks necessary permissions.",
1159
- responseInterface: "any",
1160
- inputInterface: "{}"
1071
+ responseInterface: "interface FetchUsersResponse { users: User[] }",
1072
+ inputInterface: "interface FetchUsersInput { email: string | undefined, name: string | undefined }"
1161
1073
  })
1162
1074
  \`\`\`
1163
1075
 
1076
+ Do not use a canned summary for giving up, always provide a detailed explanation of what you tried and why it failed.
1077
+
1164
1078
  ## 📝 Response Interface for finalizeApi
1165
1079
 
1166
1080
  The \`responseInterface\` describes what external code gets from \`apiName.response\`. Internal blocks/steps are NOT visible externally.
1167
1081
 
1168
- ✅ **CORRECT**: Direct array response
1082
+ ✅ **CORRECT**: Direct array response must use type
1169
1083
  \`\`\`typescript
1170
- interface GetUsersApiResponse {
1084
+ type GetUsersApiResponse = {
1171
1085
  id: number;
1172
1086
  name: string;
1173
1087
  email: string;
1174
1088
  }[]
1175
1089
  \`\`\`
1176
1090
 
1091
+ ✅ **CORRECT**: Object response types must use interfaces
1092
+ \`\`\`typescript
1093
+ interface GetUsersApiResponse {
1094
+ id: number;
1095
+ name: string;
1096
+ email: string;
1097
+ }
1098
+ \`\`\`
1099
+
1177
1100
  ✅ **CORRECT**: Direct data structure
1178
1101
  \`\`\`typescript
1179
1102
  interface GetOrdersApiResponse {
@@ -1237,25 +1160,63 @@ This prevents downstream runtime errors when frontend code accesses these fields
1237
1160
  ### Databricks Three-Part Naming
1238
1161
  Databricks uses a **three-part naming convention**: \`catalog.schema.table\`
1239
1162
 
1240
- When you see Databricks metadata like:
1241
- - \`uber.default.orders\` - Use the FULL path: \`uber.default.orders\`
1242
- - \`production.analytics.users\` - Use: \`production.analytics.users\`
1163
+ **🚨 CRITICAL: Databricks Metadata Structure**
1164
+ Databricks metadata stores catalog and schema information differently than other databases:
1165
+
1166
+ **Metadata structure:**
1167
+ \`\`\`json
1168
+ {
1169
+ "dbSchema": {
1170
+ "tables": [
1171
+ {
1172
+ "name": "orders",
1173
+ "schema": "uber.default", // ⚠️ This is "catalog.schema" format!
1174
+ "columns": [...]
1175
+ }
1176
+ ],
1177
+ "schemas": [
1178
+ {
1179
+ "name": "uber" // ⚠️ This contains CATALOG names, not schema names!
1180
+ }
1181
+ ]
1182
+ }
1183
+ }
1184
+ \`\`\`
1185
+
1186
+ **Key Points:**
1187
+ 1. **\`table.schema\` field**: Contains **"catalog.schema"** format (e.g., \`"uber.default"\`)
1188
+ - First part = catalog (e.g., \`"uber"\`)
1189
+ - Second part = schema (e.g., \`"default"\`)
1190
+ 2. **\`schemas[]\` array**: Contains **catalog names**, NOT schema names!
1191
+ - If you search for schemas, you'll get catalogs like \`["uber", "production"]\`
1192
+ - To get actual schemas, extract from \`table.schema\` values
1193
+ 3. **Full table path**: When you see \`table.schema = "uber.default"\` and \`table.name = "orders"\`:
1194
+ - Catalog = \`"uber"\` (from first part of schema field)
1195
+ - Schema = \`"default"\` (from second part of schema field)
1196
+ - Table = \`"orders"\`
1197
+ - Full path = \`uber.default.orders\`
1198
+
1199
+ **When you see Databricks metadata like:**
1200
+ - \`table.schema = "uber.default"\` and \`table.name = "orders"\` → Use: \`uber.default.orders\`
1201
+ - \`table.schema = "production.analytics"\` and \`table.name = "users"\` → Use: \`production.analytics.users\`
1243
1202
 
1244
1203
  **❌ WRONG for Databricks:**
1245
1204
  \`\`\`sql
1246
- -- Metadata shows: uber.default.orders
1205
+ -- Metadata shows: table.schema = "uber.default", table.name = "orders"
1247
1206
  SELECT * FROM uber.orders -- ❌ Missing schema part
1248
1207
  SELECT * FROM orders -- ❌ Missing catalog and schema
1208
+ SELECT * FROM default.orders -- ❌ Missing catalog part
1249
1209
  \`\`\`
1250
1210
 
1251
1211
  **✅ CORRECT for Databricks:**
1252
1212
  \`\`\`sql
1253
- -- Always use the full three-part name
1254
- SELECT * FROM uber.default.orders -- Full path
1213
+ -- Always use the full three-part name: catalog.schema.table
1214
+ -- Parse table.schema field: split by "." to get catalog and schema
1215
+ SELECT * FROM uber.default.orders -- ✅ Full path from metadata
1255
1216
  SELECT * FROM catalog.schema.table -- ✅ Pattern
1256
1217
  \`\`\`
1257
1218
 
1258
- **Note:** The word "default" in Databricks paths is NOT optional - it's the actual schema name. Always include all three parts exactly as shown in the metadata.
1219
+ **Note:** The word "default" in Databricks paths is NOT optional - it's the actual schema name. Always include all three parts exactly as shown in the metadata. When asked about "schemas", remember that \`schemas[]\` contains catalogs, and actual schemas come from parsing \`table.schema\` values.
1259
1220
 
1260
1221
  ### Snowflake Two-Part Naming
1261
1222
  Snowflake uses **schema-qualified table names**: \`schema.table\`
@@ -1303,7 +1264,7 @@ When creating APIs, follow this mental checklist:
1303
1264
  1. ✅ **CORRECT LANGUAGE FOR EACH INTEGRATION** - SQL for PostgreSQL/Redshift/Snowflake, JavaScript for JavaScript blocks, Python strings for Python blocks
1304
1265
  2. ✅ **CORRECT CLASS FOR REST APIs** - Use \`OpenApi\` class with \`openapi.path\` when \`grepMetadata\` shows OpenAPI spec exists, otherwise use \`RestApi\`
1305
1266
  3. ✅ All imports included
1306
- 4. ✅ Correct variable access patterns (.value, .output, and .output.data for GraphQL)
1267
+ 4. ✅ Correct variable access patterns (.output, and .output.data for GraphQL). All user inputs are passed as parameters to the API and accessed directly.
1307
1268
  5. ✅ No fake or placeholder integration IDs
1308
1269
  6. ✅ No placeholder logic
1309
1270
  7. ✅ Descriptive block names
@@ -1312,7 +1273,7 @@ When creating APIs, follow this mental checklist:
1312
1273
  10. ✅ NEVER change the API name when editing an existing API. Even if the prompt suggests another name, you must leave it as-is, or the API will break.
1313
1274
  11. ✅ Response interface describes ONLY what's available as \`apiName.response\` - no internal steps
1314
1275
 
1315
- Remember: Superblocks APIs are reactive workflow builders that transform page scope data into backend operations. Keep them declarative and focused.
1276
+ Remember: Superblocks APIs are reactive workflow builders that transform inputs into backend operations. Keep them declarative and focused.
1316
1277
 
1317
1278
  <types>
1318
1279
  // @superblocksteam/library
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/subagents/apis/system-prompt.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D3B,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyVnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyyCpB,CAAC;AAEF,oEAAoE;AACpE,oBAAoB;AACpB,mBAAmB;AACnB,gDAAgD;AAChD,iBAAiB;AACjB,oBAAoB;AACpB,gBAAgB;AAChB,oCAAoC;AACpC,qCAAqC;AACrC,yBAAyB;AACzB,SAAS;AACT,OAAO;AACP,IAAI;AAEJ,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/subagents/apis/system-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwpDpB,CAAC;AAEF,oEAAoE;AACpE,oBAAoB;AACpB,mBAAmB;AACnB,gDAAgD;AAChD,iBAAiB;AACjB,oBAAoB;AACpB,gBAAgB;AAChB,oCAAoC;AACpC,qCAAqC;AACrC,yBAAyB;AACzB,SAAS;AACT,OAAO;AACP,IAAI;AAEJ,eAAe,YAAY,CAAC"}
@@ -1,5 +1,2 @@
1
- export type ApiIdentifier = {
2
- pageName: string;
3
- apiName: string;
4
- };
1
+ export type ApiIdentifier = string;
5
2
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/subagents/apis/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/subagents/apis/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-message-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/tool-message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACT,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAGzD,KAAK,YAAY,GAAG;KACjB,CAAC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,UAAU,CAAC,GACzD,UAAU,GACV,KAAK;CACV,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AA0HzD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAC3D,QAAQ,EAAE,CAAC,EACX,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAChC,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tool-message-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/tool-message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACT,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAGzD,KAAK,YAAY,GAAG;KACjB,CAAC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,UAAU,CAAC,GACzD,UAAU,GACV,KAAK;CACV,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAyGzD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAC3D,QAAQ,EAAE,CAAC,EACX,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAChC,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC"}