@superblocksteam/vite-plugin-file-sync 2.0.96 → 2.0.97-next.1

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 (293) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +8 -2
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
  5. package/dist/ai-service/agent/prompts/api-prompts.js +84 -91
  6. package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +1 -1
  8. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  9. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +7 -23
  10. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  11. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  12. package/dist/ai-service/agent/tool-message-utils.js +32 -0
  13. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/api-testing-state.d.ts +28 -0
  15. package/dist/ai-service/agent/tools/apis/api-testing-state.d.ts.map +1 -0
  16. package/dist/ai-service/agent/tools/apis/api-testing-state.js +141 -0
  17. package/dist/ai-service/agent/tools/apis/api-testing-state.js.map +1 -0
  18. package/dist/ai-service/agent/tools/apis/sdk-registry.d.ts +4 -0
  19. package/dist/ai-service/agent/tools/apis/sdk-registry.d.ts.map +1 -0
  20. package/dist/ai-service/agent/tools/apis/sdk-registry.js +23 -0
  21. package/dist/ai-service/agent/tools/apis/sdk-registry.js.map +1 -0
  22. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -63
  23. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/apis/test-api.js +12 -5
  25. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  26. package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
  27. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  28. package/dist/ai-service/agent/tools/build-capture-screenshot.js +2 -0
  29. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  30. package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -1
  31. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  32. package/dist/ai-service/agent/tools/build-edit-file.js +15 -0
  33. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  34. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/build-finalize.js +1 -0
  36. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  38. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +1 -1
  39. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  40. package/dist/ai-service/agent/tools/build-multi-edit-file.js +8 -0
  41. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  42. package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -1
  43. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools/build-write-file.js +8 -0
  45. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  46. package/dist/ai-service/agent/tools/get-logs.d.ts +2 -0
  47. package/dist/ai-service/agent/tools/get-logs.d.ts.map +1 -1
  48. package/dist/ai-service/agent/tools/get-logs.js +49 -35
  49. package/dist/ai-service/agent/tools/get-logs.js.map +1 -1
  50. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
  51. package/dist/ai-service/agent/tools/integrations/internal.d.ts +4 -0
  52. package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
  53. package/dist/ai-service/agent/tools/integrations/internal.js +1 -1
  54. package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
  55. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  56. package/dist/ai-service/agent/tools.js +78 -21
  57. package/dist/ai-service/agent/tools.js.map +1 -1
  58. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools2/access-control.js +0 -3
  60. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  61. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +1 -0
  63. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  64. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +2 -2
  65. package/dist/ai-service/agent/tools2/tools/git.d.ts +50 -0
  66. package/dist/ai-service/agent/tools2/tools/git.d.ts.map +1 -0
  67. package/dist/ai-service/agent/tools2/tools/git.js +465 -0
  68. package/dist/ai-service/agent/tools2/tools/git.js.map +1 -0
  69. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools2/tools/glob.js +3 -1
  71. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
  72. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  73. package/dist/ai-service/agent/tools2/tools/grep.js +9 -2
  74. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  75. package/dist/ai-service/agent/tools2/tools/index.d.ts +1 -7
  76. package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools2/tools/index.js +2 -8
  78. package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
  79. package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
  80. package/dist/ai-service/agent/tools2/tools/ls.js +5 -1
  81. package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
  82. package/dist/ai-service/agent/tools2/tools/read.d.ts +1 -1
  83. package/dist/ai-service/agent/tools2/tools/remember-knowledge.d.ts +10 -6
  84. package/dist/ai-service/agent/tools2/tools/remember-knowledge.d.ts.map +1 -1
  85. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js +25 -18
  86. package/dist/ai-service/agent/tools2/tools/remember-knowledge.js.map +1 -1
  87. package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +2 -2
  88. package/dist/ai-service/agent/tools2/types.d.ts +6 -2
  89. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  90. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  91. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  92. package/dist/ai-service/agent/utils.js +46 -0
  93. package/dist/ai-service/agent/utils.js.map +1 -1
  94. package/dist/ai-service/app-interface/constants.d.ts +10 -3
  95. package/dist/ai-service/app-interface/constants.d.ts.map +1 -1
  96. package/dist/ai-service/app-interface/constants.js +16 -8
  97. package/dist/ai-service/app-interface/constants.js.map +1 -1
  98. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +11 -4
  99. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
  100. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +152 -11
  101. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
  102. package/dist/ai-service/app-interface/filesystem/validation.d.ts +4 -4
  103. package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +1 -1
  104. package/dist/ai-service/app-interface/filesystem/validation.js +14 -11
  105. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -1
  106. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +1 -0
  107. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
  108. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +2 -2
  109. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
  110. package/dist/ai-service/app-interface/shell.d.ts +10 -1
  111. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  112. package/dist/ai-service/app-interface/shell.js +62 -16
  113. package/dist/ai-service/app-interface/shell.js.map +1 -1
  114. package/dist/ai-service/app-skills/build-knowledge-feedback-message.d.ts +3 -0
  115. package/dist/ai-service/app-skills/build-knowledge-feedback-message.d.ts.map +1 -0
  116. package/dist/ai-service/app-skills/build-knowledge-feedback-message.js +47 -0
  117. package/dist/ai-service/app-skills/build-knowledge-feedback-message.js.map +1 -0
  118. package/dist/ai-service/app-skills/helpers.d.ts +6 -11
  119. package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
  120. package/dist/ai-service/app-skills/helpers.js +282 -75
  121. package/dist/ai-service/app-skills/helpers.js.map +1 -1
  122. package/dist/ai-service/attachment-upload.d.ts +9 -1
  123. package/dist/ai-service/attachment-upload.d.ts.map +1 -1
  124. package/dist/ai-service/attachment-upload.js +82 -62
  125. package/dist/ai-service/attachment-upload.js.map +1 -1
  126. package/dist/ai-service/attachments/store.d.ts +12 -1
  127. package/dist/ai-service/attachments/store.d.ts.map +1 -1
  128. package/dist/ai-service/attachments/store.js +35 -0
  129. package/dist/ai-service/attachments/store.js.map +1 -1
  130. package/dist/ai-service/attachments/uploaded-content-part.d.ts +28 -0
  131. package/dist/ai-service/attachments/uploaded-content-part.d.ts.map +1 -0
  132. package/dist/ai-service/attachments/uploaded-content-part.js +88 -0
  133. package/dist/ai-service/attachments/uploaded-content-part.js.map +1 -0
  134. package/dist/ai-service/chat/chat-session-store.d.ts +4 -2
  135. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  136. package/dist/ai-service/chat/chat-session-store.js +150 -19
  137. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  138. package/dist/ai-service/chat/utils.d.ts +12 -0
  139. package/dist/ai-service/chat/utils.d.ts.map +1 -1
  140. package/dist/ai-service/chat/utils.js +128 -2
  141. package/dist/ai-service/chat/utils.js.map +1 -1
  142. package/dist/ai-service/clark-provider/attachment-service.d.ts +56 -0
  143. package/dist/ai-service/clark-provider/attachment-service.d.ts.map +1 -0
  144. package/dist/ai-service/clark-provider/attachment-service.js +295 -0
  145. package/dist/ai-service/clark-provider/attachment-service.js.map +1 -0
  146. package/dist/ai-service/clark-provider/clark-language-model.d.ts +3 -0
  147. package/dist/ai-service/clark-provider/clark-language-model.d.ts.map +1 -1
  148. package/dist/ai-service/clark-provider/clark-language-model.js +15 -5
  149. package/dist/ai-service/clark-provider/clark-language-model.js.map +1 -1
  150. package/dist/ai-service/clark-provider/clark-provider.d.ts +9 -0
  151. package/dist/ai-service/clark-provider/clark-provider.d.ts.map +1 -1
  152. package/dist/ai-service/clark-provider/clark-provider.js +2 -0
  153. package/dist/ai-service/clark-provider/clark-provider.js.map +1 -1
  154. package/dist/ai-service/context-upload.d.ts +2 -1
  155. package/dist/ai-service/context-upload.d.ts.map +1 -1
  156. package/dist/ai-service/context-upload.js +63 -26
  157. package/dist/ai-service/context-upload.js.map +1 -1
  158. package/dist/ai-service/features.d.ts +12 -1
  159. package/dist/ai-service/features.d.ts.map +1 -1
  160. package/dist/ai-service/features.js +12 -1
  161. package/dist/ai-service/features.js.map +1 -1
  162. package/dist/ai-service/index.d.ts +19 -2
  163. package/dist/ai-service/index.d.ts.map +1 -1
  164. package/dist/ai-service/index.js +129 -21
  165. package/dist/ai-service/index.js.map +1 -1
  166. package/dist/ai-service/judge/judge-eval-service-runner.js +1 -0
  167. package/dist/ai-service/judge/judge-eval-service-runner.js.map +1 -1
  168. package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
  169. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  170. package/dist/ai-service/llm/impl/clark.js +18 -2
  171. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  172. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -1
  173. package/dist/ai-service/llm/interaction/adapters/vercel.js +4 -0
  174. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -1
  175. package/dist/ai-service/llm/provider.d.ts +2 -1
  176. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  177. package/dist/ai-service/llm/provider.js +11 -2
  178. package/dist/ai-service/llm/provider.js.map +1 -1
  179. package/dist/ai-service/llm/stream/config.d.ts +3 -1
  180. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  181. package/dist/ai-service/llm/stream/config.js +1 -0
  182. package/dist/ai-service/llm/stream/config.js.map +1 -1
  183. package/dist/ai-service/llm/stream/observers/logging.js +1 -1
  184. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  185. package/dist/ai-service/llm/stream/retry-engine.d.ts +8 -8
  186. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  187. package/dist/ai-service/llm/stream/retry-engine.js +42 -24
  188. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  189. package/dist/ai-service/llm/types.d.ts +11 -0
  190. package/dist/ai-service/llm/types.d.ts.map +1 -1
  191. package/dist/ai-service/skills/system/materialized.d.ts +6 -0
  192. package/dist/ai-service/skills/system/materialized.d.ts.map +1 -0
  193. package/dist/ai-service/skills/system/materialized.js +33 -0
  194. package/dist/ai-service/skills/system/materialized.js.map +1 -0
  195. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  196. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  197. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +42 -54
  198. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  199. package/dist/ai-service/skills/system/tool-paths.d.ts +3 -0
  200. package/dist/ai-service/skills/system/tool-paths.d.ts.map +1 -0
  201. package/dist/ai-service/skills/system/tool-paths.js +16 -0
  202. package/dist/ai-service/skills/system/tool-paths.js.map +1 -0
  203. package/dist/ai-service/state-machine/clark-fsm.d.ts +29 -5
  204. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  205. package/dist/ai-service/state-machine/clark-fsm.js +47 -1
  206. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  207. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  208. package/dist/ai-service/state-machine/handlers/agent-planning.js +57 -36
  209. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  210. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  211. package/dist/ai-service/state-machine/handlers/awaiting-user.js +21 -3
  212. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  213. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  214. package/dist/ai-service/state-machine/handlers/llm-generating.js +74 -27
  215. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  216. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
  217. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +94 -1
  218. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  219. package/dist/ai-service/util/mode-message.d.ts.map +1 -1
  220. package/dist/ai-service/util/mode-message.js +0 -3
  221. package/dist/ai-service/util/mode-message.js.map +1 -1
  222. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  223. package/dist/file-sync-vite-plugin.js +7 -0
  224. package/dist/file-sync-vite-plugin.js.map +1 -1
  225. package/dist/git-operation-lock.d.ts +22 -0
  226. package/dist/git-operation-lock.d.ts.map +1 -0
  227. package/dist/git-operation-lock.js +25 -0
  228. package/dist/git-operation-lock.js.map +1 -0
  229. package/dist/git-service/errors.d.ts +4 -0
  230. package/dist/git-service/errors.d.ts.map +1 -1
  231. package/dist/git-service/errors.js +6 -0
  232. package/dist/git-service/errors.js.map +1 -1
  233. package/dist/git-service/github-workflow.d.ts +6 -0
  234. package/dist/git-service/github-workflow.d.ts.map +1 -0
  235. package/dist/git-service/github-workflow.js +40 -0
  236. package/dist/git-service/github-workflow.js.map +1 -0
  237. package/dist/git-service/index.d.ts +2 -2
  238. package/dist/git-service/index.d.ts.map +1 -1
  239. package/dist/git-service/index.js +54 -12
  240. package/dist/git-service/index.js.map +1 -1
  241. package/dist/git-service/live-branch.d.ts.map +1 -1
  242. package/dist/git-service/live-branch.js +81 -5
  243. package/dist/git-service/live-branch.js.map +1 -1
  244. package/dist/inject-index-vite-plugin.d.ts.map +1 -1
  245. package/dist/inject-index-vite-plugin.js +37 -6
  246. package/dist/inject-index-vite-plugin.js.map +1 -1
  247. package/dist/injected-index.d.ts.map +1 -1
  248. package/dist/injected-index.js +23 -3
  249. package/dist/injected-index.js.map +1 -1
  250. package/dist/lock-service/index.d.ts.map +1 -1
  251. package/dist/lock-service/index.js +38 -0
  252. package/dist/lock-service/index.js.map +1 -1
  253. package/dist/parsing/index.d.ts +1 -0
  254. package/dist/parsing/index.d.ts.map +1 -1
  255. package/dist/parsing/index.js +1 -0
  256. package/dist/parsing/index.js.map +1 -1
  257. package/dist/parsing/sdk-registry.d.ts +5 -0
  258. package/dist/parsing/sdk-registry.d.ts.map +1 -0
  259. package/dist/parsing/sdk-registry.js +128 -0
  260. package/dist/parsing/sdk-registry.js.map +1 -0
  261. package/dist/socket-manager.d.ts +3 -1
  262. package/dist/socket-manager.d.ts.map +1 -1
  263. package/dist/socket-manager.js +192 -45
  264. package/dist/socket-manager.js.map +1 -1
  265. package/package.json +7 -6
  266. package/dist/ai-service/agent/tools2/tools/git-commit.d.ts +0 -15
  267. package/dist/ai-service/agent/tools2/tools/git-commit.d.ts.map +0 -1
  268. package/dist/ai-service/agent/tools2/tools/git-commit.js +0 -105
  269. package/dist/ai-service/agent/tools2/tools/git-commit.js.map +0 -1
  270. package/dist/ai-service/agent/tools2/tools/git-diff.d.ts +0 -9
  271. package/dist/ai-service/agent/tools2/tools/git-diff.d.ts.map +0 -1
  272. package/dist/ai-service/agent/tools2/tools/git-diff.js +0 -23
  273. package/dist/ai-service/agent/tools2/tools/git-diff.js.map +0 -1
  274. package/dist/ai-service/agent/tools2/tools/git-log.d.ts +0 -12
  275. package/dist/ai-service/agent/tools2/tools/git-log.d.ts.map +0 -1
  276. package/dist/ai-service/agent/tools2/tools/git-log.js +0 -27
  277. package/dist/ai-service/agent/tools2/tools/git-log.js.map +0 -1
  278. package/dist/ai-service/agent/tools2/tools/git-merge-abort.d.ts +0 -7
  279. package/dist/ai-service/agent/tools2/tools/git-merge-abort.d.ts.map +0 -1
  280. package/dist/ai-service/agent/tools2/tools/git-merge-abort.js +0 -42
  281. package/dist/ai-service/agent/tools2/tools/git-merge-abort.js.map +0 -1
  282. package/dist/ai-service/agent/tools2/tools/git-pull.d.ts +0 -20
  283. package/dist/ai-service/agent/tools2/tools/git-pull.d.ts.map +0 -1
  284. package/dist/ai-service/agent/tools2/tools/git-pull.js +0 -80
  285. package/dist/ai-service/agent/tools2/tools/git-pull.js.map +0 -1
  286. package/dist/ai-service/agent/tools2/tools/git-stage.d.ts +0 -9
  287. package/dist/ai-service/agent/tools2/tools/git-stage.d.ts.map +0 -1
  288. package/dist/ai-service/agent/tools2/tools/git-stage.js +0 -34
  289. package/dist/ai-service/agent/tools2/tools/git-stage.js.map +0 -1
  290. package/dist/ai-service/agent/tools2/tools/git-status.d.ts +0 -9
  291. package/dist/ai-service/agent/tools2/tools/git-status.d.ts.map +0 -1
  292. package/dist/ai-service/agent/tools2/tools/git-status.js +0 -18
  293. package/dist/ai-service/agent/tools2/tools/git-status.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/stream/observers/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/stream/observers/logging.ts"],"names":[],"mappings":"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"}
