@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
@@ -1,44 +1,154 @@
1
1
  import crypto from "node:crypto";
2
2
  import { AiMode, } from "@superblocksteam/library-shared/types";
3
- import { generateShortId } from "../../ids.js";
3
+ import { FactAccessType, FactCreatedSource, FactEntityScope, } from "@superblocksteam/shared";
4
4
  import { getErrorMeta } from "../../util/logger.js";
5
- import { AGENT_NEEDS_USER_INPUT, AGENT_PLANNED, } from "../state-machine/clark-fsm.js";
5
+ import { AGENT_NEEDS_USER_INPUT, } from "../state-machine/clark-fsm.js";
6
6
  import { sendUserMessageChannel } from "../state-machine/helpers/peer.js";
7
+ import { parseJwt } from "../util/parse-jwt.js";
8
+ import { buildKnowledgeFeedbackMessage } from "./build-knowledge-feedback-message.js";
7
9
  import { AppSkillsManager } from "./manager.js";
10
+ function resolveFactScope(scope) {
11
+ if (scope === "org") {
12
+ return FactEntityScope.ORG;
13
+ }
14
+ if (scope === "user") {
15
+ return FactEntityScope.USER;
16
+ }
17
+ return FactEntityScope.INTEGRATION;
18
+ }
19
+ function resolveKnowledgeScopeSelection(selection) {
20
+ if (selection) {
21
+ return { scope: selection.entityScope, entityId: selection.entityId };
22
+ }
23
+ return { scope: "app" };
24
+ }
25
+ function extractFactId(result) {
26
+ if (!result || typeof result !== "object") {
27
+ return undefined;
28
+ }
29
+ const maybeFact = result;
30
+ if (typeof maybeFact.id === "string") {
31
+ return maybeFact.id;
32
+ }
33
+ if (typeof maybeFact.data?.id === "string") {
34
+ return maybeFact.data.id;
35
+ }
36
+ return undefined;
37
+ }
8
38
  /**
9
- * Resolves which mode to restore after a fact-capture detour.
10
- * Falls back to BUILD if no prior mode was recorded.
11
- */
12
- export const getModeAfterFactCapture = (ctx) => ctx.modeBeforeKnowledgeCapture ??
13
- (ctx.currentMode === AiMode.KNOWLEDGE ? AiMode.BUILD : ctx.currentMode) ??
14
- AiMode.BUILD;
15
- /**
16
- * Persist approved knowledge entries to disk and send an `app_facts_saved` message.
39
+ * Persist approved knowledge entries to disk and send an `app_knowledge_saved` message.
17
40
  * On failure, sends a user-visible error message instead.
18
41
  */
