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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -8,7 +8,7 @@ import { getScopedToken } from "./util/scoped-token-utils.js";
8
8
  * Reads all files from .superblocks/context/{userId}/ and uploads them
9
9
  * Dynamically detects MIME types for any file type
10
10
  */
11
- export async function uploadContextToBucketeer({ applicationId, commitId, branchName, appRootDirPath, userId, superblocksBaseUrl, logger, jwt, }) {
11
+ export async function uploadContextToBucketeer({ applicationId, commitId, branchName, appRootDirPath, userId, useServerUpload = false, superblocksBaseUrl, logger, jwt, }) {
12
12
  // Get the context directory path for this userId
13
13
  const contextDir = path.join(appRootDirPath, ".superblocks", "context", userId);
14
14
  // Read all files in the context directory
@@ -32,21 +32,7 @@ export async function uploadContextToBucketeer({ applicationId, commitId, branch
32
32
  logger.info(`[uploadContextToBucketeer] No context files found for userId=${userId}, skipping upload`);
33
33
  return;
34
34
  }
35
- // Get scoped token using shared utility
36
- let scopedToken;
37
- try {
38
- scopedToken = await getScopedToken({
39
- applicationId,
40
- superblocksBaseUrl,
41
- jwt,
42
- });
43
- }
44
- catch (error) {
45
- logger.error("[uploadContextToBucketeer] Failed to get scoped token", getErrorMeta(error));
46
- throw error;
47
- }
48
- // Create FormData and append all context files
49
- const formData = new FormData();
35
+ const contextFileData = [];
50
36
  const uploadedFiles = [];
51
37
  for (const fileName of contextFiles) {
52
38
  const filePath = path.join(contextDir, fileName);
@@ -55,10 +41,7 @@ export async function uploadContextToBucketeer({ applicationId, commitId, branch
55
41
  const fileBuffer = await readFile(filePath);
56
42
  // Convert Buffer to Uint8Array for Blob
57
43
  // Content-Type is optional - server can infer from filename
58
- const uint8Array = new Uint8Array(fileBuffer);
59
- const blob = new Blob([uint8Array]);
60
- // Append each file with the same field name "context"
61
- formData.append("context", blob, fileName);
44
+ contextFileData.push({ data: fileBuffer, fileName });
62
45
  uploadedFiles.push(fileName);
63
46
  }
64
47
  catch (err) {
@@ -70,14 +53,54 @@ export async function uploadContextToBucketeer({ applicationId, commitId, branch
70
53
  logger.warn(`[uploadContextToBucketeer] No files were successfully read for upload`);
71
54
  return;
72
55
  }
73
- // Get Bucketeer URL from Superblocks base URL
74
- const bucketeerUrl = getBucketeerUrlFromSuperblocksUrl(superblocksBaseUrl);
75
- // Upload to Bucketeer using the branch-aware context endpoint
76
- const url = `${bucketeerUrl}/applications/${applicationId}/branches/${encodeURIComponent(branchName)}/commits/${encodeURIComponent(commitId)}/context`;
77
- try {
56
+ const buildFormData = () => {
57
+ const formData = new FormData();
58
+ for (const contextFile of contextFileData) {
59
+ formData.append("context", new Blob([new Uint8Array(contextFile.data)]), contextFile.fileName);
60
+ }
61
+ return formData;
62
+ };
63
+ const uploadViaServer = async () => {
64
+ const url = new URL(`${superblocksBaseUrl}/api/v1/files/upload`);
65
+ url.searchParams.set("scopeType", "app");
66
+ url.searchParams.set("purpose", "context");
67
+ url.searchParams.set("applicationId", applicationId);
68
+ url.searchParams.set("branchName", branchName);
69
+ url.searchParams.set("commitId", commitId);
70
+ const response = await fetch(url.toString(), {
71
+ method: "POST",
72
+ body: buildFormData(),
73
+ headers: {
74
+ Authorization: `Bearer ${jwt}`,
75
+ },
76
+ });
77
+ if (!response.ok) {
78
+ const errorText = await response
79
+ .text()
80
+ .catch(() => "Unable to read error response");
81
+ throw new Error(`Server context upload failed: status=${response.status}, error=${errorText}`);
82
+ }
83
+ };
84
+ const uploadViaBucketeer = async () => {
85
+ let scopedToken;
86
+ try {
87
+ scopedToken = await getScopedToken({
88
+ applicationId,
89
+ superblocksBaseUrl,
90
+ jwt,
91
+ });
92
+ }
93
+ catch (error) {
94
+ logger.error("[uploadContextToBucketeer] Failed to get scoped token", getErrorMeta(error));
95
+ throw error;
96
+ }
97
+ // Get Bucketeer URL from Superblocks base URL
98
+ const bucketeerUrl = getBucketeerUrlFromSuperblocksUrl(superblocksBaseUrl);
99
+ // Upload to Bucketeer using the branch-aware context endpoint
100
+ const url = `${bucketeerUrl}/applications/${applicationId}/branches/${encodeURIComponent(branchName)}/commits/${encodeURIComponent(commitId)}/context`;
78
101
  const response = await fetch(url, {
79
102
  method: "POST",
80
- body: formData,
103
+ body: buildFormData(),
81
104
  headers: {
82
105
  Authorization: `Bearer ${scopedToken}`,
83
106
  // Content-Type will be set automatically by fetch with boundary
@@ -90,6 +113,20 @@ export async function uploadContextToBucketeer({ applicationId, commitId, branch
90
113
  logger.error(`[uploadContextToBucketeer] Upload failed: status=${response.status}, statusText=${response.statusText}, error=${errorText} for applicationId=${applicationId}, commitId=${commitId}`);
91
114
  throw new Error(`Context upload failed: ${response.statusText}`);
92
115
  }
116
+ };
117
+ try {
118
+ if (useServerUpload) {
119
+ try {
120
+ await uploadViaServer();
121
+ }
122
+ catch (error) {
123
+ logger.warn("[uploadContextToBucketeer] Server context upload failed, falling back to Bucketeer", getErrorMeta(error));
124
+ await uploadViaBucketeer();
125
+ }
126
+ }
127
+ else {
128
+ await uploadViaBucketeer();
129
+ }
93
130
  logger.info(`[uploadContextToBucketeer] Successfully uploaded ${uploadedFiles.length} context file(s) (${uploadedFiles.join(", ")}) for applicationId=${applicationId}, commitId=${commitId}`);
94
131
  }
95
132
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"context-upload.js","sourceRoot":"","sources":["../../src/ai-service/context-upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-upload.js","sourceRoot":"","sources":["../../src/ai-service/context-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,aAAa,EACb,QAAQ,EACR,UAAU,EACV,cAAc,EACd,MAAM,EACN,eAAe,GAAG,KAAK,EACvB,kBAAkB,EAClB,MAAM,EACN,GAAG,GAWJ;IACC,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;IAEF,0CAA0C;IAC1C,IAAI,YAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,iEAAiE;QACjE,YAAY,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,8DAA8D;YAC9D,MAAM,CAAC,IAAI,CACT,oEAAoE,MAAM,mBAAmB,CAC9F,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,gEAAgE,MAAM,mBAAmB,CAC1F,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAA8C,EAAE,CAAC;IACtE,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,iDAAiD;YACjD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE5C,wCAAwC;YACxC,4DAA4D;YAC5D,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,0DAA0D,QAAQ,YAAY,EAC9E,YAAY,CAAC,GAAG,CAAC,CAClB,CAAC;YACF,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CACT,uEAAuE,CACxE,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,GAAa,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CACb,SAAS,EACT,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAC5C,WAAW,CAAC,QAAQ,CACrB,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,kBAAkB,sBAAsB,CAAC,CAAC;QACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACrD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC/C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,EAAE;YACrB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,GAAG,EAAE;aAC/B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ;iBAC7B,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,CAAC,MAAM,WAAW,SAAS,EAAE,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,cAAc,CAAC;gBACjC,aAAa;gBACb,kBAAkB;gBAClB,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,uDAAuD,EACvD,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;QAED,8CAA8C;QAC9C,MAAM,YAAY,GAAG,iCAAiC,CAAC,kBAAkB,CAAC,CAAC;QAE3E,8DAA8D;QAC9D,MAAM,GAAG,GAAG,GAAG,YAAY,iBAAiB,aAAa,aAAa,kBAAkB,CAAC,UAAU,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,EAAE;YACrB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,gEAAgE;aACjE;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ;iBAC7B,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CACV,oDAAoD,QAAQ,CAAC,MAAM,gBAAgB,QAAQ,CAAC,UAAU,WAAW,SAAS,sBAAsB,aAAa,cAAc,QAAQ,EAAE,CACtL,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,eAAe,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACT,oFAAoF,EACpF,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;gBACF,MAAM,kBAAkB,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,IAAI,CACT,oDAAoD,aAAa,CAAC,MAAM,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,aAAa,cAAc,QAAQ,EAAE,CAClL,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,qDAAqD,EACrD,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;QACF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -91,11 +91,22 @@ declare const FLAG_DEFINITIONS: {
91
91
  readonly key: "clark.sdk-api.enabled";
92
92
  readonly schema: z.ZodBoolean;
93
93
  };
94
- /** Only effective for 3.0 apps. Gated on isSdkApiTemplate() in dev.mts bootstrap. */
94
+ readonly aiFileUploadEnabled: {
95
+ readonly key: "ai.file-upload.enabled";
96
+ readonly schema: z.ZodBoolean;
97
+ };
98
+ readonly appKnowledgeEnabled: {
99
+ readonly key: "ai.app-knowledge.enabled";
100
+ readonly schema: z.ZodBoolean;
101
+ };
95
102
  readonly nativeGitEnabled: {
96
103
  readonly key: "superblocks.native-git.enabled";
97
104
  readonly schema: z.ZodBoolean;
98
105
  };
106
+ readonly enableDeletingLockfiles: {
107
+ readonly key: "ai.clark-delete-package-lock.enabled";
108
+ readonly schema: z.ZodBoolean;
109
+ };
99
110
  };
100
111
  /**
101
112
  Type-safe feature flags for AI service.
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/ai-service/features.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnE;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI;IACxD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS;CACrE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyDpB,qFAAqF;;;;;IAKrF,qFAAqF;;;;;CAKvC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEzE,eAAO,MAAM,qBAAqB;IAChC;;OAEG;mBACW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAQ,qBAAqB;CAkBnE,CAAC"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/ai-service/features.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnE;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI;IACxD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS;CACrE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyDpB,qFAAqF;;;;;;;;;;;;;;;;;;;;;CAqBvC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEzE,eAAO,MAAM,qBAAqB;IAChC;;OAEG;mBACW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAQ,qBAAqB;CAkBnE,CAAC"}
@@ -75,11 +75,22 @@ const FLAG_DEFINITIONS = {
75
75
  key: "clark.sdk-api.enabled",
76
76
  schema: z.boolean(),
77
77
  },
78
- /** Only effective for 3.0 apps. Gated on isSdkApiTemplate() in dev.mts bootstrap. */
78
+ aiFileUploadEnabled: {
79
+ key: "ai.file-upload.enabled",
80
+ schema: z.boolean(),
81
+ },
82
+ appKnowledgeEnabled: {
83
+ key: "ai.app-knowledge.enabled",
84
+ schema: z.boolean(),
85
+ },
79
86
  nativeGitEnabled: {
80
87
  key: "superblocks.native-git.enabled",
81
88
  schema: z.boolean(),
82
89
  },
90
+ enableDeletingLockfiles: {
91
+ key: "ai.clark-delete-package-lock.enabled",
92
+ schema: z.boolean(),
93
+ },
83
94
  };
84
95
  export const AiServiceFeatureFlags = {
85
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/ai-service/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/ai-service/features.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
- import { type AiAppFact } from "@superblocksteam/library-shared/types";
1
+ import { type AiAppFact, type AiMoveAppKnowledgeRequest, type AiMoveAppKnowledgeResult } from "@superblocksteam/library-shared/types";
2
2
  import { TracedEventEmitter } from "@superblocksteam/shared";
3
3
  import { ChatSessionStore } from "./chat/chat-session-store.js";
4
4
  import { AppContextStore } from "./context/app-context.js";
5
5
  import { RecordingManager } from "./recording/index.js";
6
6
  import type { FileSystemManager } from "../file-system-manager.js";
7
+ import type { GitOperationLock } from "../git-operation-lock.js";
8
+ import type { GitService } from "../git-service/index.js";
7
9
  import type { SourceTracker } from "../source-tracker.js";
10
+ import type { GitPullSyncService } from "./agent/tools2/tools/git.js";
8
11
  import type { JudgeEvaluationOptions, JudgeEvaluationResult } from "./judge/judge-service.js";
9
- import type { AiServiceConfig, AiServiceEvents, EditorClient, UserChange, ApiUpdate } from "./types.ts";
10
12
  import type { ContextId } from "./llm/context-v2/types.js";
13
+ import type { AiServiceConfig, AiServiceEvents, EditorClient, UserChange, ApiUpdate } from "./types.ts";
11
14
  import type { AiGenerateRequest, AiExplainCodeRequest, AiSummarizeApiUsageRequest, AiLabelAttachmentRequest, AiLabelAttachmentResponse, AiToolPermission, LLMProviderConfig, PromptContext, RuntimeErrorData, ConsoleLogEntry, ApiRunRecord } from "@superblocksteam/library-shared/types";
12
15
  import type { ViteDevServer } from "vite";
13
16
  export { AiServiceFeatureFlags } from "./features.js";
@@ -46,8 +49,17 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
46
49
  private readonly mcpServerManager;
47
50
  private readonly recordingManager;
48
51
  private readonly sessionId;
52
+ private _runtimeGitService?;
53
+ private _runtimeSyncService?;
54
+ private _runtimeGitOperationLock?;
55
+ private _onGitOperationComplete?;
49
56
  get appContext(): AppContextStore;
50
57
  get clarkState(): string;
58
+ /**
59
+ * Injects git and sync services for the git tool (called by the plugin when native git is available).
60
+ */
61
+ setRuntimeGitServices(gitService?: GitService, syncService?: GitPullSyncService, gitOperationLock?: GitOperationLock): void;
62
+ setOnGitOperationComplete(callback: () => void): void;
51
63
  get appRootDirPath(): string;
52
64
  get organizationId(): string;
53
65
  get superblocksBaseUrl(): string;
@@ -88,6 +100,7 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
88
100
  */
89
101
  getAvailableIntegrationIds(): Promise<Set<string>>;
90
102
  get isSessionManagementEnabled(): boolean;
103
+ get isAiFileUploadEnabled(): boolean;
91
104
  /**
92
105
  * Checks if there is a connected peer (user is connected via socket)
93
106
  */
@@ -206,6 +219,10 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
206
219
  * Toggles the isEnabled field of an app skill fact and returns the updated fact.
207
220
  */
208
221
  toggleAppFact(virtualPath: string, isEnabled: boolean): Promise<AiAppFact>;
222
+ /**
223
+ * Move an app skill fact to org/user/integration scope.
224
+ */
225
+ moveAppFact(payload: AiMoveAppKnowledgeRequest): Promise<AiMoveAppKnowledgeResult>;
209
226
  handleRestoreToCommit(sinceTimestamp: number, commitId: string, applicationId: string, branchName: string): Promise<void>;
210
227
  handleApiUpdate(update: ApiUpdate): Promise<void>;
211
228
  isBusy(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-service/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import { isTextAttachment, AiMode, } from "@superblocksteam/library-shared/types";
5
- import { addTracingToMethods, TracedEventEmitter, } from "@superblocksteam/shared";
6
- import { generateObject, hasToolCall } from "ai";
4
+ import { AiMode, } from "@superblocksteam/library-shared/types";
5
+ import { addTracingToMethods, FactAccessType, FactCreatedSource, FactEntityScope, TracedEventEmitter, } from "@superblocksteam/shared";
6
+ import { generateObject, hasToolCall, } from "ai";
7
7
  import { z } from "zod";
8
8
  import { getErrorMeta, getLogger, setDefaultLogger } from "../util/logger.js";
9
9
  import { getToolCallArguments, getToolErrorCode, getToolOutput, } from "./agent/tool-message-utils.js";
@@ -20,7 +20,9 @@ import { createDefaultVirtualFileSystem, createPathValidator, } from "./app-inte
20
20
  import { AppShell } from "./app-interface/shell.js";
21
21
  import { AppSkillsManager } from "./app-skills/manager.js";
22
22
  import { BoltArtifactProcessor } from "./artifacts/bolt.js";
23
+ import { isUploadedAttachment, toUploadedAttachmentContentPart, } from "./attachments/uploaded-content-part.js";
23
24
  import { ChatSessionStore } from "./chat/chat-session-store.js";
25
+ import { normalizeTextAttachmentForModel } from "./chat/utils.js";
24
26
  import { AppContextStore } from "./context/app-context.js";
25
27
  import { restoreContextFromCheckpoint } from "./context-download.js";
26
28
  import { IntegrationStore } from "./integrations/store.js";
@@ -56,6 +58,7 @@ import { transitionFrom } from "./state-machine/helpers/transition.js";
56
58
  import { TemplateRenderer } from "./template-renderer.js";
57
59
  import { createJsonStreamParser } from "./util/json-stream-parser.js";
58
60
  import { processLLMConfig } from "./util/llm-config-utils.js";
61
+ import { parseJwt } from "./util/parse-jwt.js";
59
62
  import { getToolCallSignature } from "./util/tool-signature.js";
60
63
  export { AiServiceFeatureFlags } from "./features.js";
61
64
  export { SnapshotManager } from "./recording/index.js";
@@ -144,12 +147,27 @@ export class AiService extends TracedEventEmitter {
144
147
  mcpServerManager;
145
148
  recordingManager;
146
149
  sessionId;
150
+ _runtimeGitService;
151
+ _runtimeSyncService;
152
+ _runtimeGitOperationLock;
153
+ _onGitOperationComplete;
147
154
  get appContext() {
148
155
  return this._appContext;
149
156
  }
150
157
  get clarkState() {
151
158
  return this.clark.state;
152
159
  }
160
+ /**
161
+ * Injects git and sync services for the git tool (called by the plugin when native git is available).
162
+ */
163
+ setRuntimeGitServices(gitService, syncService, gitOperationLock) {
164
+ this._runtimeGitService = gitService;
165
+ this._runtimeSyncService = syncService;
166
+ this._runtimeGitOperationLock = gitOperationLock;
167
+ }
168
+ setOnGitOperationComplete(callback) {
169
+ this._onGitOperationComplete = callback;
170
+ }
153
171
  get appRootDirPath() {
154
172
  return this.config.appRootDirPath;
155
173
  }
@@ -223,6 +241,9 @@ export class AiService extends TracedEventEmitter {
223
241
  get isSessionManagementEnabled() {
224
242
  return this.config.features.sessionManagementEnabled === true;
225
243
  }
244
+ get isAiFileUploadEnabled() {
245
+ return this.config.features.aiFileUploadEnabled === true;
246
+ }
226
247
  /**
227
248
  * Checks if there is a connected peer (user is connected via socket)
228
249
  */
@@ -271,8 +292,10 @@ export class AiService extends TracedEventEmitter {
271
292
  useSystemSkills: config.features.useSystemSkills,
272
293
  knowledgeManager: this.knowledgeManager,
273
294
  sdkApiEnabled: config.features.sdkApiEnabled,
295
+ appRootDirPath: config.appRootDirPath,
274
296
  }),
275
297
  pathValidator: createPathValidator(config.features.sdkApiEnabled ?? false),
298
+ enableDeletingLockfiles: config.features.enableDeletingLockfiles ?? false,
276
299
  messageSender: async (message) => {
277
300
  // Send checklist messages through the peer connection
278
301
  if (this.clark.context.peer &&
@@ -454,7 +477,7 @@ export class AiService extends TracedEventEmitter {
454
477
  // Note: retry_count for LLM retries is added by orchestrator via providerOptions
455
478
  mode: clark.context.currentMode === AiMode.PLAN ? "plan" : "build",
456
479
  plan_size: clark.context.planSize,
457
- })),
480
+ }), this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId),
458
481
  chatSessionStore: this.chatSessionStore,
459
482
  clarkProfiler: this.clarkProfiler,
460
483
  contextManagerV2: this.contextManagerV2,
@@ -464,6 +487,10 @@ export class AiService extends TracedEventEmitter {
464
487
  mcpServerManager: this.mcpServerManager,
465
488
  viteServer: this.viteServer,
466
489
  recordingManager: this.recordingManager,
490
+ gitService: this._runtimeGitService,
491
+ syncService: this._runtimeSyncService,
492
+ gitOperationLock: this._runtimeGitOperationLock,
493
+ onGitOperationComplete: this._onGitOperationComplete,
467
494
  };
468
495
  const clarkStateHandlers = Object.fromEntries(Object.entries(clarkStateHandlerFactories).map(([state, handlerFactory]) => [state, handlerFactory(clark, params)]));
469
496
  const { from, to, event } = transition;
@@ -551,7 +578,9 @@ export class AiService extends TracedEventEmitter {
551
578
  const reason = quota.reason ?? "token_limit_exceeded";
552
579
  const message = reason === "trial_expired"
553
580
  ? "Your AI trial period has ended."
554
- : "Your organization has reached its AI usage limit.";
581
+ : reason === "no_seat_assigned"
582
+ ? "You don't have an AI Builder license assigned. Ask your admin to assign a license."
583
+ : "Your organization has reached its AI usage limit.";
555
584
  throw new Error(`${message} [reason:${reason}]`);
556
585
  }
557
586
  }
@@ -680,7 +709,7 @@ export class AiService extends TracedEventEmitter {
680
709
  prompt_id: promptId,
681
710
  application_id: this.config.applicationId,
682
711
  session_id: this.sessionId,
683
- }));
712
+ }), this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId);
684
713
  const model = llmProvider.modelForTask("explain");
685
714
  getLogger().info(`[ai-service] Creating LLM provider with settings:`, JSON.stringify({
686
715
  providerType: llmConfig?.provider,
@@ -704,7 +733,8 @@ export class AiService extends TracedEventEmitter {
704
733
  providerOptions,
705
734
  headers,
706
735
  providerConfig: {
707
- provider: llmConfig?.provider ?? "vertex",
736
+ provider: llmConfig?.provider ??
737
+ "vertex",
708
738
  model: llmConfig?.coreModel ?? "claude-sonnet-4-5",
709
739
  },
710
740
  enableFallback: llmConfig?.unifiedProviderEnabled ?? false,
@@ -844,7 +874,7 @@ export class AiService extends TracedEventEmitter {
844
874
  prompt_id: promptId,
845
875
  application_id: this.config.applicationId,
846
876
  session_id: this.sessionId,
847
- }));
877
+ }), this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId);
848
878
  const model = llmProvider.modelForTask("explain");
849
879
  await traceLLM("handleAiSummarizeApiUsage", model.modelId, model.provider, async () => {
850
880
  try {
@@ -854,7 +884,8 @@ export class AiService extends TracedEventEmitter {
854
884
  providerOptions,
855
885
  headers,
856
886
  providerConfig: {
857
- provider: llmConfig?.provider ?? "vertex",
887
+ provider: llmConfig?.provider ??
888
+ "vertex",
858
889
  model: llmConfig?.coreModel ?? "claude-sonnet-4-5",
859
890
  },
860
891
  enableFallback: llmConfig?.unifiedProviderEnabled ?? false,
@@ -916,7 +947,7 @@ export class AiService extends TracedEventEmitter {
916
947
  prompt_id: promptId,
917
948
  application_id: this.config.applicationId,
918
949
  session_id: this.sessionId,
919
- }));
950
+ }), this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId);
920
951
  const model = llmProvider.modelForTask("fast");
921
952
  const LabelAttachmentSchema = z.object({
922
953
  label: z
@@ -986,9 +1017,19 @@ export class AiService extends TracedEventEmitter {
986
1017
  filename: attachment.fileName,
987
1018
  };
988
1019
  }
989
- else if (isTextAttachment(attachment)) {
1020
+ if (isUploadedAttachment(attachment)) {
1021
+ return toUploadedAttachmentContentPart(attachment);
1022
+ }
1023
+ const normalizedTextAttachment = normalizeTextAttachmentForModel(attachment);
1024
+ if (normalizedTextAttachment) {
990
1025
  // Wrap text content in XML tags for structured presentation
991
- const sanitizedFileName = attachment.fileName
1026
+ const sanitizedFileName = normalizedTextAttachment.fileName
1027
+ .replace(/&/g, "&amp;")
1028
+ .replace(/"/g, "&quot;")
1029
+ .replace(/'/g, "&apos;")
1030
+ .replace(/</g, "&lt;")
1031
+ .replace(/>/g, "&gt;");
1032
+ const sanitizedMimeType = normalizedTextAttachment.mimeType
992
1033
  .replace(/&/g, "&amp;")
993
1034
  .replace(/"/g, "&quot;")
994
1035
  .replace(/'/g, "&apos;")
@@ -996,12 +1037,10 @@ export class AiService extends TracedEventEmitter {
996
1037
  .replace(/>/g, "&gt;");
997
1038
  return {
998
1039
  type: "text",
999
- text: `<${attachment.type}_file name="${sanitizedFileName}">\n${attachment.content}\n</${attachment.type}_file>`,
1040
+ text: `<${normalizedTextAttachment.tagName}_file name="${sanitizedFileName}" mimeType="${sanitizedMimeType}">\n${normalizedTextAttachment.content}\n</${normalizedTextAttachment.tagName}_file>`,
1000
1041
  };
1001
1042
  }
1002
- else {
1003
- throw new Error(`Unsupported attachment type: ${attachment.type}`);
1004
- }
1043
+ throw new Error(`Unsupported attachment type: ${attachment.type}`);
1005
1044
  }
1006
1045
  submitAcceptanceEvaluation(wasAccepted) {
1007
1046
  if (!this.clark.rootSpan) {
@@ -1365,7 +1404,7 @@ export class AiService extends TracedEventEmitter {
1365
1404
  logger.info(`[ai-service] Tool ${toolName} permission denied, error injected into context`);
1366
1405
  }
1367
1406
  const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
1368
- const llmProvider = createLLMProvider(llmProviderSettings, () => this.clark.context.jwt || "", llmConfig);
1407
+ const llmProvider = createLLMProvider(llmProviderSettings, () => this.clark.context.jwt || "", llmConfig, undefined, this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId);
1369
1408
  const summarizationModel = llmProvider.modelForTask("summarizeMessages");
1370
1409
  const context = await this.contextManagerV2.getOrCreateContext(contextId, summarizationModel, llmConfig?.contextOptionsV2);
1371
1410
  const placeholderUsage = {
@@ -1726,7 +1765,8 @@ export class AiService extends TracedEventEmitter {
1726
1765
  this.config.logger.info(`[ai-service] Judge storage configured: ${path.join(storageDir, storageFilename)}`);
1727
1766
  // Create LLM provider for judge with JWT getter
1728
1767
  // Use getLLMProviderSettings to ensure proper configuration (including upstreamProvider)
1729
- const judgeLlmProvider = createLLMProvider(this.getLLMProviderSettings(request.llmConfig), () => this.getJwt(), request.llmConfig, undefined);
1768
+ const judgeLlmProvider = createLLMProvider(this.getLLMProviderSettings(request.llmConfig), () => this.getJwt(), request.llmConfig, undefined, // No prompt_id needed for judge evaluation
1769
+ this.config.rpcClient, this.config.superblocksBaseUrl, this.config.applicationId);
1730
1770
  const judgeService = new JudgeService({
1731
1771
  llmClient: this.llmClient,
1732
1772
  llmProvider: judgeLlmProvider,
@@ -1810,6 +1850,73 @@ export class AiService extends TracedEventEmitter {
1810
1850
  const manager = new AppSkillsManager(this.config.appRootDirPath);
1811
1851
  return manager.toggleFact(virtualPath, isEnabled);
1812
1852
  }
1853
+ /**
1854
+ * Move an app skill fact to org/user/integration scope.
1855
+ */
1856
+ async moveAppFact(payload) {
1857
+ const manager = new AppSkillsManager(this.config.appRootDirPath);
1858
+ const facts = await manager.loadFacts();
1859
+ const sourceFact = facts.find((fact) => fact.path === payload.path);
1860
+ if (!sourceFact) {
1861
+ throw new Error(`App knowledge entry not found for path: ${payload.path}`);
1862
+ }
1863
+ const userId = parseJwt(this.clark.context.jwt ?? "")?.userId;
1864
+ const entityId = payload.entityId ??
1865
+ (payload.targetScope === "org"
1866
+ ? this.config.organizationId
1867
+ : payload.targetScope === "user"
1868
+ ? userId
1869
+ : undefined);
1870
+ if (!entityId) {
1871
+ throw new Error(`Missing entity id for move scope '${payload.targetScope}'`);
1872
+ }
1873
+ const entityScope = payload.targetScope === "org"
1874
+ ? FactEntityScope.ORG
1875
+ : payload.targetScope === "user"
1876
+ ? FactEntityScope.USER
1877
+ : FactEntityScope.INTEGRATION;
1878
+ let createdFactId;
1879
+ try {
1880
+ const createdFact = await this.config.rpcClient.call(async (client) => {
1881
+ const rpcClient = client;
1882
+ return await rpcClient.call.v1.fact.create({
1883
+ name: sourceFact.name,
1884
+ description: sourceFact.description,
1885
+ content: sourceFact.content,
1886
+ entityScope,
1887
+ entityId,
1888
+ accessType: FactAccessType.ALWAYS_INJECT,
1889
+ createdSource: FactCreatedSource.AGENT,
1890
+ });
1891
+ });
1892
+ createdFactId =
1893
+ typeof createdFact?.id === "string"
1894
+ ? createdFact.id
1895
+ : typeof createdFact?.data?.id === "string"
1896
+ ? createdFact.data.id
1897
+ : undefined;
1898
+ }
1899
+ catch (error) {
1900
+ this.getLogger().error("[ai-service] Failed to create moved knowledge fact", getErrorMeta(error));
1901
+ throw error;
1902
+ }
1903
+ try {
1904
+ await manager.deleteFact(payload.path);
1905
+ }
1906
+ catch (error) {
1907
+ this.getLogger().error("[ai-service] Failed to remove source app knowledge after move", getErrorMeta(error));
1908
+ throw new Error("Created the promoted knowledge entry, but failed to remove the original app knowledge entry.");
1909
+ }
1910
+ return {
1911
+ sourcePath: payload.path,
1912
+ createdFact: {
1913
+ id: createdFactId,
1914
+ name: sourceFact.name,
1915
+ scope: payload.targetScope,
1916
+ entityId,
1917
+ },
1918
+ };
1919
+ }
1813
1920
  async handleRestoreToCommit(sinceTimestamp, commitId, applicationId, branchName) {
1814
1921
  // TODO: change this to truncate after commit once commit info is supported here, so we can truncate messages accurately.
1815
1922
  // 1. Truncate chat messages on server (always do this first)
@@ -1970,9 +2077,9 @@ export class AiService extends TracedEventEmitter {
1970
2077
  }
1971
2078
  return baseFetch;
1972
2079
  };
1973
- // When unified provider is enabled, use the /unified endpoint which handles fallback
1974
- // Otherwise, use the specific provider endpoint directly
1975
- const upstreamProvider = llconfig?.unifiedProviderEnabled
2080
+ // When unified provider is enabled or snowflake is selected, use the /unified
2081
+ // endpoint which handles provider routing and fallback server-side.
2082
+ const upstreamProvider = llconfig?.unifiedProviderEnabled || llconfig?.provider === "snowflake"
1976
2083
  ? "unified"
1977
2084
  : llconfig?.provider === "vertex"
1978
2085
  ? "vertex"
@@ -1987,6 +2094,7 @@ export class AiService extends TracedEventEmitter {
1987
2094
  fetch: providerFetchOverride("clark"),
1988
2095
  upstreamProvider,
1989
2096
  },
2097
+ aiFileUploadEnabled: this.isAiFileUploadEnabled,
1990
2098
  };
1991
2099
  }
1992
2100
  }