@@ -56,17 +56,17 @@ export declare class RetryEngine {
56
56
  * The chain always starts with the initial provider/model from the config.
57
57
  * Strategy controls the fallback order:
58
58
  *
59
- * With retry (4 entries):
60
- * - "model-then-provider": initial → initial+model2 → provider2+initial → provider2+model2
61
- * - "provider-then-model": initial → provider2+initial → initial+model2 → provider2+model2
59
+ * With retry (4+ entries):
60
+ * - "model-then-provider": initial → initial+model2 → fallback providers+initial → fallback providers+model2
61
+ * - "provider-then-model": initial → fallback providers+initial → initial+model2 → fallback providers+model2
62
62
  *
63
- * Without retry (3 entries):
64
- * - "model-then-provider-no-retry": initial → initial+model2 → provider2+model2
65
- * - "provider-then-model-no-retry": initial → provider2+initial → provider2+model2
63
+ * Without retry (3+ entries):
64
+ * - "model-then-provider-no-retry": initial → initial+model2 → fallback providers+model2
65
+ * - "provider-then-model-no-retry": initial → fallback providers+initial → fallback providers+model2
66
66
  *
67
- * Limited (2 entries):
67
+ * Limited (2+ entries):
68
68
  * - "only-model": initial → initial+model2
69
- * - "only-provider": initial → provider2+initial
69
+ * - "only-provider": initial → fallback providers+initial
70
70
  *
71
71
  * No fallback (1 entry):
72
72
  * - "disabled": initial only
@@ -1 +1 @@
1
- {"version":3,"file":"retry-engine.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/retry-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EACH,eAAe,GACf,cAAc,GACd,UAAU,GACV,SAAS,GACT,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,YAAY;IAKhC,OAAO,CAAC,yBAAyB;IAkBjC,gBAAgB,CACd,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,aAAa;IA8DhB,kBAAkB,IAAI,YAAY;IAWlC,aAAa,IAAI,IAAI;IAIrB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAyBpC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,kBAAkB;CAiF3B"}
1
+ {"version":3,"file":"retry-engine.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/retry-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EACH,eAAe,GACf,cAAc,GACd,UAAU,GACV,SAAS,GACT,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,YAAY;IAKhC,OAAO,CAAC,yBAAyB;IAkBjC,gBAAgB,CACd,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,aAAa;IA8DhB,kBAAkB,IAAI,YAAY;IAWlC,aAAa,IAAI,IAAI;IAIrB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAyBpC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,kBAAkB;CAyF3B"}
@@ -162,17 +162,17 @@ export class RetryEngine {
162
162
  * The chain always starts with the initial provider/model from the config.
163
163
  * Strategy controls the fallback order:
164
164
  *
165
- * With retry (4 entries):
166
- * - "model-then-provider": initial → initial+model2 → provider2+initial → provider2+model2
167
- * - "provider-then-model": initial → provider2+initial → initial+model2 → provider2+model2
165
+ * With retry (4+ entries):
166
+ * - "model-then-provider": initial → initial+model2 → fallback providers+initial → fallback providers+model2
167
+ * - "provider-then-model": initial → fallback providers+initial → initial+model2 → fallback providers+model2
168
168
  *
169
- * Without retry (3 entries):
170
- * - "model-then-provider-no-retry": initial → initial+model2 → provider2+model2
171
- * - "provider-then-model-no-retry": initial → provider2+initial → provider2+model2
169
+ * Without retry (3+ entries):
170
+ * - "model-then-provider-no-retry": initial → initial+model2 → fallback providers+model2
171
+ * - "provider-then-model-no-retry": initial → fallback providers+initial → fallback providers+model2
172
172
  *
173
- * Limited (2 entries):
173
+ * Limited (2+ entries):
174
174
  * - "only-model": initial → initial+model2
175
- * - "only-provider": initial → provider2+initial
175
+ * - "only-provider": initial → fallback providers+initial
176
176
  *
177
177
  * No fallback (1 entry):
178
178
  * - "disabled": initial only
@@ -182,7 +182,8 @@ export class RetryEngine {
182
182
  return [];
183
183
  }
184
184
  const { provider: initialProvider, model: initialModel } = this.config.provider;
185
- const provider2 = initialProvider === "bedrock" ? "vertex" : "bedrock";
185
+ const fallbackProviders = this.config.fallback.fallbackProviders ??
186
+ getDefaultFallbackProviders(initialProvider);
186
187
  const model2 = initialModel.startsWith("claude-opus")
187
188
  ? "claude-sonnet-4-5"
188
189
  : "claude-opus-4-5";
@@ -190,49 +191,56 @@ export class RetryEngine {
190
191
  const { strategy } = this.config.fallback;
191
192
  switch (strategy) {
192
193
  case "model-then-provider": {
193
- // initial → initial+model2 → provider2+initial → provider2+model2
194
194
  chain.push({ provider: initialProvider, model: initialModel });
195
195
  chain.push({ provider: initialProvider, model: model2 });
196
- chain.push({ provider: provider2, model: initialModel });
197
- chain.push({ provider: provider2, model: model2 });
196
+ for (const fp of fallbackProviders) {
197
+ chain.push({ provider: fp, model: initialModel });
198
+ chain.push({ provider: fp, model: model2 });
199
+ }
198
200
  break;
199
201
  }
200
202
  case "provider-then-model": {
201
- // initial → provider2+initial → initial+model2 → provider2+model2
202
203
  chain.push({ provider: initialProvider, model: initialModel });
203
- chain.push({ provider: provider2, model: initialModel });
204
+ for (const fp of fallbackProviders) {
205
+ chain.push({ provider: fp, model: initialModel });
206
+ }
204
207
  chain.push({ provider: initialProvider, model: model2 });
205
- chain.push({ provider: provider2, model: model2 });
208
+ for (const fp of fallbackProviders) {
209
+ chain.push({ provider: fp, model: model2 });
210
+ }
206
211
  break;
207
212
  }
208
213
  case "model-then-provider-no-retry": {
209
- // initial → initial+model2 → provider2+model2
210
214
  chain.push({ provider: initialProvider, model: initialModel });
211
215
  chain.push({ provider: initialProvider, model: model2 });
212
- chain.push({ provider: provider2, model: model2 });
216
+ for (const fp of fallbackProviders) {
217
+ chain.push({ provider: fp, model: model2 });
218
+ }
213
219
  break;
214
220
  }
215
221
  case "provider-then-model-no-retry": {
216
- // initial → provider2+initial → provider2+model2
217
222
  chain.push({ provider: initialProvider, model: initialModel });
218
- chain.push({ provider: provider2, model: initialModel });
219
- chain.push({ provider: provider2, model: model2 });
223
+ for (const fp of fallbackProviders) {
224
+ chain.push({ provider: fp, model: initialModel });
225
+ }
226
+ for (const fp of fallbackProviders) {
227
+ chain.push({ provider: fp, model: model2 });
228
+ }
220
229
  break;
221
230
  }
222
231
  case "only-model": {
223
- // initial → initial+model2
224
232
  chain.push({ provider: initialProvider, model: initialModel });
225
233
  chain.push({ provider: initialProvider, model: model2 });
226
234
  break;
227
235
  }
228
236
  case "only-provider": {
229
- // initial → provider2+initial
230
237
  chain.push({ provider: initialProvider, model: initialModel });
231
- chain.push({ provider: provider2, model: initialModel });
238
+ for (const fp of fallbackProviders) {
239
+ chain.push({ provider: fp, model: initialModel });
240
+ }
232
241
  break;
233
242
  }
234
243
  case "disabled": {
235
- // initial only
236
244
  chain.push({ provider: initialProvider, model: initialModel });
237
245
  break;
238
246
  }
@@ -244,4 +252,14 @@ export class RetryEngine {
244
252
  return chain;
245
253
  }
246
254
  }
255
+ function getDefaultFallbackProviders(initialProvider) {
256
+ switch (initialProvider) {
257
+ case "bedrock":
258
+ return ["vertex"];
259
+ case "vertex":
260
+ return ["bedrock"];
261
+ case "snowflake":
262
+ return ["bedrock"];
263
+ }
264
+ }
247
265
  //# sourceMappingURL=retry-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry-engine.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/retry-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry-engine.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/retry-engine.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { AutoConnectingRpcClient } from "../../server-rpc/index.js";
1
2
  import type { ClarkProviderSettings } from "../clark-provider/clark-provider.js";
2
3
  import type { AnthropicProviderSettings } from "@ai-sdk/anthropic";
3
4
  import type { LanguageModelV3 } from "@ai-sdk/provider";
@@ -8,6 +9,16 @@ export type LLMProviderSettings = {
8
9
  path?: string;
9
10
  };
10
11
  clark: ClarkProviderSettings;
12
+ /** Enables ai-service attachment lease resolution for server-uploaded files. */
13
+ aiFileUploadEnabled?: boolean;
14
+ /** RPC client for attachment lease resolution. */
15
+ rpcClient?: AutoConnectingRpcClient;
16
+ /** Base URL of the Superblocks server. */
17
+ superblocksBaseUrl?: string;
18
+ /** Application ID for scoped token issuance. */
19
+ applicationId?: string;
20
+ /** JWT getter for scoped token issuance. */
21
+ getJwt?: () => string | undefined;
11
22
  };
12
23
  export type LLMTask = "classifyPrompt" | "summarizeMessages" | "explain" | "generateBroadEdit" | "fast";
13
24
  export type LLMTaskModels = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,SAAS,EAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,mBAAmB,GACnB,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;CACrD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,SAAS,EAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kDAAkD;IAClD,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,mBAAmB,GACnB,MAAM,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;CACrD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Logger } from "../../../util/logger.js";
2
+ export interface MaterializedSystemSkills {
3
+ systemSkillsDir: string;
4
+ }
5
+ export declare function ensureMaterializedSystemSkills(appRootDirPath: string, skills: Record<string, string>, logger: Logger): Promise<MaterializedSystemSkills>;
6
+ //# sourceMappingURL=materialized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialized.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/materialized.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAItD,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;CACzB;AA+BD,wBAAsB,8BAA8B,CAClD,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAWnC"}
@@ -0,0 +1,33 @@
1
+ import { mkdir, rm, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ const SYSTEM_SKILLS_CACHE_ROOT = ".superblocks/system-skills";
4
+ function validateRelativePath(relativePath) {
5
+ const normalized = path.normalize(relativePath);
6
+ if (path.isAbsolute(normalized) || normalized.startsWith("..")) {
7
+ throw new Error(`Invalid system skill path: ${relativePath}`);
8
+ }
9
+ return normalized;
10
+ }
11
+ async function writeSkillFiles(destinationDir, skills) {
12
+ for (const [relativePath, content] of Object.entries(skills)) {
13
+ const validatedPath = validateRelativePath(relativePath);
14
+ const absolutePath = path.join(destinationDir, validatedPath);
15
+ await mkdir(path.dirname(absolutePath), { recursive: true });
16
+ await writeFile(absolutePath, content, "utf-8");
17
+ }
18
+ }
19
+ async function rewriteSkillDirectory(rootDir, skills) {
20
+ await rm(rootDir, { recursive: true, force: true });
21
+ await mkdir(rootDir, { recursive: true });
22
+ await writeSkillFiles(rootDir, skills);
23
+ }
24
+ export async function ensureMaterializedSystemSkills(appRootDirPath, skills, logger) {
25
+ const rootDir = path.join(appRootDirPath, SYSTEM_SKILLS_CACHE_ROOT);
26
+ await rewriteSkillDirectory(rootDir, skills);
27
+ logger.info("[Skills] Materialized system skills to filesystem", {
28
+ fileCount: Object.keys(skills).length,
29
+ rootDir: SYSTEM_SKILLS_CACHE_ROOT,
30
+ });
31
+ return { systemSkillsDir: rootDir };
32
+ }
33
+ //# sourceMappingURL=materialized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialized.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/materialized.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAM9D,SAAS,oBAAoB,CAAC,YAAoB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,cAAsB,EACtB,MAA8B;IAE9B,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAA8B;IAE9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,cAAsB,EACtB,MAA8B,EAC9B,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IAEpE,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAC/D,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;QACrC,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const content = "---\nname: superblocks-frontend\ndescription: |\n Build frontend UI using React, Tailwind CSS, and Superblocks components. Essential for connecting Superblocks UIs with APIs.\n Use when creating pages, components, handling user interactions, or working with the design system.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Superblocks Frontend Development\n\nThis skill covers building frontend UI for Superblocks applications using React, Tailwind CSS v4, and the Superblocks component library.\n\n## Platform Overview\n\nThis is a React-based web application platform. Use standard React patterns:\n\n- `useState`, `useEffect`, `useCallback`, `useMemo`\n- Event handlers and controlled components\n- JSX with Tailwind CSS classes\n\n## Using APIs from Frontend\n\nYou **must** use the `useApi` hook for calling backend APIs:\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\nimport { toast } from \"sonner\";\n\nexport default function useGetUsers({\n email,\n name,\n}: {\n email: string | undefined;\n name: string | undefined;\n}) {\n const { run: runGetUsers } = useApi(\"GetUsers\"); // matches folder apis/GetUsers/api.yaml\n const [loading, setLoading] = useState(false);\n const [users, setUsers] = useState<User[]>([]);\n\n const getUsers = useCallback(async () => {\n setLoading(true);\n try {\n // ALWAYS include ALL inputs, even if they are empty\n const response = await runGetUsers({\n email: email ?? null,\n name: name ?? null,\n });\n setUsers(response?.users ?? []);\n } catch (error) {\n // API errors are thrown as strings, not Error objects\n console.error(error);\n toast.error(\"Error fetching users: \" + error);\n } finally {\n setLoading(false);\n }\n }, [email, name, runGetUsers]);\n\n return { getUsers, loading, users };\n}\n```\n\n### Critical API Rules\n\n1. **MUST call API by exact name**: Format is `<ApiName>` matching folder `apis/<ApiName>/api.yaml`\n2. **Always pass parameters**: `await api({ param1: value1, param2: value2 })`\n3. **Store response in React state**: Use `useState`, `useReducer`, etc.\n4. **Use async/await pattern**: APIs are async functions\n5. **Track loading and error states**: Always show visual feedback\n6. **ALWAYS check API interfaces**: NEVER guess the response structure\n7. **Include all parameters**: Even optional ones should be passed as `null`\n8. **ALWAYS use try/catch**: APIs throw string errors when they fail - wrap ALL API calls in try/catch blocks\n9. **Prevent HMR loops**: Guard `useEffect` with a ref:\n\n```tsx\nconst hasLoadedRef = useRef(false);\nuseEffect(() => {\n if (hasLoadedRef.current) return;\n hasLoadedRef.current = true;\n fetchData();\n}, []);\n```\n\n### File Handling\n\n**CRITICAL: Files must be wrapped in `{ files: [...] }` format:**\n\n```tsx\n// \u2705 CORRECT - Frontend: wrap files in { files: [...] }\nconst response = await runUploadApi({ userFile: { files: selectedFiles } });\n\n// \u274C WRONG - backend cannot process unwrapped files\nconst response = await runUploadApi({ userFile: selectedFiles });\n```\n\n## Platform Hooks\n\nAvailable hooks from `@superblocksteam/library`:\n\n```typescript\nimport {\n useSuperblocksUser,\n useSuperblocksGroups,\n useSuperblocksDataTags,\n} from \"@superblocksteam/library\";\n\n// Get current user info\nconst user = useSuperblocksUser();\n// user.name, user.email, user.id, user.groups, user.username, user.metadata\n\n// Get organization groups\nconst groups = useSuperblocksGroups();\n\n// Manage data tags\nconst { dataTags, setDataTag } = useSuperblocksDataTags();\n```\n\n**For embedded applications**, see the `references/embedding.md` file for `useEmbedProperties`, `useEmbedEvent`, and `useEmitEmbedEvent` hooks.\n\n## Application Architecture\n\n### App.tsx Layout Structure\n\n**For single-page applications:**\n\n- Put all content in `pages/<pageName>/index.tsx`\n- Use components to compose and build the page\n- Keep `App.tsx` minimal with just `<AppProvider>` and `<Outlet />`\n\n**For multi-page applications:**\n\n- Put shared navigation/layout in `App.tsx` (sidebars, headers, footers)\n- Always include `<Outlet />` for page content\n- Always include `<AppProvider />` wrapper\n- Individual pages focus on content, not layout\n\n```tsx\n// \u2705 CORRECT - Multi-page App.tsx layout\n<AppProvider>\n <div className=\"flex flex-row size-screen\">\n {/* Sidebar - persistent across all pages */}\n <div className=\"flex bg-sidebar border-r w-[250px]\">\n <Navigation />\n </div>\n\n {/* Main content area */}\n <div className=\"flex flex-1 h-full flex-col\">\n {/* Header - persistent across all pages */}\n <div className=\"flex bg-header border-b h-[60px]\">\n <Header />\n </div>\n\n {/* Page content area */}\n <div className=\"flex p-4 flex-1 overflow-auto\">\n <Outlet />\n </div>\n </div>\n </div>\n</AppProvider>\n```\n\n**PROTECTED: NEVER remove `<AppProvider>` or `<Outlet />` from App.tsx!**\n\n### Page Structure\n\n```tsx\n// \u2705 CORRECT - Page focuses on content only\n<div className=\"flex flex-col gap-4 size-screen overflow-auto\">\n <h1 className=\"text-3xl font-bold\">Dashboard Content</h1>\n <Card>{/* Page-specific content */}</Card>\n</div>\n```\n\n**IMPORTANT**: The first div on the page must have `overflow-auto` so the user's page can scroll.\n\n## Routing\n\nUse `react-router@7` in data mode. Standard patterns apply:\n\n- `useNavigate()` for programmatic navigation\n- `useParams()` for route parameters\n- `useSearchParams()` for query strings\n\n**If you add new pages or rename files, you MUST update the router.**\n\n## Design System (Tailwind CSS v4)\n\n**All design tokens are defined in `index.css`**. Apps come with a professional black-and-white theme by default.\n\n### Semantic Tokens Rule\n\n**ALWAYS use semantic tokens** \u2014 NEVER raw Tailwind utilities:\n\n```tsx\n// \u2705 CORRECT\n<Card className=\"bg-background text-foreground border border-border\" />\n\n// \u274C WRONG\n<Card className=\"bg-white text-black border-gray-200\" />\n```\n\n### When to Modify index.css\n\nOnly modify when:\n\n- User explicitly requests branding/theme changes\n- Replicating a specific brand look (e.g., Yelp, Instacart)\n- Feature requests (lists, filters, CRUD) do NOT require changes\n\n**Modification Rules:**\n\n- All colors must be in OKLCH format\n- Use semantic names (`--color-warning`, `--shadow-elevated`)\n- Do not remove or rename existing tokens\n- Limit color palette to 5 colors max\n- Avoid gradients unless explicitly requested\n- Minimal font sizes (3 max: body, section heading, main heading)\n\n### Component Variants\n\nUse or create variants instead of one-off styles:\n\n```tsx\n// \u274C WRONG - Hacky inline overrides\n<Button className=\"text-white border-white hover:bg-white\" />\n\n// \u2705 CORRECT - Use a variant\n<Button variant=\"secondary\" />\n```\n\n## Icons\n\nUse icons from Lucide React library:\n\n```tsx\nimport { Icon } from \"@/components/ui/icon\";\n<Icon icon=\"heart\" />;\n\nimport { Button } from \"@/components/ui/button\";\n<Button>\n <Icon icon=\"plus\" /> Add Item\n</Button>;\n```\n\n**Always use icons rather than emojis unless explicitly requested.**\n\n## Custom Components\n\n**CRITICAL: Component composition is MANDATORY. DO NOT create monolithic pages.**\n\n### The Composition Rule\n\nWhen building ANY feature:\n\n1. **First**, identify reusable parts (list items, cards, forms, filters, headers)\n2. **Then**, create separate component files\n3. **Finally**, compose them together in the page\n\n### When to Create Components\n\n- **Rendering any list** - Extract to a component\n- **Building cards/complex UI** - Each card type is a component\n- **Creating forms** - Form sections are components\n- **Adding filters/headers** - These are components\n- **Page has >50 lines JSX** - Break it down\n\n### Component Boundary Rules\n\n**Inside a custom component:**\n\n- \u2705 Use React hooks (useState, useReducer, useEffect, etc.)\n- \u2705 Use local React state\n- \u2705 Use internal helper components\n- \u2705 Use other registered components\n- \u274C CANNOT call APIs - must pass data into the component\n\n### Example: Proper Component Structure\n\n```tsx\n// components/ProductCard/index.tsx - Extract to component\nimport { Card } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\n\ntype ProductCardProps = {\n product: {\n id: string;\n name: string;\n image: string;\n };\n};\n\nexport default function ProductCard(props: ProductCardProps) {\n return (\n <Card>\n <img src={props.product.image} />\n <h3 className=\"text-lg font-semibold\">{props.product.name}</h3>\n <Button>Add</Button>\n </Card>\n );\n}\n\n// pages/Products/index.tsx - Clean composition\nimport ProductCard from \"@/components/ProductCard\";\n\nconst ProductsPage = () => {\n const [products, setProducts] = useState([]);\n\n return (\n <div className=\"grid grid-cols-3 gap-4\">\n {products.map((p) => (\n <ProductCard key={p.id} product={p} />\n ))}\n </div>\n );\n};\n```\n\n## Visual Excellence\n\n**Prioritize visual excellence from the start:**\n\n1. **Design System Enhancement**: Start by enhancing `index.css` with app-specific colors that match the target aesthetic\n2. **Professional Layout Architecture**: Use sophisticated layouts with proper spacing, responsive design\n3. **Rich Interactive Components**: Leverage advanced components with proper variants and states\n4. **Visual Polish**: Add shadows, smooth transitions, skeleton loaders, hover effects, typography hierarchy\n5. **Real-World UI Patterns**: Create layouts that feel like professional applications\n\n**Make applications that look and feel like real, polished products - not basic wireframes.**\n\n### Loading States\n\n**Always represent loading with skeletons (shimmers), not spinners or empty screens.**\n\n### Efficient Loading Patterns\n\n1. **Default to Smart Loading**: Check for existing data before showing loading states\n2. **Loading State Hierarchy**:\n - Empty state \u2192 Full loading\n - Has data \u2192 Keep showing data during refetch\n - Error state \u2192 Show error with retry option\n3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession\n4. **Use hooks to encapsulate API logic**: Avoid repeating code\n\n## Performance Rules\n\n### 1. ALWAYS Paginate Tables and Lists\n\n**NEVER render more than 50 rows without pagination.** Always add client-side pagination:\n\n```tsx\nfunction PaginatedTable({ data }: { data: any[] }) {\n const PAGE_SIZE = 20;\n const [page, setPage] = useState(0);\n const totalPages = Math.ceil(data.length / PAGE_SIZE);\n const pageData = useMemo(\n () => data.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE),\n [data, page],\n );\n\n useEffect(() => {\n setPage(0);\n }, [data.length]);\n\n return (\n <>\n <Table>{/* render pageData rows */}</Table>\n <span>\n Page {page + 1} of {totalPages} ({data.length} total rows)\n </span>\n <Button\n onClick={() => setPage((p) => Math.max(0, p - 1))}\n disabled={page === 0}\n >\n Previous\n </Button>\n <Button\n onClick={() => setPage((p) => Math.min(totalPages - 1, p + 1))}\n disabled={page >= totalPages - 1}\n >\n Next\n </Button>\n </>\n );\n}\n```\n\nFor 200+ rows, prefer **server-side pagination**; use cursor/keyset pagination for high offsets instead of `LIMIT`/`OFFSET`.\n\nFor 500+ item lists where pagination doesn't fit the UX (chat messages, infinite scroll feeds, large dropdowns), use **virtualization** (`react-virtuoso` or `@tanstack/react-virtual`) to render only the items visible in the viewport.\n\n### 2. ALWAYS Debounce Input-Driven API Calls\n\n**NEVER call an API directly from onChange.** Debounce search/filter inputs with a 300ms timer:\n\n```tsx\nfunction DebouncedSearch({ onSearch }: { onSearch: (query: string) => void }) {\n const [localValue, setLocalValue] = useState(\"\");\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalValue(e.target.value);\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => onSearch(e.target.value), 300);\n },\n [onSearch],\n );\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n return (\n <Input value={localValue} onChange={handleChange} placeholder=\"Search...\" />\n );\n}\n```\n\n### 3. Memoize Expensive Renders\n\nUse memoization (`memo()`, `useMemo`, `useCallback`) when it prevents measurable re-renders or expensive recomputation:\n\n```tsx\nconst OrderRow = memo(function OrderRow({\n order,\n onSelect,\n}: {\n order: Order;\n onSelect: (id: string) => void;\n}) {\n return (\n <TableRow onClick={() => onSelect(order.id)}>\n <TableCell>{order.id}</TableCell>...\n </TableRow>\n );\n});\n\nconst handleSelect = useCallback((id: string) => {\n setSelectedId(id);\n}, []);\n\nconst filtered = useMemo(\n () =>\n orders.filter((o) => o.status === status).sort((a, b) => b.total - a.total),\n [orders, status],\n);\n```\n\n### 4. ALWAYS Clean Up Side Effects\n\nClean up timers, event listeners, and subscriptions in `useEffect` return functions:\n\n```tsx\nuseEffect(() => {\n const handler = (e: KeyboardEvent) => {\n /* ... */\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n}, []);\n```\n\n### 5. Cancel In-Flight API Requests on Unmount\n\nWhen debouncing or fetching data, use the `cancel()` function from `useApi` to cancel in-flight requests when the component unmounts or a newer request supersedes the previous one:\n\n```tsx\nconst { run, cancel } = useApi(\"SearchProducts\");\n\nuseEffect(() => {\n if (!query) return;\n run({ query })\n .then((res) => setResults(res?.products ?? []))\n .catch(console.error);\n return () => {\n void cancel();\n };\n}, [query, run, cancel]);\n```\n";
1
+ export declare const content = "---\nname: superblocks-frontend\ndescription: |\n Build frontend UI using React, Tailwind CSS, and Superblocks components. Essential for connecting Superblocks UIs with APIs.\n Use when creating pages, components, handling user interactions, or working with the design system.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Superblocks Frontend Development\n\nThis skill covers building frontend UI for Superblocks applications using React, Tailwind CSS v4, and the Superblocks component library.\n\n## Platform Overview\n\nThis is a React-based web application platform. Use standard React patterns:\n\n- `useState`, `useEffect`, `useCallback`, `useMemo`\n- Event handlers and controlled components\n- JSX with Tailwind CSS classes\n\n## Using APIs from Frontend\n\nYou **must** use the `useApi` hook for calling backend APIs. It supports two modes:\n\n**Declarative** \u2014 auto-fetches on mount and when inputs change (preferred for data fetching):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\n\n// Auto-fetches when email or name changes. No useEffect, no loading state, no HMR guards needed.\nconst { loading, data } = useApi(\"GetUsers\", { email, name });\n```\n\n**Imperative** \u2014 call `run()` manually (for event-driven actions like form submissions):\n\n```typescript\nimport { useApi } from \"@superblocksteam/library\";\nimport { toast } from \"sonner\";\n\nconst { run: createOrder, loading } = useApi(\"CreateOrder\");\n\nconst handleSubmit = useCallback(async () => {\n try {\n await createOrder({ item, qty });\n } catch (error) {\n const message =\n error && typeof error === \"object\" && \"message\" in error\n ? String((error as { message: unknown }).message)\n : String(error);\n toast.error(\"Error creating order: \" + message);\n }\n}, [item, qty, createOrder]);\n```\n\nBoth modes return `{ run, cancel, loading, data }`. `data` persists across re-runs (shows previous result while loading). HMR double-fetch prevention is built in \u2014 no `useRef` guard needed.\n\n### Critical API Rules\n\n1. **MUST call API by exact name**: Format is `<ApiName>` matching folder `apis/<ApiName>/api.yaml`\n2. **Prefer declarative mode**: For data fetching, pass inputs directly: `useApi(\"GetUsers\", { email })`. Only use imperative mode for event-driven actions (button clicks, form submissions).\n3. **Use `loading` and `data` from useApi**: Do NOT create separate `useState` for loading or response data \u2014 useApi manages this for you\n4. **ALWAYS check API interfaces**: NEVER guess the response structure\n5. **Include all parameters**: Even optional ones should be passed as `null`\n6. **ALWAYS use try/catch**: In imperative mode, APIs throw errors when they fail - wrap ALL `run()` calls in try/catch blocks. In declarative mode, errors are swallowed (check `data` for the last successful result).\n\n### File Handling\n\n**CRITICAL: Files must be wrapped in `{ files: [...] }` format:**\n\n```tsx\n// \u2705 CORRECT - Frontend: wrap files in { files: [...] }\nconst response = await runUploadApi({ userFile: { files: selectedFiles } });\n\n// \u274C WRONG - backend cannot process unwrapped files\nconst response = await runUploadApi({ userFile: selectedFiles });\n```\n\n## Platform Hooks\n\nAvailable hooks from `@superblocksteam/library`:\n\n```typescript\nimport {\n useSuperblocksUser,\n useSuperblocksGroups,\n useSuperblocksDataTags,\n} from \"@superblocksteam/library\";\n\n// Get current user info\nconst user = useSuperblocksUser();\n// user.name, user.email, user.id, user.groups, user.username, user.metadata\n\n// Get organization groups\nconst groups = useSuperblocksGroups();\n\n// Manage data tags\nconst { dataTags, setDataTag } = useSuperblocksDataTags();\n```\n\n**For embedded applications**, see the `references/embedding.md` file for `useEmbedProperties`, `useEmbedEvent`, and `useEmitEmbedEvent` hooks.\n\n## Application Architecture\n\n### App.tsx Layout Structure\n\n**For single-page applications:**\n\n- Put all content in `pages/<pageName>/index.tsx`\n- Use components to compose and build the page\n- Keep `App.tsx` minimal with just `<AppProvider>` and `<Outlet />`\n\n**For multi-page applications:**\n\n- Put shared navigation/layout in `App.tsx` (sidebars, headers, footers)\n- Always include `<Outlet />` for page content\n- Always include `<AppProvider />` wrapper\n- Individual pages focus on content, not layout\n\n```tsx\n// \u2705 CORRECT - Multi-page App.tsx layout\n<AppProvider>\n <div className=\"flex flex-row size-screen\">\n {/* Sidebar - persistent across all pages */}\n <div className=\"flex bg-sidebar border-r w-[250px]\">\n <Navigation />\n </div>\n\n {/* Main content area */}\n <div className=\"flex flex-1 h-full flex-col\">\n {/* Header - persistent across all pages */}\n <div className=\"flex bg-header border-b h-[60px]\">\n <Header />\n </div>\n\n {/* Page content area */}\n <div className=\"flex p-4 flex-1 overflow-auto\">\n <Outlet />\n </div>\n </div>\n </div>\n</AppProvider>\n```\n\n**PROTECTED: NEVER remove `<AppProvider>` or `<Outlet />` from App.tsx!**\n\n### Page Structure\n\n```tsx\n// \u2705 CORRECT - Page focuses on content only\n<div className=\"flex flex-col gap-4 size-screen overflow-auto\">\n <h1 className=\"text-3xl font-bold\">Dashboard Content</h1>\n <Card>{/* Page-specific content */}</Card>\n</div>\n```\n\n**IMPORTANT**: The first div on the page must have `overflow-auto` so the user's page can scroll.\n\n## Routing\n\nUse `react-router@7` in data mode. Standard patterns apply:\n\n- `useNavigate()` for programmatic navigation\n- `useParams()` for route parameters\n- `useSearchParams()` for query strings\n\n**If you add new pages or rename files, you MUST update the router.**\n\n## Design System (Tailwind CSS v4)\n\n**All design tokens are defined in `index.css`**. Apps come with a professional black-and-white theme by default.\n\n### Semantic Tokens Rule\n\n**ALWAYS use semantic tokens** \u2014 NEVER raw Tailwind utilities:\n\n```tsx\n// \u2705 CORRECT\n<Card className=\"bg-background text-foreground border border-border\" />\n\n// \u274C WRONG\n<Card className=\"bg-white text-black border-gray-200\" />\n```\n\n### When to Modify index.css\n\nOnly modify when:\n\n- User explicitly requests branding/theme changes\n- Replicating a specific brand look (e.g., Yelp, Instacart)\n- Feature requests (lists, filters, CRUD) do NOT require changes\n\n**Modification Rules:**\n\n- All colors must be in OKLCH format\n- Use semantic names (`--color-warning`, `--shadow-elevated`)\n- Do not remove or rename existing tokens\n- Limit color palette to 5 colors max\n- Avoid gradients unless explicitly requested\n- Minimal font sizes (3 max: body, section heading, main heading)\n\n### Component Variants\n\nUse or create variants instead of one-off styles:\n\n```tsx\n// \u274C WRONG - Hacky inline overrides\n<Button className=\"text-white border-white hover:bg-white\" />\n\n// \u2705 CORRECT - Use a variant\n<Button variant=\"secondary\" />\n```\n\n## Icons\n\nUse icons from Lucide React library:\n\n```tsx\nimport { Icon } from \"@/components/ui/icon\";\n<Icon icon=\"heart\" />;\n\nimport { Button } from \"@/components/ui/button\";\n<Button>\n <Icon icon=\"plus\" /> Add Item\n</Button>;\n```\n\n**Always use icons rather than emojis unless explicitly requested.**\n\n## Custom Components\n\n**CRITICAL: Component composition is MANDATORY. DO NOT create monolithic pages.**\n\n### The Composition Rule\n\nWhen building ANY feature:\n\n1. **First**, identify reusable parts (list items, cards, forms, filters, headers)\n2. **Then**, create separate component files\n3. **Finally**, compose them together in the page\n\n### When to Create Components\n\n- **Rendering any list** - Extract to a component\n- **Building cards/complex UI** - Each card type is a component\n- **Creating forms** - Form sections are components\n- **Adding filters/headers** - These are components\n- **Page has >50 lines JSX** - Break it down\n\n### Component Boundary Rules\n\n**Inside a custom component:**\n\n- \u2705 Use React hooks (useState, useReducer, useEffect, etc.)\n- \u2705 Use local React state\n- \u2705 Use internal helper components\n- \u2705 Use other registered components\n- \u274C CANNOT call APIs - must pass data into the component\n\n### Example: Proper Component Structure\n\n```tsx\n// components/ProductCard/index.tsx - Extract to component\nimport { Card } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\n\ntype ProductCardProps = {\n product: {\n id: string;\n name: string;\n image: string;\n };\n};\n\nexport default function ProductCard(props: ProductCardProps) {\n return (\n <Card>\n <img src={props.product.image} />\n <h3 className=\"text-lg font-semibold\">{props.product.name}</h3>\n <Button>Add</Button>\n </Card>\n );\n}\n\n// pages/Products/index.tsx - Clean composition\nimport ProductCard from \"@/components/ProductCard\";\n\nconst ProductsPage = () => {\n const [products, setProducts] = useState([]);\n\n return (\n <div className=\"grid grid-cols-3 gap-4\">\n {products.map((p) => (\n <ProductCard key={p.id} product={p} />\n ))}\n </div>\n );\n};\n```\n\n## Visual Excellence\n\n**Prioritize visual excellence from the start:**\n\n1. **Design System Enhancement**: Start by enhancing `index.css` with app-specific colors that match the target aesthetic\n2. **Professional Layout Architecture**: Use sophisticated layouts with proper spacing, responsive design\n3. **Rich Interactive Components**: Leverage advanced components with proper variants and states\n4. **Visual Polish**: Add shadows, smooth transitions, skeleton loaders, hover effects, typography hierarchy\n5. **Real-World UI Patterns**: Create layouts that feel like professional applications\n\n**Make applications that look and feel like real, polished products - not basic wireframes.**\n\n### Loading States\n\n**Always represent loading with skeletons (shimmers), not spinners or empty screens.**\n\n### Efficient Loading Patterns\n\n1. **Default to Smart Loading**: Check for existing data before showing loading states\n2. **Loading State Hierarchy**:\n - Empty state \u2192 Full loading\n - Has data \u2192 Keep showing data during refetch\n - Error state \u2192 Show error with retry option\n3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession\n4. **Use hooks to encapsulate API logic**: Avoid repeating code\n\n## Performance Rules\n\n### 1. ALWAYS Paginate Tables and Lists\n\n**NEVER render more than 50 rows without pagination.** Always add client-side pagination:\n\n```tsx\nfunction PaginatedTable({ data }: { data: any[] }) {\n const PAGE_SIZE = 20;\n const [page, setPage] = useState(0);\n const totalPages = Math.ceil(data.length / PAGE_SIZE);\n const pageData = useMemo(\n () => data.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE),\n [data, page],\n );\n\n useEffect(() => {\n setPage(0);\n }, [data.length]);\n\n return (\n <>\n <Table>{/* render pageData rows */}</Table>\n <span>\n Page {page + 1} of {totalPages} ({data.length} total rows)\n </span>\n <Button\n onClick={() => setPage((p) => Math.max(0, p - 1))}\n disabled={page === 0}\n >\n Previous\n </Button>\n <Button\n onClick={() => setPage((p) => Math.min(totalPages - 1, p + 1))}\n disabled={page >= totalPages - 1}\n >\n Next\n </Button>\n </>\n );\n}\n```\n\nFor 200+ rows, prefer **server-side pagination**; use cursor/keyset pagination for high offsets instead of `LIMIT`/`OFFSET`.\n\nFor 500+ item lists where pagination doesn't fit the UX (chat messages, infinite scroll feeds, large dropdowns), use **virtualization** (`react-virtuoso` or `@tanstack/react-virtual`) to render only the items visible in the viewport.\n\n### 2. ALWAYS Debounce Input-Driven API Calls\n\n**NEVER call an API directly from onChange.** Debounce search/filter inputs with a 300ms timer:\n\n```tsx\nfunction DebouncedSearch({ onSearch }: { onSearch: (query: string) => void }) {\n const [localValue, setLocalValue] = useState(\"\");\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalValue(e.target.value);\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => onSearch(e.target.value), 300);\n },\n [onSearch],\n );\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n return (\n <Input value={localValue} onChange={handleChange} placeholder=\"Search...\" />\n );\n}\n```\n\n### 3. Memoize Expensive Renders\n\nUse memoization (`memo()`, `useMemo`, `useCallback`) when it prevents measurable re-renders or expensive recomputation:\n\n```tsx\nconst OrderRow = memo(function OrderRow({\n order,\n onSelect,\n}: {\n order: Order;\n onSelect: (id: string) => void;\n}) {\n return (\n <TableRow onClick={() => onSelect(order.id)}>\n <TableCell>{order.id}</TableCell>...\n </TableRow>\n );\n});\n\nconst handleSelect = useCallback((id: string) => {\n setSelectedId(id);\n}, []);\n\nconst filtered = useMemo(\n () =>\n orders.filter((o) => o.status === status).sort((a, b) => b.total - a.total),\n [orders, status],\n);\n```\n\n### 4. ALWAYS Clean Up Side Effects\n\nClean up timers, event listeners, and subscriptions in `useEffect` return functions:\n\n```tsx\nuseEffect(() => {\n const handler = (e: KeyboardEvent) => {\n /* ... */\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n}, []);\n```\n\n### 5. Cancel In-Flight API Requests on Unmount\n\nFor search/filter patterns, prefer declarative mode \u2014 it handles cancellation and cleanup automatically:\n\n```tsx\n// Declarative: auto-fetches and cancels on unmount/input change\nconst { loading, data } = useApi(\"SearchProducts\", { query });\n```\n\nFor imperative usage with manual cleanup, use the `cancel()` function:\n\n```tsx\nconst { run, cancel } = useApi(\"SearchProducts\");\n\nuseEffect(() => {\n if (!query) return;\n run({ query }).catch(console.error);\n return () => {\n void cancel().catch(() => {});\n };\n}, [query, run, cancel]);\n```\n";
2
2
  //# sourceMappingURL=skill.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,66bA6dnB,CAAC"}
1
+ {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,6pcAidnB,CAAC"}
@@ -25,65 +25,48 @@ This is a React-based web application platform. Use standard React patterns:
25
25
 
26
26
  ## Using APIs from Frontend
27
27
 
28
- You **must** use the \`useApi\` hook for calling backend APIs:
28
+ You **must** use the \`useApi\` hook for calling backend APIs. It supports two modes:
29
+
30
+ **Declarative** — auto-fetches on mount and when inputs change (preferred for data fetching):
31
+
32
+ \`\`\`typescript
33
+ import { useApi } from "@superblocksteam/library";
34
+
35
+ // Auto-fetches when email or name changes. No useEffect, no loading state, no HMR guards needed.
36
+ const { loading, data } = useApi("GetUsers", { email, name });
37
+ \`\`\`
38
+
39
+ **Imperative** — call \`run()\` manually (for event-driven actions like form submissions):
29
40
 
30
41
  \`\`\`typescript
31
42
  import { useApi } from "@superblocksteam/library";
32
43
  import { toast } from "sonner";
33
44
 
34
- export default function useGetUsers({
35
- email,
36
- name,
37
- }: {
38
- email: string | undefined;
39
- name: string | undefined;
40
- }) {
41
- const { run: runGetUsers } = useApi("GetUsers"); // matches folder apis/GetUsers/api.yaml
42
- const [loading, setLoading] = useState(false);
43
- const [users, setUsers] = useState<User[]>([]);
44
-
45
- const getUsers = useCallback(async () => {
46
- setLoading(true);
47
- try {
48
- // ALWAYS include ALL inputs, even if they are empty
49
- const response = await runGetUsers({
50
- email: email ?? null,
51
- name: name ?? null,
52
- });
53
- setUsers(response?.users ?? []);
54
- } catch (error) {
55
- // API errors are thrown as strings, not Error objects
56
- console.error(error);
57
- toast.error("Error fetching users: " + error);
58
- } finally {
59
- setLoading(false);
60
- }
61
- }, [email, name, runGetUsers]);
62
-
63
- return { getUsers, loading, users };
64
- }
45
+ const { run: createOrder, loading } = useApi("CreateOrder");
46
+
47
+ const handleSubmit = useCallback(async () => {
48
+ try {
49
+ await createOrder({ item, qty });
50
+ } catch (error) {
51
+ const message =
52
+ error && typeof error === "object" && "message" in error
53
+ ? String((error as { message: unknown }).message)
54
+ : String(error);
55
+ toast.error("Error creating order: " + message);
56
+ }
57
+ }, [item, qty, createOrder]);
65
58
  \`\`\`
66
59
 
60
+ Both modes return \`{ run, cancel, loading, data }\`. \`data\` persists across re-runs (shows previous result while loading). HMR double-fetch prevention is built in — no \`useRef\` guard needed.
61
+
67
62
  ### Critical API Rules
68
63
 
69
64
  1. **MUST call API by exact name**: Format is \`<ApiName>\` matching folder \`apis/<ApiName>/api.yaml\`
70
- 2. **Always pass parameters**: \`await api({ param1: value1, param2: value2 })\`
71
- 3. **Store response in React state**: Use \`useState\`, \`useReducer\`, etc.
72
- 4. **Use async/await pattern**: APIs are async functions
73
- 5. **Track loading and error states**: Always show visual feedback
74
- 6. **ALWAYS check API interfaces**: NEVER guess the response structure
75
- 7. **Include all parameters**: Even optional ones should be passed as \`null\`
76
- 8. **ALWAYS use try/catch**: APIs throw string errors when they fail - wrap ALL API calls in try/catch blocks
77
- 9. **Prevent HMR loops**: Guard \`useEffect\` with a ref:
78
-
79
- \`\`\`tsx
80
- const hasLoadedRef = useRef(false);
81
- useEffect(() => {
82
- if (hasLoadedRef.current) return;
83
- hasLoadedRef.current = true;
84
- fetchData();
85
- }, []);
86
- \`\`\`
65
+ 2. **Prefer declarative mode**: For data fetching, pass inputs directly: \`useApi("GetUsers", { email })\`. Only use imperative mode for event-driven actions (button clicks, form submissions).
66
+ 3. **Use \`loading\` and \`data\` from useApi**: Do NOT create separate \`useState\` for loading or response data — useApi manages this for you
67
+ 4. **ALWAYS check API interfaces**: NEVER guess the response structure
68
+ 5. **Include all parameters**: Even optional ones should be passed as \`null\`
69
+ 6. **ALWAYS use try/catch**: In imperative mode, APIs throw errors when they fail - wrap ALL \`run()\` calls in try/catch blocks. In declarative mode, errors are swallowed (check \`data\` for the last successful result).
87
70
 
88
71
  ### File Handling
89
72
 
@@ -462,18 +445,23 @@ useEffect(() => {
462
445
 
463
446
  ### 5. Cancel In-Flight API Requests on Unmount
464
447
 
465
- When debouncing or fetching data, use the \`cancel()\` function from \`useApi\` to cancel in-flight requests when the component unmounts or a newer request supersedes the previous one:
448
+ For search/filter patterns, prefer declarative mode it handles cancellation and cleanup automatically:
449
+
450
+ \`\`\`tsx
451
+ // Declarative: auto-fetches and cancels on unmount/input change
452
+ const { loading, data } = useApi("SearchProducts", { query });
453
+ \`\`\`
454
+
455
+ For imperative usage with manual cleanup, use the \`cancel()\` function:
466
456
 
467
457
  \`\`\`tsx
468
458
  const { run, cancel } = useApi("SearchProducts");
469
459
 
470
460
  useEffect(() => {
471
461
  if (!query) return;
472
- run({ query })
473
- .then((res) => setResults(res?.products ?? []))
474
- .catch(console.error);
462
+ run({ query }).catch(console.error);
475
463
  return () => {
476
- void cancel();
464
+ void cancel().catch(() => {});
477
465
  };
478
466
  }, [query, run, cancel]);
479
467
  \`\`\`
@@ -1 +1 @@
1
- {"version":3,"file":"skill.generated.js","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6dtB,CAAC"}
1
+ {"version":3,"file":"skill.generated.js","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/superblocks-frontend/skill.generated.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAidtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function mapVirtualSystemSkillsPathToPhysical(pathOrPattern: string): string;
2
+ export declare function remapPhysicalSystemSkillsPathInOutput(output: string): string;
3
+ //# sourceMappingURL=tool-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-paths.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/tool-paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,MAAM,GACpB,MAAM,CAWR;AAED,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK5E"}
@@ -0,0 +1,16 @@
1
+ const VIRTUAL_PREFIX = "skills/system";
2
+ const PHYSICAL_PREFIX = ".superblocks/system-skills";
3
+ export function mapVirtualSystemSkillsPathToPhysical(pathOrPattern) {
4
+ if (pathOrPattern === VIRTUAL_PREFIX ||
5
+ pathOrPattern === `${VIRTUAL_PREFIX}/`) {
6
+ return PHYSICAL_PREFIX;
7
+ }
8
+ if (pathOrPattern.startsWith(`${VIRTUAL_PREFIX}/`)) {
9
+ return `${PHYSICAL_PREFIX}/${pathOrPattern.slice(VIRTUAL_PREFIX.length + 1)}`;
10
+ }
11
+ return pathOrPattern;
12
+ }
13
+ export function remapPhysicalSystemSkillsPathInOutput(output) {
14
+ return output.replace(/\.superblocks\/system-skills\/([^\s:]+)/g, "skills/system/$1");
15
+ }
16
+ //# sourceMappingURL=tool-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-paths.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/tool-paths.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD,MAAM,UAAU,oCAAoC,CAClD,aAAqB;IAErB,IACE,aAAa,KAAK,cAAc;QAChC,aAAa,KAAK,GAAG,cAAc,GAAG,EACtC,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,GAAG,eAAe,IAAI,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,MAAc;IAClE,OAAO,MAAM,CAAC,OAAO,CACnB,0CAA0C,EAC1C,kBAAkB,CACnB,CAAC;AACJ,CAAC"}