19
- export async function saveKnowledgeAndNotify(clark, chatSessionStore, appRootDirPath, knowledgeEntries, logLabel) {
42
+ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, appRootDirPath, responseToMessageId, knowledgeEntries, selectedKnowledgeIndices, selectedScopesByIndex, logLabel) {
20
43
  const sendUserMessage = sendUserMessageChannel(clark, chatSessionStore);
21
- try {
22
- const manager = new AppSkillsManager(appRootDirPath);
23
- let savedCount = 0;
24
- for (const knowledgeEntry of knowledgeEntries) {
44
+ const manager = new AppSkillsManager(appRootDirPath);
45
+ let savedCount = 0;
46
+ let deniedCount = 0;
47
+ const savedFacts = [];
48
+ const saveOutcomes = [];
49
+ const userId = parseJwt(clark.context.jwt ?? "")?.userId;
50
+ for (const [position, knowledgeEntry] of knowledgeEntries.entries()) {
51
+ try {
25
52
  const action = knowledgeEntry.action ?? "create";
53
+ const candidateIndex = selectedKnowledgeIndices[position] ?? position;
54
+ const selection = resolveKnowledgeScopeSelection(selectedScopesByIndex.get(candidateIndex));
55
+ if (selection.scope !== "app") {
56
+ if (action === "delete") {
57
+ clark.logger.warn("[app-skills] Delete action is unsupported for non-app scope; skipping", {
58
+ action,
59
+ scope: selection.scope,
60
+ knowledgeName: knowledgeEntry.name,
61
+ });
62
+ continue;
63
+ }
64
+ const entityId = selection.entityId ??
65
+ (selection.scope === "org"
66
+ ? params.organizationId
67
+ : selection.scope === "user"
68
+ ? userId
69
+ : undefined);
70
+ if (!entityId) {
71
+ throw new Error(`Missing entity id for knowledge copy scope '${selection.scope}'`);
72
+ }
73
+ const payload = {
74
+ name: knowledgeEntry.name,
75
+ description: knowledgeEntry.description,
76
+ content: knowledgeEntry.content,
77
+ entityScope: resolveFactScope(selection.scope),
78
+ entityId,
79
+ accessType: FactAccessType.ALWAYS_INJECT,
80
+ createdSource: FactCreatedSource.AGENT,
81
+ };
82
+ const createdFact = await params.rpcClient.call(async (client) => {
83
+ const rpcClient = client;
84
+ return await rpcClient.call.v1.fact.create(payload);
85
+ });
86
+ const createdFactId = extractFactId(createdFact);
87
+ savedFacts.push({
88
+ candidateIndex,
89
+ scope: selection.scope,
90
+ factName: knowledgeEntry.name,
91
+ factId: createdFactId,
92
+ });
93
+ saveOutcomes.push({
94
+ candidateIndex,
95
+ scope: selection.scope,
96
+ factName: knowledgeEntry.name,
97
+ status: "created_remote",
98
+ factId: createdFactId,
99
+ });
100
+ savedCount += 1;
101
+ continue;
102
+ }
26
103
  if (action === "delete") {
27
104
  const targetName = (knowledgeEntry.targetFactName ?? knowledgeEntry.name).trim();
28
105
  const existing = await manager.findFactByName(targetName);
29
106
  if (!existing) {
30
107
  clark.logger.warn("[app-skills] Skip delete: target app knowledge entry not found", { targetFactName: targetName });
108
+ saveOutcomes.push({
109
+ candidateIndex,
110
+ scope: "app",
111
+ factName: knowledgeEntry.name,
112
+ status: "skipped_not_found",
113
+ });
31
114
  continue;
32
115
  }
33
116
  await manager.deleteFact(existing.path);
117
+ savedFacts.push({
118
+ candidateIndex,
119
+ scope: "app",
120
+ factName: knowledgeEntry.name,
121
+ });
34
122
  savedCount += 1;
123
+ saveOutcomes.push({
124
+ candidateIndex,
125
+ scope: "app",
126
+ factName: knowledgeEntry.name,
127
+ status: "deleted",
128
+ });
35
129
  continue;
36
130
  }
37
131
  if (action === "update") {
38
132
  const targetName = (knowledgeEntry.targetFactName ?? knowledgeEntry.name).trim();
39
133
  const existing = await manager.findFactByName(targetName);
40
134
  if (!existing) {
41
- clark.logger.warn("[app-skills] Skip update: target app knowledge entry not found", { targetFactName: targetName });
135
+ await manager.saveFact({
136
+ name: knowledgeEntry.name,
137
+ description: knowledgeEntry.description,
138
+ content: knowledgeEntry.content,
139
+ });
140
+ savedFacts.push({
141
+ candidateIndex,
142
+ scope: "app",
143
+ factName: knowledgeEntry.name,
144
+ });
145
+ savedCount += 1;
146
+ saveOutcomes.push({
147
+ candidateIndex,
148
+ scope: "app",
149
+ factName: knowledgeEntry.name,
150
+ status: "created",
151
+ });
42
152
  continue;
43
153
  }
44
154
  await manager.updateFact(existing.path, {
@@ -46,7 +156,18 @@ export async function saveKnowledgeAndNotify(clark, chatSessionStore, appRootDir
46
156
  description: knowledgeEntry.description,
47
157
  content: knowledgeEntry.content,
48
158
  });
159
+ savedFacts.push({
160
+ candidateIndex,
161
+ scope: "app",
162
+ factName: knowledgeEntry.name,
163
+ });
49
164
  savedCount += 1;
165
+ saveOutcomes.push({
166
+ candidateIndex,
167
+ scope: "app",
168
+ factName: knowledgeEntry.name,
169
+ status: "updated",
170
+ });
50
171
  continue;
51
172
  }
52
173
  await manager.saveFact({
@@ -54,64 +175,117 @@ export async function saveKnowledgeAndNotify(clark, chatSessionStore, appRootDir
54
175
  description: knowledgeEntry.description,
55
176
  content: knowledgeEntry.content,
56
177
  });
178
+ savedFacts.push({
179
+ candidateIndex,
180
+ scope: "app",
181
+ factName: knowledgeEntry.name,
182
+ });
57
183
  savedCount += 1;
184
+ saveOutcomes.push({
185
+ candidateIndex,
186
+ scope: "app",
187
+ factName: knowledgeEntry.name,
188
+ status: "created",
189
+ });
58
190
  }
59
- if (savedCount > 0) {
60
- await sendUserMessage({
61
- type: "app_facts_saved",
62
- text: `Saved ${savedCount} app knowledge entr${savedCount === 1 ? "y" : "ies"}.`,
63
- factsCount: savedCount,
191
+ catch (err) {
192
+ const message = err instanceof Error ? err.message : String(err);
193
+ deniedCount += 1;
194
+ const candidateIndex = selectedKnowledgeIndices[position] ?? position;
195
+ const selection = resolveKnowledgeScopeSelection(selectedScopesByIndex.get(candidateIndex));
196
+ saveOutcomes.push({
197
+ candidateIndex,
198
+ scope: selection.scope,
199
+ factName: knowledgeEntry.name,
200
+ status: "failed",
201
+ reason: message,
64
202
  });
203
+ clark.logger.error(`[app-skills] Failed to save knowledge (${logLabel})`, getErrorMeta(err));
204
+ const permissionDenied = /forbidden|permission|not authorized|unauthorized/i.test(message);
205
+ try {
206
+ await sendUserMessage({
207
+ type: "text",
208
+ text: permissionDenied
209
+ ? "I could not save that at the requested scope due to permissions. Try saving it as personal app knowledge."
210
+ : "I wasn't able to save that knowledge entry due to an error. Please try again.",
211
+ });
212
+ }
213
+ catch {
214
+ // socket may have dropped; nothing further to do
215
+ }
65
216
  }
66
- clark.logger.info(`[app-skills] App facts saved (${logLabel})`, {
67
- count: savedCount,
68
- });
69
217
  }
70
- catch (err) {
71
- clark.logger.error(`[app-skills] Failed to save app knowledge (${logLabel})`, getErrorMeta(err));
72
- try {
73
- await sendUserMessage({
74
- type: "text",
75
- text: "I wasn't able to save that knowledge entry due to an error. Please try again.",
76
- });
218
+ if (savedCount > 0) {
219
+ const failedCount = saveOutcomes.filter((outcome) => outcome.status === "failed").length;
220
+ const skippedCount = saveOutcomes.filter((outcome) => outcome.status.startsWith("skipped_")).length;
221
+ const summaryParts = [`saved ${savedCount}`];
222
+ if (skippedCount > 0) {
223
+ summaryParts.push(`skipped ${skippedCount}`);
77
224
  }
78
- catch {
79
- // socket may have dropped; nothing further to do
225
+ if (failedCount > 0) {
226
+ summaryParts.push(`failed ${failedCount}`);
80
227
  }
228
+ await sendUserMessage({
229
+ type: "app_knowledge_saved",
230
+ text: `Knowledge update complete (${summaryParts.join(", ")} entr${knowledgeEntries.length === 1 ? "y" : "ies"}).`,
231
+ knowledgeCount: savedCount,
232
+ responseToMessageId,
233
+ savedFacts,
234
+ saveOutcomes,
235
+ });
81
236
  }
237
+ clark.updateContext((ctx) => ({
238
+ ...ctx,
239
+ recentKnowledgeSaveOutcomes: saveOutcomes.slice(-25),
240
+ }));
241
+ clark.logger.info(`[app-skills] Knowledge persistence complete (${logLabel})`, {
242
+ count: savedCount,
243
+ deniedCount,
244
+ });
82
245
  }
83
246
  /**
84
247
  * Handle a user's approval or rejection of pending app knowledge from the
85
248
  * agent-planning handler. Resolves the pending entries, saves if approved,
86
249
  * and transitions to the appropriate next state.
87
250
  *
88
- * @returns `true` if this was a fact-approval flow (caller should `return`),
251
+ * @returns `true` if this was a knowledge-approval flow (caller should `return`),
89
252
  * `false` if the response was unrelated to pending app knowledge.
90
253
  */
91
254
  export async function handleAppKnowledgeApprovalResponse(clark, params, request) {
92
255
  const responseMetadata = request.responseMetadata;
93
- if (responseMetadata?.type !== "multi_choice_response" &&
256
+ if (responseMetadata?.type !== "remember_knowledge_draft_response" &&
257
+ responseMetadata?.type !== "multi_choice_response" &&
94
258
  responseMetadata?.type !== "confirm_response") {
95
259
  return false;
96
260
  }
97
261
  const responseToMessageId = responseMetadata.responseToMessageId;
98
262
  let knowledgeToProcess;
99
- let selectedFactIndices = [];
263
+ let selectedKnowledgeIndices = [];
100
264
  if (clark.context.pendingAppKnowledge?.messageId === responseToMessageId) {
101
265
  knowledgeToProcess = clark.context.pendingAppKnowledge.knowledgeEntries;
102
266
  }
267
+ else if (responseMetadata.type === "remember_knowledge_draft_response") {
268
+ const messages = await params.chatSessionStore.getMessages();
269
+ const originalMessage = messages.find((msg) => msg.type === "remember_knowledge_draft" &&
270
+ msg.id === responseToMessageId);
271
+ if (originalMessage?.candidates?.length) {
272
+ knowledgeToProcess = originalMessage.candidates;
273
+ }
274
+ }
103
275
  else if (responseMetadata.type === "multi_choice_response") {
104
276
  const messages = await params.chatSessionStore.getMessages();
105
277
  const originalMessage = messages.find((msg) => msg.type === "multi_choice" && msg.id === responseToMessageId);
106
- if (originalMessage?.factCandidates?.length) {
107
- knowledgeToProcess = originalMessage.factCandidates;
278
+ if (originalMessage?.knowledgeCandidates?.length) {
279
+ knowledgeToProcess = originalMessage.knowledgeCandidates;
108
280
  }
109
281
  }
110
282
  else {
111
283
  const messages = await params.chatSessionStore.getMessages();
112
284
  const originalMessage = messages.find((msg) => msg.type === "confirm" && msg.id === responseToMessageId);
113
- if (originalMessage?.fact) {
114
- knowledgeToProcess = [originalMessage.fact];
285
+ if (originalMessage?.knowledgeEntry) {
286
+ knowledgeToProcess = [
287
+ originalMessage.knowledgeEntry,
288
+ ];
115
289
  }
116
290
  }
117
291
  if (!knowledgeToProcess) {
@@ -119,7 +293,25 @@ export async function handleAppKnowledgeApprovalResponse(clark, params, request)
119
293
  }
120
294
  let selectedKnowledge = knowledgeToProcess;
121
295
  let approved = false;
122
- if (responseMetadata.type === "multi_choice_response") {
296
+ let selectedScopesByIndex = new Map();
297
+ if (responseMetadata.type === "remember_knowledge_draft_response") {
298
+ const selected = Array.isArray(responseMetadata.selectedCandidateIndices)
299
+ ? responseMetadata.selectedCandidateIndices
300
+ : [];
301
+ if (selected.length === 0) {
302
+ return false;
303
+ }
304
+ selectedKnowledgeIndices = selected.filter((i) => i >= 0 && i < knowledgeToProcess.length);
305
+ selectedKnowledge = selectedKnowledgeIndices.map((i) => knowledgeToProcess[i]);
306
+ approved = selectedKnowledge.length > 0;
307
+ if (Array.isArray(responseMetadata.selectedScopes)) {
308
+ selectedScopesByIndex = new Map(responseMetadata.selectedScopes.map((scopeSelection) => [
309
+ scopeSelection.candidateIndex,
310
+ scopeSelection,
311
+ ]));
312
+ }
313
+ }
314
+ else if (responseMetadata.type === "multi_choice_response") {
123
315
  const selected = Array.isArray(responseMetadata.selectedChoiceIndices)
124
316
  ? responseMetadata.selectedChoiceIndices
125
317
  : [];
@@ -128,72 +320,87 @@ export async function handleAppKnowledgeApprovalResponse(clark, params, request)
128
320
  }
129
321
  const denyIndex = knowledgeToProcess.length;
130
322
  const denyAll = selected.includes(denyIndex);
131
- selectedFactIndices = denyAll
323
+ selectedKnowledgeIndices = denyAll
132
324
  ? []
133
325
  : selected.filter((i) => i >= 0 && i < knowledgeToProcess.length);
134
- selectedKnowledge = selectedFactIndices.map((i) => knowledgeToProcess[i]);
326
+ selectedKnowledge = selectedKnowledgeIndices.map((i) => knowledgeToProcess[i]);
135
327
  approved = selectedKnowledge.length > 0;
328
+ if (Array.isArray(responseMetadata.selectedScopes)) {
329
+ selectedScopesByIndex = new Map(responseMetadata.selectedScopes.map((scopeSelection) => [
330
+ scopeSelection.candidateIndex,
331
+ scopeSelection,
332
+ ]));
333
+ }
136
334
  }
137
335
  else {
138
336
  approved = Boolean(responseMetadata.approved);
337
+ selectedKnowledgeIndices = [0];
338
+ if (Array.isArray(responseMetadata.selectedScopes)) {
339
+ selectedScopesByIndex = new Map(responseMetadata.selectedScopes.map((scopeSelection) => [
340
+ scopeSelection.candidateIndex,
341
+ scopeSelection,
342
+ ]));
343
+ }
139
344
  }
140
- const persistedMessageId = await params.chatSessionStore.recordUserResponse(request.prompt, responseMetadata.type, responseMetadata.type === "multi_choice_response"
345
+ const persistedMessageId = await params.chatSessionStore.recordUserResponse(request.prompt, responseMetadata.type, responseMetadata.type === "remember_knowledge_draft_response"
141
346
  ? {
142
347
  responseToMessageId,
143
- selectedChoiceIndices: responseMetadata.selectedChoiceIndices,
348
+ selectedCandidateIndices: responseMetadata.selectedCandidateIndices,
349
+ selectedScopes: responseMetadata.selectedScopes,
144
350
  }
145
- : {
146
- responseToMessageId,
147
- approved: responseMetadata.approved,
148
- });
351
+ : responseMetadata.type === "multi_choice_response"
352
+ ? {
353
+ responseToMessageId,
354
+ selectedChoiceIndices: responseMetadata.selectedChoiceIndices,
355
+ selectedScopes: responseMetadata.selectedScopes,
356
+ }
357
+ : {
358
+ responseToMessageId,
359
+ approved: responseMetadata.approved,
360
+ selectedScopes: responseMetadata.selectedScopes,
361
+ });
149
362
  if (persistedMessageId) {
150
363
  clark.updateContext({
151
364
  chatmessageId: persistedMessageId,
152
365
  });
153
366
  }
154
- const resumeMode = getModeAfterFactCapture(clark.context);
367
+ const resumeMode = clark.context.currentMode ?? AiMode.BUILD;
155
368
  clark.updateContext((ctx) => ({
156
369
  ...ctx,
157
370
  pendingAppKnowledge: undefined,
158
371
  rememberKnowledgeCandidatesForTurn: undefined,
159
372
  explicitRememberKnowledgeIntentForTurn: undefined,
160
- modeBeforeKnowledgeCapture: undefined,
161
- currentMode: getModeAfterFactCapture(ctx),
373
+ pendingKnowledgeFreeTextTurn: undefined,
162
374
  interruptOriginalPrompt: undefined,
163
375
  }));
164
376
  if (approved) {
165
- await saveKnowledgeAndNotify(clark, params.chatSessionStore, params.appRootDirPath, selectedKnowledge, responseMetadata.type === "multi_choice_response"
377
+ await saveKnowledgeAndNotify(clark, params, params.chatSessionStore, params.appRootDirPath, responseToMessageId, selectedKnowledge, selectedKnowledgeIndices, selectedScopesByIndex, responseMetadata.type === "multi_choice_response"
166
378
  ? "multi_choice"
167
379
  : "confirm");
168
380
  }
169
- if (resumeMode === AiMode.PLAN) {
170
- void clark.send({
171
- type: AGENT_PLANNED,
172
- userPrompt: "Continue.",
173
- promptContext: request.promptContext,
174
- isUserPrompt: false,
175
- knowledgeMessageId: generateShortId(),
176
- });
177
- }
178
- else {
179
- void clark.send({
180
- type: AGENT_NEEDS_USER_INPUT,
181
- });
182
- }
381
+ const feedbackText = buildKnowledgeFeedbackMessage(approved, knowledgeToProcess, selectedKnowledgeIndices, clark.context.recentKnowledgeSaveOutcomes ?? []);
382
+ await clark.recordSystemMessage(params, "Knowledge update", feedbackText);
383
+ // Knowledge approvals are terminal for the interaction.
384
+ // Auto-continuing in PLAN mode can trigger an extra LLM turn that re-prompts
385
+ // for the same knowledge and leaves the UI in a misleading loading state.
386
+ void clark.send({
387
+ type: AGENT_NEEDS_USER_INPUT,
388
+ });
183
389
  clark.logger.info("[app-skills] Resumed after app knowledge approval response", {
184
390
  approved,
185
391
  resumedMode: resumeMode,
186
- didAutoContinue: resumeMode === AiMode.PLAN,
392
+ didAutoContinue: false,
187
393
  responseType: responseMetadata.type,
188
- selectedFactIndices: responseMetadata.type === "multi_choice_response"
189
- ? selectedFactIndices
394
+ selectedKnowledgeIndices: responseMetadata.type === "multi_choice_response" ||
395
+ responseMetadata.type === "remember_knowledge_draft_response"
396
+ ? selectedKnowledgeIndices
190
397
  : undefined,
191
398
  });
192
399
  return true;
193
400
  }
194
401
  /**
195
- * After an LLM turn in FACT mode, if Clark called `rememberKnowledge`, build and
196
- * send the approval prompt (confirm for single fact, multi_choice for many)
402
+ * After an LLM turn where Clark called `rememberKnowledge`, build and
403
+ * send the approval prompt (confirm for single entry, multi_choice for many)
197
404
  * and transition to `$AwaitingUser`.
198
405
  *
199
406
  * @returns `true` if there were candidates to present (caller should `return`),
@@ -216,7 +423,7 @@ export async function presentKnowledgeApprovalMessage(clark, chatSessionStore) {
216
423
  ? "Should I update this knowledge entry?"
217
424
  : "Should I remember this knowledge entry?",
218
425
  id: messageId,
219
- fact: {
426
+ knowledgeEntry: {
220
427
  name: candidates[0].name,
221
428
  description: candidates[0].description,
222
429
  content: candidates[0].content,
@@ -239,7 +446,7 @@ export async function presentKnowledgeApprovalMessage(clark, chatSessionStore) {
239
446
  { text: "Don't save any", action: "deny" },
240
447
  ],
241
448
  selectionType: "multiple",
242
- factCandidates: candidates,
449
+ knowledgeCandidates: candidates,
243
450
  };
244
451
  clark.updateContext({
245
452
  pendingAppKnowledge: { messageId, knowledgeEntries: candidates },
@@ -251,7 +458,7 @@ export async function presentKnowledgeApprovalMessage(clark, chatSessionStore) {
251
458
  });
252
459
  const sendUserMessage = sendUserMessageChannel(clark, chatSessionStore);
253
460
  await sendUserMessage(confirmPayload);
254
- clark.logger.info("[app-skills] Presenting fact draft for user approval", {
461
+ clark.logger.info("[app-skills] Presenting knowledge draft for user approval", {
255
462
  candidateCount: candidates.length,
256
463
  });
257
464
  void clark.send({
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/ai-service/app-skills/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/ai-service/app-skills/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,30 @@
1
+ import { type AttachmentUploadMetadata } from "@superblocksteam/shared";
1
2
  import type { Logger } from "../util/logger.js";
2
3
  export interface AttachmentUploadResult {
3
4
  fileName: string;
4
5
  url: string;
5
6
  expirationDate: number;
7
+ mimeType?: string;
8
+ storageKey?: string;
9
+ scopeType?: "org" | "app";
10
+ applicationId?: string;
6
11
  }
7
12
  /**
8
13
  * Uploads a file to Bucketeer's generic attachments endpoint.
9
14
  */
10
- export declare function uploadAttachmentToBucketeer({ applicationId, file, prefix, branchId, commitId, superblocksBaseUrl, jwt, logger, }: {
15
+ export declare function uploadAttachmentToBucketeer({ applicationId, file, fileName, prefix, metadata, branchId, commitId, useServerUpload, superblocksBaseUrl, jwt, logger, }: {
11
16
  applicationId: string;
12
17
  file: File | Blob | {
13
18
  data: string;
14
19
  mimeType: string;
15
20
  name?: string;
16
21
  };
22
+ fileName?: string;
17
23
  prefix?: string;
24
+ metadata?: AttachmentUploadMetadata;
18
25
  branchId?: string;
19
26
  commitId?: string;
27
+ useServerUpload?: boolean;
20
28
  superblocksBaseUrl: string;
21
29
  jwt: string;
22
30
  logger: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,aAAa,EACb,IAAI,EACJ,MAA6B,EAC7B,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,GAAG,EACH,MAAM,GACP,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAqFlC"}
1
+ {"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/ai-service/attachment-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,MAA6B,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,kBAAkB,EAClB,GAAG,EACH,MAAM,GACP,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA8GlC"}