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

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 (312) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +0 -36
  2. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  3. package/dist/ai-service/agent/middleware.js +1 -65
  4. package/dist/ai-service/agent/middleware.js.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +57 -101
  8. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  9. package/dist/ai-service/agent/tool-message-utils.js +1 -1
  10. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  11. package/dist/ai-service/agent/tools/apis/api-executor.js +1 -1
  12. package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
  13. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +1 -1
  15. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
  16. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +7 -23
  18. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  19. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/build-api.js +19 -36
  21. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  22. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +1 -1
  23. package/dist/ai-service/agent/tools/apis/sample-json.js +1 -1
  24. package/dist/ai-service/agent/tools/apis/sample-json.js.map +1 -1
  25. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -11
  26. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/apis/test-api.js +54 -95
  28. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  29. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +0 -3
  30. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/build-capture-screenshot.js +8 -12
  32. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  33. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  34. package/dist/ai-service/agent/tools/build-debug.js +10 -30
  35. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  36. package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
  37. package/dist/ai-service/agent/tools/build-delete-file.js +2 -6
  38. package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
  39. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  40. package/dist/ai-service/agent/tools/build-edit-file.js +5 -20
  41. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  42. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/build-finalize.js +4 -30
  44. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  45. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  46. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools/build-multi-edit-file.js +4 -14
  48. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  49. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  50. package/dist/ai-service/agent/tools/build-read-file.js +11 -23
  51. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  52. package/dist/ai-service/agent/tools/debug-cache.js +1 -1
  53. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  54. package/dist/ai-service/agent/tools/get-console-logs.d.ts +29 -0
  55. package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -0
  56. package/dist/ai-service/agent/tools/get-console-logs.js +171 -0
  57. package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -0
  58. package/dist/ai-service/agent/tools/index.d.ts +1 -1
  59. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  60. package/dist/ai-service/agent/tools/index.js +1 -1
  61. package/dist/ai-service/agent/tools/index.js.map +1 -1
  62. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  63. package/dist/ai-service/agent/tools/integrations/execute-request.js +5 -20
  64. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  65. package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/integrations/internal.js +3 -12
  67. package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
  68. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  69. package/dist/ai-service/agent/tools.js +28 -19
  70. package/dist/ai-service/agent/tools.js.map +1 -1
  71. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  72. package/dist/ai-service/agent/tools2/registry.js +15 -37
  73. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  74. package/dist/ai-service/agent/tools2/tools/bash.d.ts +1 -1
  75. package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
  76. package/dist/ai-service/agent/tools2/tools/edit.js +4 -9
  77. package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
  78. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  79. package/dist/ai-service/agent/tools2/tools/grep.js +7 -73
  80. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  81. package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
  82. package/dist/ai-service/agent/tools2/tools/read.js +4 -9
  83. package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
  84. package/dist/ai-service/agent/tools2/types.d.ts +8 -40
  85. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  86. package/dist/ai-service/agent/tools2/types.js +3 -41
  87. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  88. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +1 -0
  89. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
  90. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +54 -60
  91. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
  92. package/dist/ai-service/chat/chat-session-store.d.ts +0 -6
  93. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  94. package/dist/ai-service/chat/chat-session-store.js +0 -44
  95. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  96. package/dist/ai-service/features.d.ts +0 -8
  97. package/dist/ai-service/features.d.ts.map +1 -1
  98. package/dist/ai-service/features.js +0 -8
  99. package/dist/ai-service/features.js.map +1 -1
  100. package/dist/ai-service/index.d.ts +2 -34
  101. package/dist/ai-service/index.d.ts.map +1 -1
  102. package/dist/ai-service/index.js +18 -112
  103. package/dist/ai-service/index.js.map +1 -1
  104. package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
  105. package/dist/ai-service/integrations/metadata-storage/local.js +2 -4
  106. package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
  107. package/dist/ai-service/integrations/store.d.ts +3 -6
  108. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  109. package/dist/ai-service/integrations/store.js +6 -96
  110. package/dist/ai-service/integrations/store.js.map +1 -1
  111. package/dist/ai-service/judge/judge-executor.js +1 -1
  112. package/dist/ai-service/judge/judge-executor.js.map +1 -1
  113. package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
  114. package/dist/ai-service/llm/client.d.ts.map +1 -1
  115. package/dist/ai-service/llm/client.js +13 -26
  116. package/dist/ai-service/llm/client.js.map +1 -1
  117. package/dist/ai-service/llm/context-v2/adapter.d.ts +0 -2
  118. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
  119. package/dist/ai-service/llm/context-v2/adapter.js +0 -6
  120. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
  121. package/dist/ai-service/llm/context-v2/context.d.ts +0 -17
  122. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  123. package/dist/ai-service/llm/context-v2/context.js +1 -54
  124. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  125. package/dist/ai-service/llm/context-v2/conversation-context.d.ts +1 -11
  126. package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
  127. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +1 -1
  128. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
  129. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +6 -42
  130. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
  131. package/dist/ai-service/llm/context-v2/types.d.ts +0 -4
  132. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  133. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  134. package/dist/ai-service/llm/error.js +1 -1
  135. package/dist/ai-service/llm/error.js.map +1 -1
  136. package/dist/ai-service/llm/interaction/adapters/vercel.js +5 -5
  137. package/dist/ai-service/llm/stream/config.d.ts +1 -1
  138. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  139. package/dist/ai-service/llm/stream/config.js.map +1 -1
  140. package/dist/ai-service/llm/stream/observers/llmobs.js +1 -1
  141. package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
  142. package/dist/ai-service/llm/stream/observers/logging.d.ts +0 -20
  143. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
  144. package/dist/ai-service/llm/stream/observers/logging.js +18 -115
  145. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  146. package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
  147. package/dist/ai-service/llm/stream/observers/retry-notification.js +1 -2
  148. package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
  149. package/dist/ai-service/llm/stream/orchestrator.js +4 -4
  150. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  151. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  152. package/dist/ai-service/llm/stream/retry-engine.js +1 -1
  153. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  154. package/dist/ai-service/llmobs/otel-exporter.d.ts +14 -111
  155. package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -1
  156. package/dist/ai-service/llmobs/otel-exporter.js +66 -441
  157. package/dist/ai-service/llmobs/otel-exporter.js.map +1 -1
  158. package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
  159. package/dist/ai-service/llmobs/tracer.js +4 -40
  160. package/dist/ai-service/llmobs/tracer.js.map +1 -1
  161. package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
  162. package/dist/ai-service/mcp/playwright-server.js +2 -11
  163. package/dist/ai-service/mcp/playwright-server.js.map +1 -1
  164. package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
  165. package/dist/ai-service/security/safety-classifier.js +3 -9
  166. package/dist/ai-service/security/safety-classifier.js.map +1 -1
  167. package/dist/ai-service/skills/index.d.ts +11 -23
  168. package/dist/ai-service/skills/index.d.ts.map +1 -1
  169. package/dist/ai-service/skills/index.js +21 -86
  170. package/dist/ai-service/skills/index.js.map +1 -1
  171. package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts +1 -1
  172. package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts.map +1 -1
  173. package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js +0 -56
  174. package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js.map +1 -1
  175. package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts +1 -1
  176. package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts.map +1 -1
  177. package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js +11 -143
  178. package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js.map +1 -1
  179. package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts +1 -1
  180. package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts.map +1 -1
  181. package/dist/ai-service/skills/system/superblocks-api/skill.generated.js +3 -130
  182. package/dist/ai-service/skills/system/superblocks-api/skill.generated.js.map +1 -1
  183. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  184. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  185. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +17 -97
  186. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  187. package/dist/ai-service/skills/types.d.ts +0 -24
  188. package/dist/ai-service/skills/types.d.ts.map +1 -1
  189. package/dist/ai-service/skills/types.js +0 -45
  190. package/dist/ai-service/skills/types.js.map +1 -1
  191. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -33
  192. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  193. package/dist/ai-service/state-machine/clark-fsm.js +1 -6
  194. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  195. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  196. package/dist/ai-service/state-machine/handlers/agent-planning.js +21 -24
  197. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  198. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  199. package/dist/ai-service/state-machine/handlers/llm-generating.js +5 -120
  200. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  201. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  202. package/dist/ai-service/state-machine/mocks.js +0 -23
  203. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  204. package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
  205. package/dist/ai-service/state-machine/traced-fsm.js +1 -1
  206. package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
  207. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts +2 -0
  208. package/dist/ai-service/test-utils/anthropic-service-mock.d.ts.map +1 -0
  209. package/dist/ai-service/test-utils/anthropic-service-mock.js +91 -0
  210. package/dist/ai-service/test-utils/anthropic-service-mock.js.map +1 -0
  211. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +3 -0
  212. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -0
  213. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +886 -0
  214. package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -0
  215. package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts +3 -0
  216. package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts.map +1 -0
  217. package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js +70 -0
  218. package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js.map +1 -0
  219. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +3 -0
  220. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -0
  221. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +109 -0
  222. package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -0
  223. package/dist/ai-service/test-utils/mock-utils.d.ts +12 -0
  224. package/dist/ai-service/test-utils/mock-utils.d.ts.map +1 -0
  225. package/dist/ai-service/test-utils/mock-utils.js +70 -0
  226. package/dist/ai-service/test-utils/mock-utils.js.map +1 -0
  227. package/dist/ai-service/util/safe-stringify.d.ts +2 -0
  228. package/dist/ai-service/util/safe-stringify.d.ts.map +1 -0
  229. package/dist/ai-service/util/safe-stringify.js +75 -0
  230. package/dist/ai-service/util/safe-stringify.js.map +1 -0
  231. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  232. package/dist/file-sync-vite-plugin.js +22 -52
  233. package/dist/file-sync-vite-plugin.js.map +1 -1
  234. package/dist/ids.d.ts +0 -1
  235. package/dist/ids.d.ts.map +1 -1
  236. package/dist/ids.js +0 -3
  237. package/dist/ids.js.map +1 -1
  238. package/dist/refactor/entities.d.ts.map +1 -1
  239. package/dist/refactor/entities.js +1 -0
  240. package/dist/refactor/entities.js.map +1 -1
  241. package/dist/socket-manager.d.ts.map +1 -1
  242. package/dist/socket-manager.js +3 -21
  243. package/dist/socket-manager.js.map +1 -1
  244. package/dist/sync-service/index.d.ts +0 -4
  245. package/dist/sync-service/index.d.ts.map +1 -1
  246. package/dist/sync-service/index.js +0 -6
  247. package/dist/sync-service/index.js.map +1 -1
  248. package/dist/util/logger.d.ts +0 -4
  249. package/dist/util/logger.d.ts.map +1 -1
  250. package/dist/util/logger.js +19 -77
  251. package/dist/util/logger.js.map +1 -1
  252. package/package.json +14 -17
  253. package/dist/ai-service/agent/tools/get-logs.d.ts +0 -72
  254. package/dist/ai-service/agent/tools/get-logs.d.ts.map +0 -1
  255. package/dist/ai-service/agent/tools/get-logs.js +0 -343
  256. package/dist/ai-service/agent/tools/get-logs.js.map +0 -1
  257. package/dist/ai-service/agent/tools/integrations/errors.d.ts +0 -9
  258. package/dist/ai-service/agent/tools/integrations/errors.d.ts.map +0 -1
  259. package/dist/ai-service/agent/tools/integrations/errors.js +0 -35
  260. package/dist/ai-service/agent/tools/integrations/errors.js.map +0 -1
  261. package/dist/ai-service/facts/helpers.d.ts +0 -9
  262. package/dist/ai-service/facts/helpers.d.ts.map +0 -1
  263. package/dist/ai-service/facts/helpers.js +0 -72
  264. package/dist/ai-service/facts/helpers.js.map +0 -1
  265. package/dist/ai-service/facts/index.d.ts +0 -4
  266. package/dist/ai-service/facts/index.d.ts.map +0 -1
  267. package/dist/ai-service/facts/index.js +0 -3
  268. package/dist/ai-service/facts/index.js.map +0 -1
  269. package/dist/ai-service/facts/knowledge-manager.d.ts +0 -50
  270. package/dist/ai-service/facts/knowledge-manager.d.ts.map +0 -1
  271. package/dist/ai-service/facts/knowledge-manager.js +0 -195
  272. package/dist/ai-service/facts/knowledge-manager.js.map +0 -1
  273. package/dist/ai-service/recording/index.d.ts +0 -25
  274. package/dist/ai-service/recording/index.d.ts.map +0 -1
  275. package/dist/ai-service/recording/index.js +0 -27
  276. package/dist/ai-service/recording/index.js.map +0 -1
  277. package/dist/ai-service/recording/recorders/llm-recorder.d.ts +0 -35
  278. package/dist/ai-service/recording/recorders/llm-recorder.d.ts.map +0 -1
  279. package/dist/ai-service/recording/recorders/llm-recorder.js +0 -221
  280. package/dist/ai-service/recording/recorders/llm-recorder.js.map +0 -1
  281. package/dist/ai-service/recording/recorders/socket-recorder.d.ts +0 -38
  282. package/dist/ai-service/recording/recorders/socket-recorder.d.ts.map +0 -1
  283. package/dist/ai-service/recording/recorders/socket-recorder.js +0 -44
  284. package/dist/ai-service/recording/recorders/socket-recorder.js.map +0 -1
  285. package/dist/ai-service/recording/recorders/tool-recorder.d.ts +0 -25
  286. package/dist/ai-service/recording/recorders/tool-recorder.d.ts.map +0 -1
  287. package/dist/ai-service/recording/recorders/tool-recorder.js +0 -58
  288. package/dist/ai-service/recording/recorders/tool-recorder.js.map +0 -1
  289. package/dist/ai-service/recording/recording-manager.d.ts +0 -104
  290. package/dist/ai-service/recording/recording-manager.d.ts.map +0 -1
  291. package/dist/ai-service/recording/recording-manager.js +0 -308
  292. package/dist/ai-service/recording/recording-manager.js.map +0 -1
  293. package/dist/ai-service/recording/storage/session-recording-storage.d.ts +0 -143
  294. package/dist/ai-service/recording/storage/session-recording-storage.d.ts.map +0 -1
  295. package/dist/ai-service/recording/storage/session-recording-storage.js +0 -374
  296. package/dist/ai-service/recording/storage/session-recording-storage.js.map +0 -1
  297. package/dist/ai-service/recording/types.d.ts +0 -148
  298. package/dist/ai-service/recording/types.d.ts.map +0 -1
  299. package/dist/ai-service/recording/types.js +0 -8
  300. package/dist/ai-service/recording/types.js.map +0 -1
  301. package/dist/ai-service/skills/system/_registry.generated.d.ts +0 -6
  302. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +0 -1
  303. package/dist/ai-service/skills/system/_registry.generated.js +0 -24
  304. package/dist/ai-service/skills/system/_registry.generated.js.map +0 -1
  305. package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts +0 -2
  306. package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts.map +0 -1
  307. package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js +0 -155
  308. package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js.map +0 -1
  309. package/dist/util/log-sanitizer.d.ts +0 -42
  310. package/dist/util/log-sanitizer.d.ts.map +0 -1
  311. package/dist/util/log-sanitizer.js +0 -177
  312. package/dist/util/log-sanitizer.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders-app.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/orders-app.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kIAo3BmH,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: "BUILDING APPLICATION FROM MOCK RESPONSE: I will add a title to the app.\n\n<boltArtifact id=\"hello-world-api-app\" title=\"Hello World API App With Title\">\n<boltAction type=\"file\" filePath=\"pages/Page1/scope.ts\">\nimport { createScope, SbApi } from \"@superblocksteam/library\";\n\nexport const Page1Scope = createScope<{\n HelloText: any;\n HelloTitle: any;\n}>(\n () => ({\n getHelloWorldApi: SbApi({}),\n }),\n {\n name: \"Page1\",\n }\n);\n\nexport const Page1 = Page1Scope.entities;\n</boltAction>\n<boltAction type=\"file\" filePath=\"pages/Page1/index.tsx\">\nimport {\n Page,\n Dim,\n Section,\n Column,\n Text,\n Button,\n EventFlow,\n computed,\n registerPage,\n} from \"@superblocksteam/library\";\nimport { Page1, Page1Scope } from \"./scope\";\n\nfunction PageContent() {\n const { HelloText, HelloTitle, getHelloWorldApi } = Page1;\n\n return (\n <Page \n name=\"Page1\" \n height={Dim.fill()} \n width={Dim.fill()}\n onLoad={EventFlow.runApis([getHelloWorldApi])}\n >\n <Section height={Dim.fill()}>\n <Column width={Dim.fill()} layout=\"vertical\" spacing={Dim.px(12)}>\n <Text bind={HelloTitle} text=\"This is my hello world app\" />\n <Button\n label=\"Fetch Hello World\"\n onClick={EventFlow.runApis([getHelloWorldApi])}\n />\n <Text\n width={Dim.fit()}\n height={Dim.fit()}\n text={computed(() => `${getHelloWorldApi.response || \"\"}`)}\n bind={HelloText}\n />\n </Column>\n </Section>\n </Page>\n );\n}\n\nexport default registerPage(PageContent, Page1Scope);\n</boltAction>\n\n</boltArtifact>\n\nThe app has now a `This is my hello world app` title;";
