@superblocksteam/vite-plugin-file-sync 2.0.76 → 2.0.77-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 (355) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +14 -0
  2. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  3. package/dist/ai-service/agent/middleware.js +45 -0
  4. package/dist/ai-service/agent/middleware.js.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +66 -5
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
  9. package/dist/ai-service/agent/subagents/apis/static-analysis.js +11 -5
  10. package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
  11. package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts.map +1 -1
  12. package/dist/ai-service/agent/subagents/testing/prompt-builder.js +15 -0
  13. package/dist/ai-service/agent/subagents/testing/prompt-builder.js.map +1 -1
  14. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tool-message-utils.js +3 -0
  16. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +12 -3
  19. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/build-api.js +6 -0
  22. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/apis/get-api-docs.js +99 -3
  25. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
  26. package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/apis/integration-types.js +85 -23
  28. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
  30. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/test-api.js +26 -45
  32. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
  34. package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/write-api.js +8 -2
  36. package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  38. package/dist/ai-service/agent/tools/build-capture-screenshot.js +3 -0
  39. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  40. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  41. package/dist/ai-service/agent/tools/build-debug.js +58 -6
  42. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  43. package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -1
  44. package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
  45. package/dist/ai-service/agent/tools/build-delete-file.js +27 -196
  46. package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
  47. package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -1
  48. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools/build-edit-file.js +12 -22
  50. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  51. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  52. package/dist/ai-service/agent/tools/build-finalize.js +3 -0
  53. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  54. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/build-install-packages.js +15 -0
  56. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  57. package/dist/ai-service/agent/tools/build-list-files.d.ts +1 -1
  58. package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools/build-list-files.js +6 -14
  60. package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
  61. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -0
  63. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  64. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -2
  65. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/build-multi-edit-file.js +8 -25
  67. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  68. package/dist/ai-service/agent/tools/build-read-file.d.ts +10 -4
  69. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools/build-read-file.js +75 -77
  71. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  72. package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
  73. package/dist/ai-service/agent/tools/build-reload-file.js +5 -0
  74. package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
  75. package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -1
  76. package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools/build-rename-file.js +3 -50
  78. package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
  79. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  80. package/dist/ai-service/agent/tools/build-validate-icons.js +8 -0
  81. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  82. package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -2
  83. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  84. package/dist/ai-service/agent/tools/build-write-file.js +7 -17
  85. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  86. package/dist/ai-service/agent/tools/clear-error-cache.d.ts +10 -0
  87. package/dist/ai-service/agent/tools/clear-error-cache.d.ts.map +1 -0
  88. package/dist/ai-service/agent/tools/clear-error-cache.js +38 -0
  89. package/dist/ai-service/agent/tools/clear-error-cache.js.map +1 -0
  90. package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -1
  91. package/dist/ai-service/agent/tools/get-console-logs.js +6 -0
  92. package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -1
  93. package/dist/ai-service/agent/tools/get-runtime-errors.d.ts.map +1 -1
  94. package/dist/ai-service/agent/tools/get-runtime-errors.js +4 -0
  95. package/dist/ai-service/agent/tools/get-runtime-errors.js.map +1 -1
  96. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  97. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  98. package/dist/ai-service/agent/tools/index.js +1 -0
  99. package/dist/ai-service/agent/tools/index.js.map +1 -1
  100. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  101. package/dist/ai-service/agent/tools/integrations/execute-request.js +56 -9
  102. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  103. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  104. package/dist/ai-service/agent/tools/integrations/metadata.js +10 -1
  105. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  106. package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -1
  107. package/dist/ai-service/agent/tools/integrations/run-code.js +9 -0
  108. package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -1
  109. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  110. package/dist/ai-service/agent/tools.js +29 -6
  111. package/dist/ai-service/agent/tools.js.map +1 -1
  112. package/dist/ai-service/agent/tools2/registry.d.ts +15 -0
  113. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  114. package/dist/ai-service/agent/tools2/registry.js +30 -0
  115. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  116. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  117. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +11 -1
  118. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  119. package/dist/ai-service/agent/tools2/tools/edit.d.ts +4 -1
  120. package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
  121. package/dist/ai-service/agent/tools2/tools/edit.js +10 -8
  122. package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
  123. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts.map +1 -1
  124. package/dist/ai-service/agent/tools2/tools/end-test-run.js +5 -0
  125. package/dist/ai-service/agent/tools2/tools/end-test-run.js.map +1 -1
  126. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -0
  127. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  128. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +24 -0
  129. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  130. package/dist/ai-service/agent/tools2/tools/glob.d.ts +4 -1
  131. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
  132. package/dist/ai-service/agent/tools2/tools/glob.js +25 -85
  133. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
  134. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  135. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +9 -0
  136. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  137. package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
  138. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  139. package/dist/ai-service/agent/tools2/tools/grep.js +22 -5
  140. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  141. package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
  142. package/dist/ai-service/agent/tools2/tools/list-attachments.js +4 -0
  143. package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
  144. package/dist/ai-service/agent/tools2/tools/ls.d.ts +8 -1
  145. package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
  146. package/dist/ai-service/agent/tools2/tools/ls.js +102 -83
  147. package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
  148. package/dist/ai-service/agent/tools2/tools/read.d.ts +5 -2
  149. package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
  150. package/dist/ai-service/agent/tools2/tools/read.js +24 -12
  151. package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
  152. package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
  153. package/dist/ai-service/agent/tools2/tools/start-test-run.js +13 -0
  154. package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
  155. package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts.map +1 -1
  156. package/dist/ai-service/agent/tools2/tools/update-test-case-status.js +6 -0
  157. package/dist/ai-service/agent/tools2/tools/update-test-case-status.js.map +1 -1
  158. package/dist/ai-service/agent/tools2/tools/write.d.ts +4 -1
  159. package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -1
  160. package/dist/ai-service/agent/tools2/tools/write.js +9 -4
  161. package/dist/ai-service/agent/tools2/tools/write.js.map +1 -1
  162. package/dist/ai-service/agent/tools2/types.d.ts +25 -0
  163. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  164. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  165. package/dist/ai-service/app-interface/constants.d.ts +77 -0
  166. package/dist/ai-service/app-interface/constants.d.ts.map +1 -0
  167. package/dist/ai-service/app-interface/constants.js +128 -0
  168. package/dist/ai-service/app-interface/constants.js.map +1 -0
  169. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +87 -0
  170. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -0
  171. package/dist/ai-service/app-interface/filesystem/draft-manager.js +91 -0
  172. package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -0
  173. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts +35 -0
  174. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts.map +1 -0
  175. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js +236 -0
  176. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js.map +1 -0
  177. package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts +5 -0
  178. package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts.map +1 -0
  179. package/dist/ai-service/app-interface/filesystem/handlers/index.js +5 -0
  180. package/dist/ai-service/app-interface/filesystem/handlers/index.js.map +1 -0
  181. package/dist/ai-service/app-interface/filesystem/index.d.ts +12 -0
  182. package/dist/ai-service/app-interface/filesystem/index.d.ts.map +1 -0
  183. package/dist/ai-service/app-interface/filesystem/index.js +11 -0
  184. package/dist/ai-service/app-interface/filesystem/index.js.map +1 -0
  185. package/dist/ai-service/app-interface/filesystem/validation.d.ts +71 -0
  186. package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +1 -0
  187. package/dist/ai-service/app-interface/filesystem/validation.js +170 -0
  188. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -0
  189. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +108 -0
  190. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -0
  191. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +157 -0
  192. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -0
  193. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts +126 -0
  194. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts.map +1 -0
  195. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js +9 -0
  196. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js.map +1 -0
  197. package/dist/ai-service/app-interface/linter.d.ts +4 -1
  198. package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
  199. package/dist/ai-service/app-interface/linter.js +10 -6
  200. package/dist/ai-service/app-interface/linter.js.map +1 -1
  201. package/dist/ai-service/app-interface/shell.d.ts +205 -1
  202. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  203. package/dist/ai-service/app-interface/shell.js +474 -14
  204. package/dist/ai-service/app-interface/shell.js.map +1 -1
  205. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  206. package/dist/ai-service/chat/chat-session-store.js +9 -0
  207. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  208. package/dist/ai-service/const.d.ts +0 -3
  209. package/dist/ai-service/const.d.ts.map +1 -1
  210. package/dist/ai-service/const.js +1 -52
  211. package/dist/ai-service/const.js.map +1 -1
  212. package/dist/ai-service/features.d.ts +12 -0
  213. package/dist/ai-service/features.d.ts.map +1 -1
  214. package/dist/ai-service/features.js +13 -0
  215. package/dist/ai-service/features.js.map +1 -1
  216. package/dist/ai-service/index.d.ts +1 -1
  217. package/dist/ai-service/index.d.ts.map +1 -1
  218. package/dist/ai-service/index.js +27 -24
  219. package/dist/ai-service/index.js.map +1 -1
  220. package/dist/ai-service/integrations/store.d.ts +0 -2
  221. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  222. package/dist/ai-service/integrations/store.js +4 -15
  223. package/dist/ai-service/integrations/store.js.map +1 -1
  224. package/dist/ai-service/judge/judge-executor.d.ts.map +1 -1
  225. package/dist/ai-service/judge/judge-executor.js +4 -0
  226. package/dist/ai-service/judge/judge-executor.js.map +1 -1
  227. package/dist/ai-service/llm/client.d.ts +21 -4
  228. package/dist/ai-service/llm/client.d.ts.map +1 -1
  229. package/dist/ai-service/llm/client.js +132 -12
  230. package/dist/ai-service/llm/client.js.map +1 -1
  231. package/dist/ai-service/llm/context/context.d.ts +4 -1
  232. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  233. package/dist/ai-service/llm/context/context.js +27 -5
  234. package/dist/ai-service/llm/context/context.js.map +1 -1
  235. package/dist/ai-service/llm/context/internal-types.d.ts +5 -0
  236. package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -1
  237. package/dist/ai-service/llm/context/internal-types.js +5 -0
  238. package/dist/ai-service/llm/context/internal-types.js.map +1 -1
  239. package/dist/ai-service/llm/context/levels/l1.d.ts +4 -3
  240. package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -1
  241. package/dist/ai-service/llm/context/levels/l1.js +9 -8
  242. package/dist/ai-service/llm/context/levels/l1.js.map +1 -1
  243. package/dist/ai-service/llm/context/serialization.d.ts +8 -0
  244. package/dist/ai-service/llm/context/serialization.d.ts.map +1 -1
  245. package/dist/ai-service/llm/context/utils/content-compaction.d.ts +7 -5
  246. package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -1
  247. package/dist/ai-service/llm/context/utils/content-compaction.js +27 -6
  248. package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -1
  249. package/dist/ai-service/llm/error.d.ts +1 -0
  250. package/dist/ai-service/llm/error.d.ts.map +1 -1
  251. package/dist/ai-service/llm/error.js +29 -3
  252. package/dist/ai-service/llm/error.js.map +1 -1
  253. package/dist/ai-service/llm/stream/config.d.ts +18 -6
  254. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  255. package/dist/ai-service/llm/stream/config.js +18 -5
  256. package/dist/ai-service/llm/stream/config.js.map +1 -1
  257. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  258. package/dist/ai-service/llm/stream/errors.js +7 -4
  259. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  260. package/dist/ai-service/llm/stream/index.d.ts +5 -3
  261. package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
  262. package/dist/ai-service/llm/stream/index.js +4 -2
  263. package/dist/ai-service/llm/stream/index.js.map +1 -1
  264. package/dist/ai-service/llm/stream/orchestrator.d.ts +1 -1
  265. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  266. package/dist/ai-service/llm/stream/orchestrator.js +5 -11
  267. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  268. package/dist/ai-service/llm/stream/retry-engine.d.ts +18 -5
  269. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  270. package/dist/ai-service/llm/stream/retry-engine.js +75 -21
  271. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  272. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts +8 -0
  273. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts.map +1 -1
  274. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js +108 -0
  275. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js.map +1 -1
  276. package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts.map +1 -1
  277. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +360 -133
  278. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
  279. package/dist/ai-service/security/index.d.ts +8 -0
  280. package/dist/ai-service/security/index.d.ts.map +1 -0
  281. package/dist/ai-service/security/index.js +8 -0
  282. package/dist/ai-service/security/index.js.map +1 -0
  283. package/dist/ai-service/security/safety-classifier.d.ts +103 -0
  284. package/dist/ai-service/security/safety-classifier.d.ts.map +1 -0
  285. package/dist/ai-service/security/safety-classifier.js +178 -0
  286. package/dist/ai-service/security/safety-classifier.js.map +1 -0
  287. package/dist/ai-service/security/secret-scanner.d.ts +145 -0
  288. package/dist/ai-service/security/secret-scanner.d.ts.map +1 -0
  289. package/dist/ai-service/security/secret-scanner.js +344 -0
  290. package/dist/ai-service/security/secret-scanner.js.map +1 -0
  291. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -1
  292. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  293. package/dist/ai-service/state-machine/clark-fsm.js +32 -9
  294. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  295. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  296. package/dist/ai-service/state-machine/handlers/agent-planning.js +17 -6
  297. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  298. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  299. package/dist/ai-service/state-machine/handlers/llm-generating.js +29 -1
  300. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  301. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  302. package/dist/ai-service/template-renderer.js +4 -1
  303. package/dist/ai-service/template-renderer.js.map +1 -1
  304. package/dist/ai-service/transform/api-builder/shared.js +2 -2
  305. package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
  306. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +1 -0
  307. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  308. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +1 -2
  309. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  310. package/dist/ai-service/types.d.ts +6 -5
  311. package/dist/ai-service/types.d.ts.map +1 -1
  312. package/dist/ai-service/types.js.map +1 -1
  313. package/dist/components-manager.d.ts.map +1 -1
  314. package/dist/components-manager.js +17 -12
  315. package/dist/components-manager.js.map +1 -1
  316. package/dist/ensure-app-provider.d.ts +2 -0
  317. package/dist/ensure-app-provider.d.ts.map +1 -0
  318. package/dist/ensure-app-provider.js +209 -0
  319. package/dist/ensure-app-provider.js.map +1 -0
  320. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  321. package/dist/file-sync-vite-plugin.js +22 -12
  322. package/dist/file-sync-vite-plugin.js.map +1 -1
  323. package/dist/file-system-manager.d.ts +0 -6
  324. package/dist/file-system-manager.d.ts.map +1 -1
  325. package/dist/file-system-manager.js +119 -144
  326. package/dist/file-system-manager.js.map +1 -1
  327. package/dist/parsing/util.d.ts.map +1 -1
  328. package/dist/parsing/util.js +5 -1
  329. package/dist/parsing/util.js.map +1 -1
  330. package/dist/socket-manager.d.ts.map +1 -1
  331. package/dist/socket-manager.js +5 -0
  332. package/dist/socket-manager.js.map +1 -1
  333. package/dist/source-tracker.d.ts +4 -0
  334. package/dist/source-tracker.d.ts.map +1 -1
  335. package/dist/source-tracker.js +15 -8
  336. package/dist/source-tracker.js.map +1 -1
  337. package/dist/sync-service/index.d.ts.map +1 -1
  338. package/dist/sync-service/index.js +13 -8
  339. package/dist/sync-service/index.js.map +1 -1
  340. package/dist/util/logger.d.ts.map +1 -1
  341. package/dist/util/logger.js +16 -0
  342. package/dist/util/logger.js.map +1 -1
  343. package/dist/util.d.ts +1 -1
  344. package/dist/util.d.ts.map +1 -1
  345. package/dist/util.js +4 -2
  346. package/dist/util.js.map +1 -1
  347. package/package.json +10 -16
  348. package/dist/ai-service/agent/tools/apis/api-source.d.ts +0 -24
  349. package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +0 -1
  350. package/dist/ai-service/agent/tools/apis/api-source.js +0 -108
  351. package/dist/ai-service/agent/tools/apis/api-source.js.map +0 -1
  352. package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts +0 -7
  353. package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts.map +0 -1
  354. package/dist/ai-service/state-machine/helpers/file-read-tracker.js +0 -26
  355. package/dist/ai-service/state-machine/helpers/file-read-tracker.js.map +0 -1
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Secret scanning utilities using TruffleHog.
3
+ *
4
+ * Provides functions for scanning content for leaked credentials and secrets.
5
+ * Uses TruffleHog CLI under the hood for detection and verification.
6
+ */
7
+ /**
8
+ * Result from TruffleHog secret detection.
9
+ */
10
+ export interface SecretFinding {
11
+ /** The type of detector that found the secret (e.g., "AWS", "Stripe", "GitHub") */
12
+ detectorType: string;
13
+ /** The name of the detector */
14
+ detectorName: string;
15
+ /** Whether the secret was verified as active */
16
+ verified: boolean;
17
+ /** The raw secret value (may be redacted) */
18
+ raw: string;
19
+ /** Redacted version of the secret */
20
+ redacted: string;
21
+ /** Line number where the secret was found (if available) */
22
+ line?: number;
23
+ /** Additional metadata about the secret */
24
+ extraData?: Record<string, unknown>;
25
+ /** Source metadata */
26
+ sourceMetadata?: {
27
+ file?: string;
28
+ line?: number;
29
+ };
30
+ }
31
+ /**
32
+ * Options for secret scanning.
33
+ */
34
+ export interface SecretScanOptions {
35
+ /** Timeout in milliseconds (default: 5000) */
36
+ timeout?: number;
37
+ /** Only return verified (confirmed active) secrets (default: false - returns all findings) */
38
+ verifiedOnly?: boolean;
39
+ }
40
+ /**
41
+ * Result of a secret scan operation.
42
+ */
43
+ export interface SecretScanResult {
44
+ /** Whether the scan completed successfully */
45
+ success: boolean;
46
+ /** List of detected secrets */
47
+ findings: SecretFinding[];
48
+ /** Error message if scan failed */
49
+ error?: string;
50
+ /** Whether any verified secrets were found */
51
+ hasVerifiedSecrets: boolean;
52
+ /** Whether any secrets (verified or not) were found */
53
+ hasSecrets: boolean;
54
+ /** The original content with secrets replaced by redacted versions */
55
+ redactedContent: string;
56
+ }
57
+ /**
58
+ * Redacts secrets in content by replacing raw values with redacted versions.
59
+ *
60
+ * Replaces each detected secret's raw value with its redacted form.
61
+ * Secrets are processed longest-first to handle overlapping matches correctly.
62
+ *
63
+ * @param content - The original content containing secrets
64
+ * @param findings - Array of secret findings from TruffleHog
65
+ * @returns Content with all detected secrets redacted
66
+ */
67
+ export declare function redactSecrets(content: string, findings: SecretFinding[]): string;
68
+ /**
69
+ * Scans text content for secrets using TruffleHog.
70
+ *
71
+ * This function pipes content directly to TruffleHog's stdin command
72
+ * and returns any detected secrets.
73
+ *
74
+ * @param content - The text content to scan for secrets
75
+ * @param options - Scan configuration options
76
+ * @returns Promise resolving to scan results with any findings
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const result = await scanContentForSecrets(userPrompt);
81
+ * if (result.hasVerifiedSecrets) {
82
+ * console.log("Verified secrets found:", result.findings.filter(f => f.verified));
83
+ * }
84
+ * ```
85
+ */
86
+ export declare function scanContentForSecrets(content: string, options?: SecretScanOptions): Promise<SecretScanResult>;
87
+ /**
88
+ * Checks if TruffleHog is available on the system.
89
+ *
90
+ * @returns Promise resolving to true if TruffleHog is installed and accessible
91
+ */
92
+ export declare function isTrufflehogAvailable(): Promise<boolean>;
93
+ /**
94
+ * A reusable secret redactor that can perform fast synchronous redaction.
95
+ *
96
+ * Use this when you need to redact secrets from multiple pieces of content
97
+ * using the same set of findings (e.g., redacting LLM responses based on
98
+ * secrets found in the input prompt).
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * // Scan input once
103
+ * const result = await scanContentForSecrets(userPrompt);
104
+ * const redactor = new SecretRedactor(result.findings);
105
+ *
106
+ * // Redact multiple outputs synchronously
107
+ * const safeResponse = redactor.redact(llmResponse);
108
+ * const safeToolOutput = redactor.redact(toolResult);
109
+ * ```
110
+ */
111
+ export declare class SecretRedactor {
112
+ private sortedFindings;
113
+ /**
114
+ * Creates a new SecretRedactor with the given findings.
115
+ *
116
+ * @param findings - Secret findings to use for redaction
117
+ */
118
+ constructor(findings: SecretFinding[]);
119
+ /**
120
+ * Redacts secrets from the given content synchronously.
121
+ *
122
+ * @param content - The content to redact secrets from
123
+ * @returns Content with secrets replaced by redacted versions
124
+ */
125
+ redact(content: string): string;
126
+ /**
127
+ * Redacts secrets from any value (string, object, or array).
128
+ *
129
+ * Recursively processes objects and arrays, redacting any string values.
130
+ *
131
+ * @param value - The value to redact secrets from
132
+ * @returns Value with secrets redacted from all string content
133
+ */
134
+ redactDeep(value: unknown): unknown;
135
+ /**
136
+ * Returns true if this redactor has any findings to redact.
137
+ */
138
+ hasFindings(): boolean;
139
+ /**
140
+ * Returns the number of findings this redactor has.
141
+ */
142
+ get findingCount(): number;
143
+ }
144
+ export declare function formatSecretFindings(findings: SecretFinding[]): string;
145
+ //# sourceMappingURL=secret-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,sBAAsB;IACtB,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EAAE,GACxB,MAAM,CAoBR;AAyDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAqFD;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAmB9D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;OAIG;gBACS,QAAQ,EAAE,aAAa,EAAE;IAOrC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc/B;;;;;;;OAOG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAiBnC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAmBtE"}
@@ -0,0 +1,344 @@
1
+ /**
2
+ * Secret scanning utilities using TruffleHog.
3
+ *
4
+ * Provides functions for scanning content for leaked credentials and secrets.
5
+ * Uses TruffleHog CLI under the hood for detection and verification.
6
+ */
7
+ import { spawn, execSync } from "node:child_process";
8
+ import { getErrorMeta, getPrefixedLogger } from "../../util/logger.js";
9
+ /**
10
+ * Detects if trufflehog is running via a Nix wrapper that already adds --no-update.
11
+ * The Nix wrapper is a bash script that adds --no-update before forwarding args.
12
+ */
13
+ function isNixWrappedTrufflehog() {
14
+ try {
15
+ const trufflehogPath = execSync("which trufflehog", {
16
+ encoding: "utf-8",
17
+ }).trim();
18
+ return trufflehogPath.includes("/nix/store/");
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ // Cache the result since it won't change during runtime
25
+ let _isNixWrapped;
26
+ function shouldSkipNoUpdateFlag() {
27
+ if (_isNixWrapped === undefined) {
28
+ _isNixWrapped = isNixWrappedTrufflehog();
29
+ }
30
+ return _isNixWrapped;
31
+ }
32
+ /**
33
+ * Redacts secrets in content by replacing raw values with redacted versions.
34
+ *
35
+ * Replaces each detected secret's raw value with its redacted form.
36
+ * Secrets are processed longest-first to handle overlapping matches correctly.
37
+ *
38
+ * @param content - The original content containing secrets
39
+ * @param findings - Array of secret findings from TruffleHog
40
+ * @returns Content with all detected secrets redacted
41
+ */
42
+ export function redactSecrets(content, findings) {
43
+ if (findings.length === 0) {
44
+ return content;
45
+ }
46
+ let redacted = content;
47
+ // Sort findings by raw length (longest first) to handle overlapping secrets
48
+ const sortedFindings = [...findings].sort((a, b) => b.raw.length - a.raw.length);
49
+ for (const finding of sortedFindings) {
50
+ if (finding.raw && finding.redacted) {
51
+ // Use global replacement to catch all occurrences
52
+ redacted = redacted.split(finding.raw).join(finding.redacted);
53
+ }
54
+ }
55
+ return redacted;
56
+ }
57
+ /**
58
+ * Parses TruffleHog JSON output into SecretFinding objects.
59
+ *
60
+ * @param jsonLine - Single line of JSON output from TruffleHog
61
+ * @returns Parsed SecretFinding or null if parsing fails
62
+ */
63
+ function parseTrufflehogResult(jsonLine) {
64
+ try {
65
+ const result = JSON.parse(jsonLine);
66
+ const raw = result.Raw ?? "";
67
+ // Generate a sensible redacted value if TruffleHog doesn't provide one
68
+ // (custom regex detectors often return empty Redacted field)
69
+ const redacted = result.Redacted || generateRedactedValue(raw);
70
+ return {
71
+ detectorType: result.DetectorType?.toString() ?? "unknown",
72
+ detectorName: result.DetectorName ?? "unknown",
73
+ verified: result.Verified ?? false,
74
+ raw,
75
+ redacted,
76
+ line: result.SourceMetadata?.Data?.Filesystem?.line,
77
+ extraData: result.ExtraData,
78
+ sourceMetadata: {
79
+ file: result.SourceMetadata?.Data?.Filesystem?.file,
80
+ line: result.SourceMetadata?.Data?.Filesystem?.line,
81
+ },
82
+ };
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ /**
89
+ * Generates a redacted version of a secret value.
90
+ *
91
+ * Preserves a prefix for recognizable patterns (like sk_live_, ghp_, AKIA)
92
+ * and replaces the rest with asterisks.
93
+ *
94
+ * @param raw - The raw secret value
95
+ * @returns A redacted version with preserved prefix and masked suffix
96
+ */
97
+ function generateRedactedValue(raw) {
98
+ if (!raw || raw.length <= 4) {
99
+ return "[REDACTED]";
100
+ }
101
+ // For short secrets, just show first 2 chars
102
+ if (raw.length <= 8) {
103
+ return raw.slice(0, 2) + "****";
104
+ }
105
+ // For longer secrets, preserve recognizable prefixes
106
+ const prefixLength = Math.min(8, Math.floor(raw.length / 3));
107
+ return raw.slice(0, prefixLength) + "****";
108
+ }
109
+ /**
110
+ * Scans text content for secrets using TruffleHog.
111
+ *
112
+ * This function pipes content directly to TruffleHog's stdin command
113
+ * and returns any detected secrets.
114
+ *
115
+ * @param content - The text content to scan for secrets
116
+ * @param options - Scan configuration options
117
+ * @returns Promise resolving to scan results with any findings
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const result = await scanContentForSecrets(userPrompt);
122
+ * if (result.hasVerifiedSecrets) {
123
+ * console.log("Verified secrets found:", result.findings.filter(f => f.verified));
124
+ * }
125
+ * ```
126
+ */
127
+ export async function scanContentForSecrets(content, options = {}) {
128
+ const { timeout = 5000, verifiedOnly = false } = options;
129
+ const logger = getPrefixedLogger("[secret-scan]");
130
+ try {
131
+ const findings = await runTrufflehog(content, timeout, verifiedOnly);
132
+ logger.debug(`TruffleHog scan completed: found ${findings.length} potential secrets`);
133
+ const redactedContent = redactSecrets(content, findings);
134
+ return {
135
+ success: true,
136
+ findings,
137
+ hasVerifiedSecrets: findings.some((f) => f.verified),
138
+ hasSecrets: findings.length > 0,
139
+ redactedContent,
140
+ };
141
+ }
142
+ catch (error) {
143
+ logger.error("error during operation: ", getErrorMeta(error));
144
+ return {
145
+ success: false,
146
+ findings: [],
147
+ error: error instanceof Error ? error.message : String(error),
148
+ hasVerifiedSecrets: false,
149
+ hasSecrets: false,
150
+ redactedContent: content, // Return original content on error
151
+ };
152
+ }
153
+ }
154
+ /**
155
+ * Runs TruffleHog CLI using stdin and returns parsed findings.
156
+ *
157
+ * Uses TruffleHog's built-in detectors for common secret types (Stripe, GitHub,
158
+ * AWS, private keys, etc.) without custom configuration.
159
+ *
160
+ * @param content - Content to scan for secrets (piped to stdin)
161
+ * @param timeout - Timeout in milliseconds
162
+ * @param verifiedOnly - Whether to only return verified secrets
163
+ * @returns Promise resolving to array of SecretFinding objects
164
+ */
165
+ async function runTrufflehog(content, timeout, verifiedOnly) {
166
+ return new Promise((resolve, reject) => {
167
+ const args = ["stdin", "--json"];
168
+ if (!shouldSkipNoUpdateFlag()) {
169
+ args.push("--no-update");
170
+ }
171
+ if (verifiedOnly) {
172
+ args.push("--results=verified");
173
+ }
174
+ else {
175
+ args.push("--results=verified,unknown,unverified");
176
+ }
177
+ const proc = spawn("trufflehog", args, {
178
+ timeout,
179
+ stdio: ["pipe", "pipe", "pipe"],
180
+ });
181
+ const findings = [];
182
+ let stdout = "";
183
+ let stderr = "";
184
+ proc.stdout.on("data", (data) => {
185
+ stdout += data.toString();
186
+ });
187
+ proc.stderr.on("data", (data) => {
188
+ stderr += data.toString();
189
+ });
190
+ proc.on("close", (code) => {
191
+ // TruffleHog returns 0 for no secrets, 183 for secrets found
192
+ if (code === 0 || code === 183) {
193
+ // Parse each line of JSON output
194
+ const lines = stdout.split("\n").filter((line) => line.trim());
195
+ for (const line of lines) {
196
+ const finding = parseTrufflehogResult(line);
197
+ if (finding) {
198
+ findings.push(finding);
199
+ }
200
+ }
201
+ resolve(findings);
202
+ }
203
+ else {
204
+ reject(new Error(`TruffleHog exited with code ${code}: ${stderr || stdout}`));
205
+ }
206
+ });
207
+ proc.on("error", (error) => {
208
+ if (error.message.includes("ENOENT")) {
209
+ reject(new Error("TruffleHog is not installed. Please install it: https://github.com/trufflesecurity/trufflehog"));
210
+ }
211
+ else {
212
+ reject(error);
213
+ }
214
+ });
215
+ // Write content to stdin and close the stream
216
+ proc.stdin.write(content);
217
+ proc.stdin.end();
218
+ });
219
+ }
220
+ /**
221
+ * Checks if TruffleHog is available on the system.
222
+ *
223
+ * @returns Promise resolving to true if TruffleHog is installed and accessible
224
+ */
225
+ export async function isTrufflehogAvailable() {
226
+ return new Promise((resolve) => {
227
+ const args = ["--version"];
228
+ if (!shouldSkipNoUpdateFlag()) {
229
+ args.push("--no-update");
230
+ }
231
+ const proc = spawn("trufflehog", args, {
232
+ timeout: 5000,
233
+ stdio: ["ignore", "pipe", "pipe"],
234
+ });
235
+ proc.on("close", (code) => {
236
+ resolve(code === 0);
237
+ });
238
+ proc.on("error", () => {
239
+ resolve(false);
240
+ });
241
+ });
242
+ }
243
+ /**
244
+ * A reusable secret redactor that can perform fast synchronous redaction.
245
+ *
246
+ * Use this when you need to redact secrets from multiple pieces of content
247
+ * using the same set of findings (e.g., redacting LLM responses based on
248
+ * secrets found in the input prompt).
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * // Scan input once
253
+ * const result = await scanContentForSecrets(userPrompt);
254
+ * const redactor = new SecretRedactor(result.findings);
255
+ *
256
+ * // Redact multiple outputs synchronously
257
+ * const safeResponse = redactor.redact(llmResponse);
258
+ * const safeToolOutput = redactor.redact(toolResult);
259
+ * ```
260
+ */
261
+ export class SecretRedactor {
262
+ sortedFindings;
263
+ /**
264
+ * Creates a new SecretRedactor with the given findings.
265
+ *
266
+ * @param findings - Secret findings to use for redaction
267
+ */
268
+ constructor(findings) {
269
+ // Sort findings by raw length (longest first) to handle overlapping secrets
270
+ this.sortedFindings = [...findings].sort((a, b) => b.raw.length - a.raw.length);
271
+ }
272
+ /**
273
+ * Redacts secrets from the given content synchronously.
274
+ *
275
+ * @param content - The content to redact secrets from
276
+ * @returns Content with secrets replaced by redacted versions
277
+ */
278
+ redact(content) {
279
+ if (this.sortedFindings.length === 0 || !content) {
280
+ return content;
281
+ }
282
+ let redacted = content;
283
+ for (const finding of this.sortedFindings) {
284
+ if (finding.raw && finding.redacted) {
285
+ redacted = redacted.split(finding.raw).join(finding.redacted);
286
+ }
287
+ }
288
+ return redacted;
289
+ }
290
+ /**
291
+ * Redacts secrets from any value (string, object, or array).
292
+ *
293
+ * Recursively processes objects and arrays, redacting any string values.
294
+ *
295
+ * @param value - The value to redact secrets from
296
+ * @returns Value with secrets redacted from all string content
297
+ */
298
+ redactDeep(value) {
299
+ if (typeof value === "string") {
300
+ return this.redact(value);
301
+ }
302
+ if (Array.isArray(value)) {
303
+ return value.map((item) => this.redactDeep(item));
304
+ }
305
+ if (value !== null && typeof value === "object") {
306
+ const result = {};
307
+ for (const [key, val] of Object.entries(value)) {
308
+ result[key] = this.redactDeep(val);
309
+ }
310
+ return result;
311
+ }
312
+ return value;
313
+ }
314
+ /**
315
+ * Returns true if this redactor has any findings to redact.
316
+ */
317
+ hasFindings() {
318
+ return this.sortedFindings.length > 0;
319
+ }
320
+ /**
321
+ * Returns the number of findings this redactor has.
322
+ */
323
+ get findingCount() {
324
+ return this.sortedFindings.length;
325
+ }
326
+ }
327
+ export function formatSecretFindings(findings) {
328
+ if (findings.length === 0) {
329
+ return "No secrets detected.";
330
+ }
331
+ const lines = [`Found ${findings.length} potential secret(s):\n`];
332
+ for (const finding of findings) {
333
+ const status = finding.verified ? "✓ VERIFIED" : "? unverified";
334
+ lines.push(` [${status}] ${finding.detectorName}`);
335
+ lines.push(` Type: ${finding.detectorType}`);
336
+ lines.push(` Value: ${finding.redacted}`);
337
+ if (finding.sourceMetadata?.line) {
338
+ lines.push(` Line: ${finding.sourceMetadata.line}`);
339
+ }
340
+ lines.push("");
341
+ }
342
+ return lines.join("\n");
343
+ }
344
+ //# sourceMappingURL=secret-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-scanner.js","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"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"}
@@ -360,8 +360,9 @@ export type ClarkStateHandlerParams = AiServiceConfig & {
360
360
  *
361
361
  * Extends StreamTextOptions with Clark-specific middleware configuration.
362
362
  * Only `user` message is required - all other options have smart defaults.
363
+ * providerConfig and enableFallback are populated from Clark's context.llmConfig.
363
364
  */
364
- export interface ClarkStreamTextOptions<TOOLS extends Record<string, Tool>> extends Omit<LLMClientStreamTextOptions<TOOLS>, "model"> {
365
+ export interface ClarkStreamTextOptions<TOOLS extends Record<string, Tool>> extends Omit<LLMClientStreamTextOptions<TOOLS>, "model" | "providerConfig"> {
365
366
  /** Language model to use. Defaults to services.llmProvider.modelForClassification("broad_edit"). */
366
367
  model?: LanguageModelV2;
367
368
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clark-fsm.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/clark-fsm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clark-fsm.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/clark-fsm.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,WAAW,EAGX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,QAAA,MAAM,CAAC;;;;;;;;CAQG,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;CAAI,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,CAAC;AAExC,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAC3C,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AACjE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,iCAAiC,kCACb,CAAC;AAClC,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AACpE,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,OAAO,gBAAgB,CAAC;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,OAAO,mBAAmB,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,mBAAmB,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,aAAa,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,OAAO,4BAA4B,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,OAAO,sBAAsB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,aAAa,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,OAAO,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IACE,IAAI,EAAE,OAAO,yBAAyB,CAAC;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B,GACD;IAAE,IAAI,EAAE,OAAO,WAAW,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACrD;IACE,IAAI,EAAE,OAAO,YAAY,CAAC;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,OAAO,uBAAuB,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACtD;IACE,IAAI,EAAE,OAAO,wBAAwB,CAAC;IACtC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,OAAO,uBAAuB,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,iCAAiC,CAAA;CAAE,GAClD;IACE,IAAI,EAAE,OAAO,sBAAsB,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnD,GACD;IAAE,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,0BAA0B,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,iBAAiB,CAAA;CAAE,CAAC;AAGvC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDd,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,aAAa,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,aAAa,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,YAAY,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,cAAc,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,gBAAgB,CAAC;AAC1D,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC;AAElC,MAAM,MAAM,6BAA6B,GAAG,2BAA2B,CACrE,UAAU,EACV,UAAU,CACX,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAC/D,UAAU,EACV,UAAU,EACV,YAAY,CACb,CAAC;AAEF,qBAAa,KAAM,SAAQ,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;gBAC5D,MAAM,EAAE;QAClB,cAAc,EAAE,YAAY,CAAC;QAC7B,uBAAuB,EAAE,6BAA6B,CAAC;QACvD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;KAC7C;IAQM,gBAAgB,IAAI,oBAAoB;IAsBxC,YAAY,IAAI,IAAI;cAgBR,kBAAkB,CACnC,aAAa,EAAE,UAAU,GACxB,sBAAsB;cAQN,mBAAmB,CACpC,KAAK,EAAE,UAAU,GAChB,yBAAyB;cAiBT,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAexE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACjD,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,GACrC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAiInC,OAAO,CAAC,eAAe;CAyBxB;AAED,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAE5E,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,KAC5B,CAAC,UAAU,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpD,MAAM,MAAM,0BAA0B,GAAG;KACtC,CAAC,IAAI,UAAU,GAAG,wBAAwB;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,UAAU,IAClD,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GACvC,KAAK,GACL;KACG,CAAC,IAAI,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;CACvE,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE;QACV,KAAK,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;YAC9D,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;QACJ,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,mBAAmB,CAAC,EAAE;QACpB,KAAK,EAAE,iBAAiB,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,wBAAwB,CAAC,EAAE;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,4BAA4B,CAAC,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,cAAc,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3E,QAAQ,EAAE,GAAG,CAAC;QACd,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,6BAA6B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,GAAG,CACpB,MAAM,EACN,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAC5D,CAAC;IACF,qEAAqE;IACrE,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAClC,SAAQ,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC3E,oGAAoG;IACpG,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB"}
@@ -193,7 +193,7 @@ export class Clark extends TracedFSM {
193
193
  * ```
194
194
  */
195
195
  async streamText(services, options) {
196
- const { model: providedModel, context: contextConfig, logging: loggingConfig, ...streamOptions } = options;
196
+ const { model: providedModel, context: contextConfig, logging: loggingConfig, enableFallback: enableFallbackOverride, ...streamOptions } = options;
197
197
  const model = providedModel ??
198
198
  services.llmProvider.modelForClassification("broad_edit");
199
199
  const { thinkingEnabled, thinkingBudgetTokens, headers, providerOptions } = processLLMConfig(this.context.llmConfig);
@@ -226,13 +226,25 @@ export class Clark extends TracedFSM {
226
226
  startTime: new Date().toISOString(),
227
227
  endTime: "",
228
228
  };
229
- const fallback = this.context.llmConfig?.unifiedProviderEnabled
230
- ? {
231
- initialProvider: this.context.llmConfig.provider,
232
- initialModel: this.context.llmConfig.coreModel,
233
- }
234
- : undefined;
235
- // Delegate to LLMClient with merged options
229
+ if (!this.context.llmConfig?.provider) {
230
+ throw new Error("llmConfig.provider is required. This should be set from the ui.clark-ai.llm-provider feature flag.");
231
+ }
232
+ if (!this.context.llmConfig?.coreModel) {
233
+ throw new Error("llmConfig.coreModel is required. This should be set from the superblocks.ai.core-model.name feature flag.");
234
+ }
235
+ const providerConfig = {
236
+ provider: this.context.llmConfig.provider,
237
+ model: this.context.llmConfig.coreModel,
238
+ };
239
+ // normally we want to just use the config that is already set, but we should allow
240
+ // for overrides (e.g. for tools that need to disable fallback, because retrying is
241
+ // handled at the tool level)
242
+ let enableFallback = this.context.llmConfig.unifiedProviderEnabled ?? false;
243
+ if (enableFallbackOverride !== undefined) {
244
+ enableFallback = enableFallbackOverride;
245
+ }
246
+ const fallbackStrategy = this.context.llmConfig.fallbackStrategy;
247
+ this.logger.info(`[ai-service] fallbackStrategy from llmConfig: ${fallbackStrategy ?? "undefined"}`);
236
248
  return await services.llmClient.streamText({
237
249
  ...streamOptions,
238
250
  model,
@@ -262,8 +274,19 @@ export class Clark extends TracedFSM {
262
274
  context,
263
275
  logging,
264
276
  retry: streamOptions.retry,
265
- fallback,
277
+ providerConfig,
278
+ enableFallback,
279
+ fallbackStrategy,
266
280
  peer: this.context.peer,
281
+ safety: {
282
+ classification: {
283
+ enabled: services.features.safetyClassificationEnabled ?? false,
284
+ model: services.llmProvider.modelForTask("fast"),
285
+ },
286
+ secretRedaction: {
287
+ enabled: services.features.secretRedactionEnabled ?? false,
288
+ },
289
+ },
267
290
  }, this.logger, this.tracer);
268
291
  }
269
292
  pushContextUsed(usage) {