2
+ export default _default;
3
+ //# sourceMappingURL=reprompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reprompt.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/reprompt.ts"],"names":[],"mappings":";AAAA,wBAoEyD"}
@@ -0,0 +1,70 @@
1
+ export default `BUILDING APPLICATION FROM MOCK RESPONSE: I will add a title to the app.
2
+
3
+ <boltArtifact id="hello-world-api-app" title="Hello World API App With Title">
4
+ <boltAction type="file" filePath="pages/Page1/scope.ts">
5
+ import { createScope, SbApi } from "@superblocksteam/library";
6
+
7
+ export const Page1Scope = createScope<{
8
+ HelloText: any;
9
+ HelloTitle: any;
10
+ }>(
11
+ () => ({
12
+ getHelloWorldApi: SbApi({}),
13
+ }),
14
+ {
15
+ name: "Page1",
16
+ }
17
+ );
18
+
19
+ export const Page1 = Page1Scope.entities;
20
+ </boltAction>
21
+ <boltAction type="file" filePath="pages/Page1/index.tsx">
22
+ import {
23
+ Page,
24
+ Dim,
25
+ Section,
26
+ Column,
27
+ Text,
28
+ Button,
29
+ EventFlow,
30
+ computed,
31
+ registerPage,
32
+ } from "@superblocksteam/library";
33
+ import { Page1, Page1Scope } from "./scope";
34
+
35
+ function PageContent() {
36
+ const { HelloText, HelloTitle, getHelloWorldApi } = Page1;
37
+
38
+ return (
39
+ <Page
40
+ name="Page1"
41
+ height={Dim.fill()}
42
+ width={Dim.fill()}
43
+ onLoad={EventFlow.runApis([getHelloWorldApi])}
44
+ >
45
+ <Section height={Dim.fill()}>
46
+ <Column width={Dim.fill()} layout="vertical" spacing={Dim.px(12)}>
47
+ <Text bind={HelloTitle} text="This is my hello world app" />
48
+ <Button
49
+ label="Fetch Hello World"
50
+ onClick={EventFlow.runApis([getHelloWorldApi])}
51
+ />
52
+ <Text
53
+ width={Dim.fit()}
54
+ height={Dim.fit()}
55
+ text={computed(() => \`\${getHelloWorldApi.response || ""}\`)}
56
+ bind={HelloText}
57
+ />
58
+ </Column>
59
+ </Section>
60
+ </Page>
61
+ );
62
+ }
63
+
64
+ export default registerPage(PageContent, Page1Scope);
65
+ </boltAction>
66
+
67
+ </boltArtifact>
68
+
69
+ The app has now a \`This is my hello world app\` title;`;
70
+ //# sourceMappingURL=reprompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reprompt.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/reprompt.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAoEyC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: "BUILDING APPLICATION FROM MOCK RESPONSE: I'll create an app with an API that returns \"Hello World from API App Generation\" and connect it to a text component.\n\n<boltArtifact id=\"hello-world-api-app\" title=\"Hello World API App\">\n<boltAction type=\"file\" filePath=\"pages/Page1/scope.ts\">\nimport { createScope, SbApi } from \"@superblocksteam/library\";\n\nexport const Page1Scope = createScope<{\n HelloText: any;\n}>(\n () => ({\n getHelloWorldApi: SbApi({}),\n }),\n {\n name: \"Page1\",\n }\n);\n\nexport const Page1 = Page1Scope.entities;\n</boltAction>\n\n<boltAction type=\"file\" filePath=\"pages/Page1/index.tsx\">\nimport {\n Page,\n Dim,\n Section,\n Column,\n Text,\n Button,\n EventFlow,\n computed,\n registerPage,\n} from \"@superblocksteam/library\";\nimport { Page1, Page1Scope } from \"./scope\";\n\nfunction PageContent() {\n const { HelloText, getHelloWorldApi } = Page1;\n\n return (\n <Page\n name=\"Page1\"\n height={Dim.fill()}\n width={Dim.fill()}\n onLoad={EventFlow.runApis([getHelloWorldApi])}\n >\n <Section height={Dim.fill()}>\n <Column width={Dim.fill()} layout=\"vertical\" spacing={Dim.px(12)}>\n <Button\n label=\"Fetch Hello World\"\n onClick={EventFlow.runApis([getHelloWorldApi])}\n />\n <Text\n width={Dim.fit()}\n height={Dim.fit()}\n text={computed(() => `${getHelloWorldApi.response || \"\"}`)}\n bind={HelloText}\n />\n </Column>\n </Section>\n </Page>\n );\n}\n\nexport default registerPage(PageContent, Page1Scope);\n</boltAction>\n\n<boltAction type=\"file\" filePath=\"pages/Page1/apis/getHelloWorldApi.ts\">\nimport {\n Api,\n Athena,\n BigQuery,\n DynamoDb,\n JavaScript,\n Python,\n Databricks,\n MicrosoftSql,\n MySql,\n Snowflake,\n PostgreSQL,\n RestApi,\n Email,\n Salesforce,\n Conditional,\n TryCatch,\n Variables,\n Loop,\n Parallel,\n Throw,\n Return,\n} from \"@superblocksteam/library\";\n\nexport default new Api(\"getHelloWorldApi\", [\n new JavaScript(\"returnHelloWorld\", {\n fn: () => {\n return \"Hello World from API App Generation\";\n },\n }),\n]);\n</boltAction>\n</boltArtifact>\n\nThe app is now set up with:\n\n1. **API**: `getHelloWorldApi` that returns the string \"Hello World from API App Generation\"\n2. **Text**: Connected to display the API response value\n3. **Button**: To manually trigger the API call\n4. **Auto-load**: The API runs automatically when the page loads\n\nThe text will show the API response, and you can click the button to refresh the data from the API.";
2
+ export default _default;
3
+ //# sourceMappingURL=smoketest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoketest.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/smoketest.ts"],"names":[],"mappings":";AAAA,wBA2GqG"}
@@ -0,0 +1,109 @@
1
+ export default `BUILDING APPLICATION FROM MOCK RESPONSE: I'll create an app with an API that returns "Hello World from API App Generation" and connect it to a text component.
2
+
3
+ <boltArtifact id="hello-world-api-app" title="Hello World API App">
4
+ <boltAction type="file" filePath="pages/Page1/scope.ts">
5
+ import { createScope, SbApi } from "@superblocksteam/library";
6
+
7
+ export const Page1Scope = createScope<{
8
+ HelloText: any;
9
+ }>(
10
+ () => ({
11
+ getHelloWorldApi: SbApi({}),
12
+ }),
13
+ {
14
+ name: "Page1",
15
+ }
16
+ );
17
+
18
+ export const Page1 = Page1Scope.entities;
19
+ </boltAction>
20
+
21
+ <boltAction type="file" filePath="pages/Page1/index.tsx">
22
+ import {
23
+ Page,
24
+ Dim,
25
+ Section,
26
+ Column,
27
+ Text,
28
+ Button,
29
+ EventFlow,
30
+ computed,
31
+ registerPage,
32
+ } from "@superblocksteam/library";
33
+ import { Page1, Page1Scope } from "./scope";
34
+
35
+ function PageContent() {
36
+ const { HelloText, getHelloWorldApi } = Page1;
37
+
38
+ return (
39
+ <Page
40
+ name="Page1"
41
+ height={Dim.fill()}
42
+ width={Dim.fill()}
43
+ onLoad={EventFlow.runApis([getHelloWorldApi])}
44
+ >
45
+ <Section height={Dim.fill()}>
46
+ <Column width={Dim.fill()} layout="vertical" spacing={Dim.px(12)}>
47
+ <Button
48
+ label="Fetch Hello World"
49
+ onClick={EventFlow.runApis([getHelloWorldApi])}
50
+ />
51
+ <Text
52
+ width={Dim.fit()}
53
+ height={Dim.fit()}
54
+ text={computed(() => \`\${getHelloWorldApi.response || ""}\`)}
55
+ bind={HelloText}
56
+ />
57
+ </Column>
58
+ </Section>
59
+ </Page>
60
+ );
61
+ }
62
+
63
+ export default registerPage(PageContent, Page1Scope);
64
+ </boltAction>
65
+
66
+ <boltAction type="file" filePath="pages/Page1/apis/getHelloWorldApi.ts">
67
+ import {
68
+ Api,
69
+ Athena,
70
+ BigQuery,
71
+ DynamoDb,
72
+ JavaScript,
73
+ Python,
74
+ Databricks,
75
+ MicrosoftSql,
76
+ MySql,
77
+ Snowflake,
78
+ PostgreSQL,
79
+ RestApi,
80
+ Email,
81
+ Salesforce,
82
+ Conditional,
83
+ TryCatch,
84
+ Variables,
85
+ Loop,
86
+ Parallel,
87
+ Throw,
88
+ Return,
89
+ } from "@superblocksteam/library";
90
+
91
+ export default new Api("getHelloWorldApi", [
92
+ new JavaScript("returnHelloWorld", {
93
+ fn: () => {
94
+ return "Hello World from API App Generation";
95
+ },
96
+ }),
97
+ ]);
98
+ </boltAction>
99
+ </boltArtifact>
100
+
101
+ The app is now set up with:
102
+
103
+ 1. **API**: \`getHelloWorldApi\` that returns the string "Hello World from API App Generation"
104
+ 2. **Text**: Connected to display the API response value
105
+ 3. **Button**: To manually trigger the API call
106
+ 4. **Auto-load**: The API runs automatically when the page loads
107
+
108
+ The text will show the API response, and you can click the button to refresh the data from the API.`;
109
+ //# sourceMappingURL=smoketest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoketest.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/smoketest.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGA2GqF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const APP_GEN_MOCKS: Record<string, string>;
2
+ export declare const getPromptFromRequest: (requestInit?: RequestInit) => any;
3
+ export declare const getMockContent: (prompt: string) => string;
4
+ export declare function extractMockNameFromPrompt(prompt: string): string | null;
5
+ /**
6
+ * Splits a mock response into chunks where:
7
+ * - Simple text sections are kept as single chunks
8
+ * - Each boltAction (between <boltAction> tags) is kept as a separate, complete chunk
9
+ * - Preserves the exact content and structure of boltActions
10
+ */
11
+ export declare function splitGenMockIntoChunks(generationMock: string): string[];
12
+ //# sourceMappingURL=mock-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/test-utils/mock-utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,WAAW,QAc7D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,MAS/C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAqCvE"}
@@ -0,0 +1,70 @@
1
+ import ordersAppMockContent from "./app-generation-mocks/orders-app.js";
2
+ import repromptMockContent from "./app-generation-mocks/reprompt.js";
3
+ import smoketestMockContent from "./app-generation-mocks/smoketest.js";
4
+ export const APP_GEN_MOCKS = {
5
+ smoketest: smoketestMockContent,
6
+ orders_app: ordersAppMockContent,
7
+ reprompt: repromptMockContent,
8
+ };
9
+ export const getPromptFromRequest = (requestInit) => {
10
+ if (!requestInit) {
11
+ return "";
12
+ }
13
+ const body = JSON.parse(requestInit.body);
14
+ const userMessage = body.messages.filter((message) => message.role === "user")[0].content[0].text;
15
+ // filter out old prompts to only get the new one if its a reprompt
16
+ if (userMessage.includes("new prompt is:")) {
17
+ return userMessage.split("new prompt is:")[1].trim();
18
+ }
19
+ return userMessage;
20
+ };
21
+ export const getMockContent = (prompt) => {
22
+ const mockName = extractMockNameFromPrompt(prompt);
23
+ if (mockName && APP_GEN_MOCKS[mockName]) {
24
+ return APP_GEN_MOCKS[mockName];
25
+ }
26
+ return ("Could not find mock content for prompt. Please use a valid mock name with structure SB_MOCK_APP_<mock-name>. Currently available mocks are: " +
27
+ Object.keys(APP_GEN_MOCKS).join(", "));
28
+ };
29
+ export function extractMockNameFromPrompt(prompt) {
30
+ const mockMatch = prompt.match(/^SB_MOCK_APP_(\w+)$/);
31
+ return mockMatch?.[1] || null;
32
+ }
33
+ /**
34
+ * Splits a mock response into chunks where:
35
+ * - Simple text sections are kept as single chunks
36
+ * - Each boltAction (between <boltAction> tags) is kept as a separate, complete chunk
37
+ * - Preserves the exact content and structure of boltActions
38
+ */
39
+ export function splitGenMockIntoChunks(generationMock) {
40
+ const chunks = [];
41
+ let currentIndex = 0;
42
+ // Regular expression to match boltAction tags with their content
43
+ const boltActionRegex = /<boltAction[^>]*>[\s\S]*?<\/boltAction>/g;
44
+ let match;
45
+ while ((match = boltActionRegex.exec(generationMock)) !== null) {
46
+ const boltActionStart = match.index;
47
+ const boltActionEnd = boltActionStart + match[0].length;
48
+ // Add any text before this boltAction as a text chunk
49
+ if (boltActionStart > currentIndex) {
50
+ const textContent = generationMock
51
+ .slice(currentIndex, boltActionStart)
52
+ .trim();
53
+ if (textContent) {
54
+ chunks.push(textContent);
55
+ }
56
+ }
57
+ // Add the boltAction as a separate chunk
58
+ chunks.push(match[0]);
59
+ currentIndex = boltActionEnd;
60
+ }
61
+ // Add any remaining text after the last boltAction
62
+ if (currentIndex < generationMock.length) {
63
+ const textContent = generationMock.slice(currentIndex).trim();
64
+ if (textContent) {
65
+ chunks.push(textContent);
66
+ }
67
+ }
68
+ return chunks;
69
+ }
70
+ //# sourceMappingURL=mock-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-utils.js","sourceRoot":"","sources":["../../../src/ai-service/test-utils/mock-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function safeJsonStringify(obj: unknown, space?: string | number): string;
2
+ //# sourceMappingURL=safe-stringify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-stringify.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/safe-stringify.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GACtB,MAAM,CA0ER"}
@@ -0,0 +1,75 @@
1
+ const SENSITIVE_KEYS = [
2
+ "password",
3
+ "api_key",
4
+ "jwt",
5
+ "access_token",
6
+ "refresh_token",
7
+ ];
8
+ export function safeJsonStringify(obj, space) {
9
+ if (obj === null || obj === undefined) {
10
+ return "{}";
11
+ }
12
+ if (typeof obj === "string") {
13
+ return obj;
14
+ }
15
+ const seen = new WeakSet();
16
+ return JSON.stringify(obj, (key, value) => {
17
+ // Handle null and primitives first
18
+ if (value === null || value === undefined) {
19
+ return value;
20
+ }
21
+ if (SENSITIVE_KEYS.includes(key.toLowerCase())) {
22
+ return "[REDACTED]";
23
+ }
24
+ // Handle circular references
25
+ if (typeof value === "object") {
26
+ if (seen.has(value)) {
27
+ return "[Circular Reference]";
28
+ }
29
+ seen.add(value);
30
+ if (value instanceof Error) {
31
+ return {
32
+ message: value.message,
33
+ stack: value.stack,
34
+ name: value.name,
35
+ };
36
+ }
37
+ // Check for toJSON method that might be broken
38
+ if (typeof value.toJSON === "function") {
39
+ try {
40
+ const jsonValue = value.toJSON();
41
+ // Recursively check if the result is serializable
42
+ return jsonValue;
43
+ }
44
+ catch (_error) {
45
+ // If toJSON throws, treat as non-serializable
46
+ return `[Object with broken toJSON: ${value.constructor?.name || "unknown"}]`;
47
+ }
48
+ }
49
+ }
50
+ // Try to serialize the value
51
+ try {
52
+ // This will throw if the value is not serializable
53
+ JSON.stringify(value, null, space);
54
+ return value;
55
+ }
56
+ catch (_error) {
57
+ // Handle non-serializable types
58
+ if (typeof value === "function") {
59
+ return `[Function: ${value.name || "anonymous"}]`;
60
+ }
61
+ if (typeof value === "symbol") {
62
+ return `[Symbol: ${value.toString()}]`;
63
+ }
64
+ if (typeof value === "bigint") {
65
+ return `[BigInt: ${value.toString()}]`;
66
+ }
67
+ if (typeof value === "object") {
68
+ // For objects that can't be serialized
69
+ return "[Non-serializable]";
70
+ }
71
+ return "[Non-serializable]";
72
+ }
73
+ }, space);
74
+ }
75
+ //# sourceMappingURL=safe-stringify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-stringify.js","sourceRoot":"","sources":["../../../src/ai-service/util/safe-stringify.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,UAAU;IACV,SAAS;IACT,KAAK;IACL,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,GAAY,EACZ,KAAuB;IAEvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EACH,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,mCAAmC;QACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,sBAAsB,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEhB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,kDAAkD;oBAClD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,8CAA8C;oBAC9C,OAAO,+BAA+B,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,SAAS,GAAG,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,mDAAmD;YACnD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,gCAAgC;YAChC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,cAAc,KAAK,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,uCAAuC;gBACvC,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;IACH,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-sync-vite-plugin.d.ts","sourceRoot":"","sources":["../src/file-sync-vite-plugin.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,MAAM,EAA0B,MAAM,MAAM,CAAC;AAY3D,eAAO,MAAM,kBAAkB,EAAE,CAC/B,YAAY,EAAE,oBAAoB,EAClC,OAAO,CAAC,EAAE,qBAAqB,KAC5B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAk0C3C,CAAC"}
1
+ {"version":3,"file":"file-sync-vite-plugin.d.ts","sourceRoot":"","sources":["../src/file-sync-vite-plugin.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,MAAM,EAA0B,MAAM,MAAM,CAAC;AAY3D,eAAO,MAAM,kBAAkB,EAAE,CAC/B,YAAY,EAAE,oBAAoB,EAClC,OAAO,CAAC,EAAE,qBAAqB,KAC5B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAgyC3C,CAAC"}
@@ -64,12 +64,6 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
64
64
  await aiService.waitUntilGenerationComplete();
65
65
  });
66
66
  }
67
- // Wire up commit ID updates for recording sessions
68
- if (aiService && syncService) {
69
- syncService.on("commitIdChanged", (commitId) => {
70
- void aiService.getRecordingManager().setCurrentCommitId(commitId);
71
- });
72
- }
73
67
  const componentsManager = ComponentsManager.setInstance(pluginParams.tracer);
74
68
  const lastImportErrorFiles = new Set();
75
69
  let isFirstContentfulGeneration = true;
@@ -97,7 +91,6 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
97
91
  apply: "serve",
98
92
  enforce: "pre",
99
93
  async configureServer(server) {
100
- const tracer = pluginParams.tracer;
101
94
  config = server.config;
102
95
  // Set up Vite module invalidation callback for SyncService
103
96
  // This ensures that when Clark writes files, Vite's module cache is invalidated
@@ -111,9 +104,9 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
111
104
  }
112
105
  });
113
106
  }
114
- // Wrap logger.error to forward errors to AI and track them,
115
- // while downgrading Vite errors to info level for our own logger.
116
- // User notification is unaffected — Vite still sends vite:error via HMR.
107
+ // Wrap logger.error to send errors to AI when it's busy
108
+ // Otherwise, let errors flow naturally through Vite's error handling
109
+ const originalErrorLogger = config.logger.error;
117
110
  config.logger.error = (message, options) => {
118
111
  if (aiService?.isBusy()) {
119
112
  void aiService.handleBuildSystemError(new Error(message));
@@ -121,18 +114,13 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
121
114
  if (options?.error) {
122
115
  loggedViteErrors.push(options.error);
123
116
  }
124
- logger.info("[vite-plugin] Build system error", { message });
117
+ // Let the error be logged normally regardless
118
+ // Vite will handle sending it to the client via HMR
119
+ return originalErrorLogger.apply(config.logger, [message, options]);
125
120
  };
126
121
  createIdResolver(server.config, server.environments.client);
127
122
  await Promise.all([
128
- tracer.startActiveSpan("componentsManagerInitialize", async (compSpan) => {
129
- try {
130
- await componentsManager.initialize(process.cwd(), server.watcher);
131
- }
132
- finally {
133
- compSpan.end();
134
- }
135
- }),
123
+ componentsManager.initialize(process.cwd(), server.watcher),
136
124
  server.waitForRequestsIdle("sb-file-sync").then(async () => {
137
125
  if (hasStarted) {
138
126
  // We only want to initialize the file sync once, but vite seems to fire this multiple times
@@ -141,15 +129,8 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
141
129
  hasStarted = true;
142
130
  const root = server.config.root;
143
131
  try {
144
- await tracer.startActiveSpan("fileSyncManagerWatch", async (watchSpan) => {
145
- try {
146
- await fileSyncManager.watch(server.watcher, root).then(() => {
147
- isInitialized = true;
148
- });
149
- }
150
- finally {
151
- watchSpan.end();
152
- }
132
+ await fileSyncManager.watch(server.watcher, root).then(() => {
133
+ isInitialized = true;
153
134
  });
154
135
  }
155
136
  catch (e) {
@@ -307,22 +288,15 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
307
288
  })();
308
289
  });
309
290
  socketManager = createSocketManager(pluginParams.tracer);
310
- await tracer.startActiveSpan("socketServerStart", async (socketSpan) => {
311
- try {
312
- socketManager.startSocketServer({
313
- server: httpServer,
314
- fileSyncManager,
315
- lockService,
316
- syncService,
317
- aiService,
318
- checkAuthorization: pluginParams.checkAuthorization,
319
- tracer: pluginParams.tracer,
320
- path: "/sb-updates",
321
- });
322
- }
323
- finally {
324
- socketSpan.end();
325
- }
291
+ socketManager.startSocketServer({
292
+ server: httpServer,
293
+ fileSyncManager,
294
+ lockService,
295
+ syncService,
296
+ aiService,
297
+ checkAuthorization: pluginParams.checkAuthorization,
298
+ tracer: pluginParams.tracer,
299
+ path: "/sb-updates",
326
300
  });
327
301
  socketManager.removeAllListeners();
328
302
  const sendError = (errorEvent) => {
@@ -338,8 +312,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
338
312
  sendError(makeServerError(error));
339
313
  });
340
314
  process.on("unhandledRejection", (reason) => {
341
- const reasonStr = JSON.stringify(reason);
342
- logger.error(`Unhandled rejection: ${reasonStr}`);
315
+ logger.error(`Unhandled rejection: ${JSON.stringify(reason)}`);
343
316
  const error = reason instanceof Error
344
317
  ? reason
345
318
  : typeof reason === "object"
@@ -608,8 +581,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
608
581
  await socket.call.syncStatus({ status, generationNumber });
609
582
  }
610
583
  catch (err) {
611
- // Failed to send is expected when clients disconnect - log as WARNING
612
- logger.warn("Failed to send syncStatus", getErrorMeta(err));
584
+ logger.error("Failed to send syncStatus", getErrorMeta(err));
613
585
  }
614
586
  });
615
587
  })();
@@ -624,8 +596,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
624
596
  await socket.call.releasingLock();
625
597
  }
626
598
  catch (err) {
627
- // Failed to send is expected when clients disconnect - log as WARNING
628
- logger.warn("Failed to send releasingLock", getErrorMeta(err));
599
+ logger.error("Failed to send releasingLock", getErrorMeta(err));
629
600
  }
630
601
  });
631
602
  }
@@ -636,8 +607,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
636
607
  await socket.call.closedByServer(data);
637
608
  }
638
609
  catch (err) {
639
- // Failed to send is expected when clients disconnect - log as WARNING
640
- logger.warn("Failed to send closedByServer", getErrorMeta(err));
610
+ logger.error("Failed to send releasingLock", getErrorMeta(err));
641
611
  }
642
612
  });
643
613
  });