@superblocksteam/vite-plugin-file-sync 2.0.42 → 2.0.43-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 (456) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +31 -2
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  5. package/dist/ai-service/agent/subagents/apis/example-selector.d.ts +24 -0
  6. package/dist/ai-service/agent/subagents/apis/example-selector.d.ts.map +1 -0
  7. package/dist/ai-service/agent/subagents/apis/example-selector.js +104 -0
  8. package/dist/ai-service/agent/subagents/apis/example-selector.js.map +1 -0
  9. package/dist/ai-service/agent/subagents/apis/examples.d.ts +55 -0
  10. package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -0
  11. package/dist/ai-service/agent/subagents/apis/examples.js +1229 -0
  12. package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -0
  13. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +83 -0
  14. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -0
  15. package/dist/ai-service/agent/{apis.js → subagents/apis/generate-api-source.js} +141 -98
  16. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -0
  17. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +39 -0
  18. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts.map +1 -0
  19. package/dist/ai-service/agent/subagents/apis/prompt-builder.js +115 -0
  20. package/dist/ai-service/agent/subagents/apis/prompt-builder.js.map +1 -0
  21. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts +2 -0
  22. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -0
  23. package/dist/ai-service/agent/subagents/apis/static-analysis.js +766 -0
  24. package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -0
  25. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +3 -0
  26. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -0
  27. package/dist/ai-service/agent/{apis-system-prompt.js → subagents/apis/system-prompt.js} +127 -34
  28. package/dist/ai-service/agent/{apis-system-prompt.js.map → subagents/apis/system-prompt.js.map} +1 -1
  29. package/dist/ai-service/agent/tool-message-utils.d.ts +6 -16
  30. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tool-message-utils.js +75 -204
  32. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  33. package/dist/ai-service/agent/tools/build-add-event.d.ts +2 -4
  34. package/dist/ai-service/agent/tools/build-add-event.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/build-add-event.js +9 -8
  36. package/dist/ai-service/agent/tools/build-add-event.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-add-state-var.d.ts +2 -4
  38. package/dist/ai-service/agent/tools/build-add-state-var.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools/build-add-state-var.js +6 -5
  40. package/dist/ai-service/agent/tools/build-add-state-var.js.map +1 -1
  41. package/dist/ai-service/agent/tools/build-add-timer.d.ts +2 -4
  42. package/dist/ai-service/agent/tools/build-add-timer.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/build-add-timer.js +7 -6
  44. package/dist/ai-service/agent/tools/build-add-timer.js.map +1 -1
  45. package/dist/ai-service/agent/tools/build-create-page.d.ts +2 -3
  46. package/dist/ai-service/agent/tools/build-create-page.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools/build-create-page.js +11 -10
  48. package/dist/ai-service/agent/tools/build-create-page.js.map +1 -1
  49. package/dist/ai-service/agent/tools/build-debug.d.ts +1 -3
  50. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  51. package/dist/ai-service/agent/tools/build-debug.js +7 -5
  52. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  53. package/dist/ai-service/agent/tools/build-edit-file.d.ts +2 -4
  54. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/build-edit-file.js +10 -7
  56. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  57. package/dist/ai-service/agent/tools/build-finalize.d.ts +2 -4
  58. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools/build-finalize.js +7 -6
  60. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  61. package/dist/ai-service/agent/tools/build-install-packages.d.ts +2 -4
  62. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  63. package/dist/ai-service/agent/tools/build-install-packages.js +7 -6
  64. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  65. package/dist/ai-service/agent/tools/build-list-available-components.d.ts +3 -8
  66. package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +1 -1
  67. package/dist/ai-service/agent/tools/build-list-available-components.js +30 -9
  68. package/dist/ai-service/agent/tools/build-list-available-components.js.map +1 -1
  69. package/dist/ai-service/agent/tools/build-list-files.d.ts +2 -3
  70. package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
  71. package/dist/ai-service/agent/tools/build-list-files.js +10 -8
  72. package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
  73. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +3 -3
  74. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  75. package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -8
  76. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  77. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -4
  78. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  79. package/dist/ai-service/agent/tools/build-multi-edit-file.js +9 -6
  80. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  81. package/dist/ai-service/agent/tools/build-read-files.d.ts +2 -4
  82. package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
  83. package/dist/ai-service/agent/tools/build-read-files.js +10 -8
  84. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  85. package/dist/ai-service/agent/tools/build-register-component-name.d.ts +2 -4
  86. package/dist/ai-service/agent/tools/build-register-component-name.d.ts.map +1 -1
  87. package/dist/ai-service/agent/tools/build-register-component-name.js +9 -8
  88. package/dist/ai-service/agent/tools/build-register-component-name.js.map +1 -1
  89. package/dist/ai-service/agent/tools/build-rename-page.d.ts +2 -3
  90. package/dist/ai-service/agent/tools/build-rename-page.d.ts.map +1 -1
  91. package/dist/ai-service/agent/tools/build-rename-page.js +6 -5
  92. package/dist/ai-service/agent/tools/build-rename-page.js.map +1 -1
  93. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +2 -4
  94. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +1 -1
  95. package/dist/ai-service/agent/tools/build-set-api-triggers.js +6 -5
  96. package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +1 -1
  97. package/dist/ai-service/agent/tools/build-update-state-var.d.ts +2 -3
  98. package/dist/ai-service/agent/tools/build-update-state-var.d.ts.map +1 -1
  99. package/dist/ai-service/agent/tools/build-update-state-var.js +6 -5
  100. package/dist/ai-service/agent/tools/build-update-state-var.js.map +1 -1
  101. package/dist/ai-service/agent/tools/build-validate-icons.d.ts +2 -3
  102. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  103. package/dist/ai-service/agent/tools/build-validate-icons.js +8 -6
  104. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  105. package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -4
  106. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  107. package/dist/ai-service/agent/tools/build-write-file.js +6 -5
  108. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  109. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  110. package/dist/ai-service/agent/tools/debug-cache.js +4 -1
  111. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  112. package/dist/ai-service/agent/tools/index.d.ts +23 -20
  113. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  114. package/dist/ai-service/agent/tools/index.js +23 -20
  115. package/dist/ai-service/agent/tools/index.js.map +1 -1
  116. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +25 -0
  117. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -0
  118. package/dist/ai-service/agent/tools/integrations/execute-request.js +213 -0
  119. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -0
  120. package/dist/ai-service/agent/tools/integrations/index.d.ts +4 -0
  121. package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -0
  122. package/dist/ai-service/agent/tools/integrations/index.js +4 -0
  123. package/dist/ai-service/agent/tools/integrations/index.js.map +1 -0
  124. package/dist/ai-service/agent/tools/integrations/internal.d.ts +3 -0
  125. package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -0
  126. package/dist/ai-service/agent/tools/integrations/internal.js +11 -0
  127. package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -0
  128. package/dist/ai-service/agent/tools/integrations/metadata.d.ts +10 -0
  129. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -0
  130. package/dist/ai-service/agent/tools/integrations/metadata.js +80 -0
  131. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -0
  132. package/dist/ai-service/agent/tools/integrations/run-code.d.ts +5 -0
  133. package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -0
  134. package/dist/ai-service/agent/tools/integrations/run-code.js +32 -0
  135. package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -0
  136. package/dist/ai-service/agent/tools/study-current-app-state.d.ts +2 -4
  137. package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +1 -1
  138. package/dist/ai-service/agent/tools/study-current-app-state.js +10 -8
  139. package/dist/ai-service/agent/tools/study-current-app-state.js.map +1 -1
  140. package/dist/ai-service/agent/tools.d.ts +3 -280
  141. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  142. package/dist/ai-service/agent/tools.js +68 -55
  143. package/dist/ai-service/agent/tools.js.map +1 -1
  144. package/dist/ai-service/agent/tools2/access-control.d.ts +119 -0
  145. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -0
  146. package/dist/ai-service/agent/tools2/access-control.js +216 -0
  147. package/dist/ai-service/agent/tools2/access-control.js.map +1 -0
  148. package/dist/ai-service/agent/tools2/example.d.ts +13 -0
  149. package/dist/ai-service/agent/tools2/example.d.ts.map +1 -0
  150. package/dist/ai-service/agent/tools2/example.js +143 -0
  151. package/dist/ai-service/agent/tools2/example.js.map +1 -0
  152. package/dist/ai-service/agent/tools2/index.d.ts +16 -0
  153. package/dist/ai-service/agent/tools2/index.d.ts.map +1 -0
  154. package/dist/ai-service/agent/tools2/index.js +18 -0
  155. package/dist/ai-service/agent/tools2/index.js.map +1 -0
  156. package/dist/ai-service/agent/tools2/registry.d.ts +167 -0
  157. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -0
  158. package/dist/ai-service/agent/tools2/registry.js +305 -0
  159. package/dist/ai-service/agent/tools2/registry.js.map +1 -0
  160. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +12 -0
  161. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -0
  162. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +73 -0
  163. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -0
  164. package/dist/ai-service/agent/tools2/tools/bash.d.ts +34 -0
  165. package/dist/ai-service/agent/tools2/tools/bash.d.ts.map +1 -0
  166. package/dist/ai-service/agent/tools2/tools/bash.js +76 -0
  167. package/dist/ai-service/agent/tools2/tools/bash.js.map +1 -0
  168. package/dist/ai-service/agent/tools2/tools/edit.d.ts +14 -0
  169. package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -0
  170. package/dist/ai-service/agent/tools2/tools/edit.js +60 -0
  171. package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -0
  172. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +10 -0
  173. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -0
  174. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +66 -0
  175. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -0
  176. package/dist/ai-service/agent/tools2/tools/glob.d.ts +11 -0
  177. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -0
  178. package/dist/ai-service/agent/tools2/tools/glob.js +44 -0
  179. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -0
  180. package/dist/ai-service/agent/tools2/tools/grep.d.ts +21 -0
  181. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -0
  182. package/dist/ai-service/agent/tools2/tools/grep.js +100 -0
  183. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -0
  184. package/dist/ai-service/agent/tools2/tools/index.d.ts +13 -0
  185. package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -0
  186. package/dist/ai-service/agent/tools2/tools/index.js +13 -0
  187. package/dist/ai-service/agent/tools2/tools/index.js.map +1 -0
  188. package/dist/ai-service/agent/tools2/tools/read.d.ts +9 -0
  189. package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -0
  190. package/dist/ai-service/agent/tools2/tools/read.js +43 -0
  191. package/dist/ai-service/agent/tools2/tools/read.js.map +1 -0
  192. package/dist/ai-service/agent/tools2/tools/write.d.ts +11 -0
  193. package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -0
  194. package/dist/ai-service/agent/tools2/tools/write.js +28 -0
  195. package/dist/ai-service/agent/tools2/tools/write.js.map +1 -0
  196. package/dist/ai-service/agent/tools2/types.d.ts +148 -0
  197. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -0
  198. package/dist/ai-service/agent/tools2/types.js +55 -0
  199. package/dist/ai-service/agent/tools2/types.js.map +1 -0
  200. package/dist/ai-service/agent/utils.d.ts +2 -3
  201. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  202. package/dist/ai-service/agent/utils.js +14 -13
  203. package/dist/ai-service/agent/utils.js.map +1 -1
  204. package/dist/ai-service/chat/chat-session-store.d.ts +5 -0
  205. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  206. package/dist/ai-service/chat/chat-session-store.js +484 -345
  207. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  208. package/dist/ai-service/chat/extract-history.d.ts +1 -0
  209. package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
  210. package/dist/ai-service/chat/extract-history.js +12 -1
  211. package/dist/ai-service/chat/extract-history.js.map +1 -1
  212. package/dist/ai-service/const.d.ts +2 -1
  213. package/dist/ai-service/const.d.ts.map +1 -1
  214. package/dist/ai-service/const.js +7 -1
  215. package/dist/ai-service/const.js.map +1 -1
  216. package/dist/ai-service/index.d.ts +9 -8
  217. package/dist/ai-service/index.d.ts.map +1 -1
  218. package/dist/ai-service/index.js +7 -0
  219. package/dist/ai-service/index.js.map +1 -1
  220. package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -1
  221. package/dist/ai-service/integrations/metadata/database.js +3 -29
  222. package/dist/ai-service/integrations/metadata/database.js.map +1 -1
  223. package/dist/ai-service/integrations/metadata/databricks.d.ts +25 -0
  224. package/dist/ai-service/integrations/metadata/databricks.d.ts.map +1 -0
  225. package/dist/ai-service/integrations/metadata/databricks.js +174 -0
  226. package/dist/ai-service/integrations/metadata/databricks.js.map +1 -0
  227. package/dist/ai-service/integrations/store.d.ts +34 -4
  228. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  229. package/dist/ai-service/integrations/store.js +125 -5
  230. package/dist/ai-service/integrations/store.js.map +1 -1
  231. package/dist/ai-service/llm/context/caching/constants.d.ts +27 -0
  232. package/dist/ai-service/llm/context/caching/constants.d.ts.map +1 -0
  233. package/dist/ai-service/llm/context/caching/constants.js +20 -0
  234. package/dist/ai-service/llm/context/caching/constants.js.map +1 -0
  235. package/dist/ai-service/llm/context/caching/factory.d.ts +12 -0
  236. package/dist/ai-service/llm/context/caching/factory.d.ts.map +1 -0
  237. package/dist/ai-service/llm/context/caching/factory.js +28 -0
  238. package/dist/ai-service/llm/context/caching/factory.js.map +1 -0
  239. package/dist/ai-service/llm/context/caching/index.d.ts +10 -0
  240. package/dist/ai-service/llm/context/caching/index.d.ts.map +1 -0
  241. package/dist/ai-service/llm/context/caching/index.js +9 -0
  242. package/dist/ai-service/llm/context/caching/index.js.map +1 -0
  243. package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts +22 -0
  244. package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts.map +1 -0
  245. package/dist/ai-service/llm/context/caching/quantized-strategy.js +48 -0
  246. package/dist/ai-service/llm/context/caching/quantized-strategy.js.map +1 -0
  247. package/dist/ai-service/llm/context/caching/strategy.d.ts +20 -0
  248. package/dist/ai-service/llm/context/caching/strategy.d.ts.map +1 -0
  249. package/dist/ai-service/llm/context/caching/strategy.js +5 -0
  250. package/dist/ai-service/llm/context/caching/strategy.js.map +1 -0
  251. package/dist/ai-service/llm/context/caching/types.d.ts +34 -0
  252. package/dist/ai-service/llm/context/caching/types.d.ts.map +1 -0
  253. package/dist/ai-service/llm/context/caching/types.js +8 -0
  254. package/dist/ai-service/llm/context/caching/types.js.map +1 -0
  255. package/dist/ai-service/llm/context/config.d.ts +51 -0
  256. package/dist/ai-service/llm/context/config.d.ts.map +1 -0
  257. package/dist/ai-service/llm/context/config.js +58 -0
  258. package/dist/ai-service/llm/context/config.js.map +1 -0
  259. package/dist/ai-service/llm/context/constants.d.ts +106 -0
  260. package/dist/ai-service/llm/context/constants.d.ts.map +1 -0
  261. package/dist/ai-service/llm/context/constants.js +106 -0
  262. package/dist/ai-service/llm/context/constants.js.map +1 -0
  263. package/dist/ai-service/llm/context/context.d.ts +207 -0
  264. package/dist/ai-service/llm/context/context.d.ts.map +1 -0
  265. package/dist/ai-service/llm/context/context.js +742 -0
  266. package/dist/ai-service/llm/context/context.js.map +1 -0
  267. package/dist/ai-service/llm/context/errors.d.ts +45 -0
  268. package/dist/ai-service/llm/context/errors.d.ts.map +1 -0
  269. package/dist/ai-service/llm/context/errors.js +56 -0
  270. package/dist/ai-service/llm/context/errors.js.map +1 -0
  271. package/dist/ai-service/llm/context/index.d.ts +13 -0
  272. package/dist/ai-service/llm/context/index.d.ts.map +1 -0
  273. package/dist/ai-service/llm/context/index.js +17 -0
  274. package/dist/ai-service/llm/context/index.js.map +1 -0
  275. package/dist/ai-service/llm/context/internal-types.d.ts +52 -0
  276. package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -0
  277. package/dist/ai-service/llm/context/internal-types.js +28 -0
  278. package/dist/ai-service/llm/context/internal-types.js.map +1 -0
  279. package/dist/ai-service/llm/context/levels/index.d.ts +12 -0
  280. package/dist/ai-service/llm/context/levels/index.d.ts.map +1 -0
  281. package/dist/ai-service/llm/context/levels/index.js +12 -0
  282. package/dist/ai-service/llm/context/levels/index.js.map +1 -0
  283. package/dist/ai-service/llm/context/levels/l1.d.ts +83 -0
  284. package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -0
  285. package/dist/ai-service/llm/context/levels/l1.js +143 -0
  286. package/dist/ai-service/llm/context/levels/l1.js.map +1 -0
  287. package/dist/ai-service/llm/context/levels/l2.d.ts +60 -0
  288. package/dist/ai-service/llm/context/levels/l2.d.ts.map +1 -0
  289. package/dist/ai-service/llm/context/levels/l2.js +96 -0
  290. package/dist/ai-service/llm/context/levels/l2.js.map +1 -0
  291. package/dist/ai-service/llm/context/levels/l3.d.ts +46 -0
  292. package/dist/ai-service/llm/context/levels/l3.d.ts.map +1 -0
  293. package/dist/ai-service/llm/context/levels/l3.js +70 -0
  294. package/dist/ai-service/llm/context/levels/l3.js.map +1 -0
  295. package/dist/ai-service/llm/context/logger.d.ts +17 -0
  296. package/dist/ai-service/llm/context/logger.d.ts.map +1 -0
  297. package/dist/ai-service/llm/context/logger.js +26 -0
  298. package/dist/ai-service/llm/context/logger.js.map +1 -0
  299. package/dist/ai-service/llm/context/manager.d.ts +79 -0
  300. package/dist/ai-service/llm/context/manager.d.ts.map +1 -0
  301. package/dist/ai-service/llm/context/manager.js +136 -0
  302. package/dist/ai-service/llm/context/manager.js.map +1 -0
  303. package/dist/ai-service/llm/context/options.d.ts +43 -0
  304. package/dist/ai-service/llm/context/options.d.ts.map +1 -0
  305. package/dist/ai-service/llm/context/options.js +81 -0
  306. package/dist/ai-service/llm/context/options.js.map +1 -0
  307. package/dist/ai-service/llm/context/serialization.d.ts +56 -0
  308. package/dist/ai-service/llm/context/serialization.d.ts.map +1 -0
  309. package/dist/ai-service/llm/context/serialization.js +9 -0
  310. package/dist/ai-service/llm/context/serialization.js.map +1 -0
  311. package/dist/ai-service/llm/context/storage/index.d.ts +10 -0
  312. package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -0
  313. package/dist/ai-service/llm/context/storage/index.js +2 -0
  314. package/dist/ai-service/llm/context/storage/index.js.map +1 -0
  315. package/dist/ai-service/llm/context/storage/local.d.ts +22 -0
  316. package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -0
  317. package/dist/ai-service/llm/context/storage/local.js +42 -0
  318. package/dist/ai-service/llm/context/storage/local.js.map +1 -0
  319. package/dist/ai-service/llm/context/types.d.ts +125 -0
  320. package/dist/ai-service/llm/context/types.d.ts.map +1 -0
  321. package/dist/ai-service/llm/context/types.js +5 -0
  322. package/dist/ai-service/llm/context/types.js.map +1 -0
  323. package/dist/ai-service/llm/context/utils/content-compaction.d.ts +26 -0
  324. package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -0
  325. package/dist/ai-service/llm/context/utils/content-compaction.js +52 -0
  326. package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -0
  327. package/dist/ai-service/llm/context/utils/index.d.ts +10 -0
  328. package/dist/ai-service/llm/context/utils/index.d.ts.map +1 -0
  329. package/dist/ai-service/llm/context/utils/index.js +10 -0
  330. package/dist/ai-service/llm/context/utils/index.js.map +1 -0
  331. package/dist/ai-service/llm/context/utils/message-utils.d.ts +34 -0
  332. package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -0
  333. package/dist/ai-service/llm/context/utils/message-utils.js +73 -0
  334. package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -0
  335. package/dist/ai-service/llm/context/utils/token-estimation.d.ts +31 -0
  336. package/dist/ai-service/llm/context/utils/token-estimation.d.ts.map +1 -0
  337. package/dist/ai-service/llm/context/utils/token-estimation.js +52 -0
  338. package/dist/ai-service/llm/context/utils/token-estimation.js.map +1 -0
  339. package/dist/ai-service/llm/context/utils/visualization.d.ts +40 -0
  340. package/dist/ai-service/llm/context/utils/visualization.d.ts.map +1 -0
  341. package/dist/ai-service/llm/context/utils/visualization.js +516 -0
  342. package/dist/ai-service/llm/context/utils/visualization.js.map +1 -0
  343. package/dist/ai-service/llm/impl/anthropic.js +2 -2
  344. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  345. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  346. package/dist/ai-service/llmobs/helpers.js +10 -19
  347. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  348. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  349. package/dist/ai-service/llmobs/middleware/stream-text.js +16 -11
  350. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  351. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
  352. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  353. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
  354. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
  355. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
  356. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  357. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  358. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
  359. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
  360. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
  361. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  362. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  363. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
  364. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  365. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
  366. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
  367. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  368. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  369. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  370. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
  371. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
  372. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  373. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  374. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  375. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  376. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  377. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  378. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  379. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  380. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  381. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  382. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
  383. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  384. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
  385. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
  386. package/dist/ai-service/state-machine/clark-fsm.d.ts +9 -5
  387. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  388. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  389. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  390. package/dist/ai-service/state-machine/handlers/agent-planning.js +36 -9
  391. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  392. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  393. package/dist/ai-service/state-machine/handlers/llm-generating.js +161 -104
  394. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  395. package/dist/ai-service/state-machine/helpers/context-id.d.ts +4 -0
  396. package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -0
  397. package/dist/ai-service/state-machine/helpers/context-id.js +16 -0
  398. package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -0
  399. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  400. package/dist/ai-service/state-machine/helpers/peer.js +7 -4
  401. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  402. package/dist/ai-service/state-machine/mocks.d.ts +2 -3
  403. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  404. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  405. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  406. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +0 -2
  407. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  408. package/dist/ai-service/types.d.ts +3 -0
  409. package/dist/ai-service/types.d.ts.map +1 -1
  410. package/dist/ai-service/types.js.map +1 -1
  411. package/dist/ai-service/util/parse-jwt.d.ts +12 -0
  412. package/dist/ai-service/util/parse-jwt.d.ts.map +1 -0
  413. package/dist/ai-service/util/parse-jwt.js +30 -0
  414. package/dist/ai-service/util/parse-jwt.js.map +1 -0
  415. package/dist/ai-service/util/safe-stringify.d.ts +1 -1
  416. package/dist/ai-service/util/safe-stringify.d.ts.map +1 -1
  417. package/dist/ai-service/util/safe-stringify.js +3 -3
  418. package/dist/ai-service/util/safe-stringify.js.map +1 -1
  419. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -1
  420. package/dist/binding-extraction/extract-js-identifiers.js +1 -1
  421. package/dist/binding-extraction/extract-js-identifiers.js.map +1 -1
  422. package/dist/build-errors.d.ts +10 -0
  423. package/dist/build-errors.d.ts.map +1 -0
  424. package/dist/build-errors.js +14 -0
  425. package/dist/build-errors.js.map +1 -0
  426. package/dist/client-error-overlay.d.ts +7 -0
  427. package/dist/client-error-overlay.d.ts.map +1 -0
  428. package/dist/client-error-overlay.js +124 -0
  429. package/dist/client-error-overlay.js.map +1 -0
  430. package/dist/component-docs-service/index.d.ts.map +1 -1
  431. package/dist/component-docs-service/index.js +0 -2
  432. package/dist/component-docs-service/index.js.map +1 -1
  433. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  434. package/dist/file-sync-vite-plugin.js +37 -26
  435. package/dist/file-sync-vite-plugin.js.map +1 -1
  436. package/dist/file-system-manager.d.ts.map +1 -1
  437. package/dist/file-system-manager.js +4 -7
  438. package/dist/file-system-manager.js.map +1 -1
  439. package/dist/injected-index.d.ts.map +1 -1
  440. package/dist/injected-index.js +6 -1
  441. package/dist/injected-index.js.map +1 -1
  442. package/dist/parsing/page.d.ts.map +1 -1
  443. package/dist/parsing/page.js +5 -5
  444. package/dist/parsing/page.js.map +1 -1
  445. package/dist/parsing/scope.d.ts.map +1 -1
  446. package/dist/parsing/scope.js +2 -7
  447. package/dist/parsing/scope.js.map +1 -1
  448. package/dist/routing.d.ts.map +1 -1
  449. package/dist/routing.js +0 -18
  450. package/dist/routing.js.map +1 -1
  451. package/package.json +8 -8
  452. package/dist/ai-service/agent/apis-system-prompt.d.ts +0 -3
  453. package/dist/ai-service/agent/apis-system-prompt.d.ts.map +0 -1
  454. package/dist/ai-service/agent/apis.d.ts +0 -55
  455. package/dist/ai-service/agent/apis.d.ts.map +0 -1
  456. package/dist/ai-service/agent/apis.js.map +0 -1
@@ -0,0 +1,305 @@
1
+ import { PermissionLevel, } from "./types.js";
2
+ export class ToolRegistry {
3
+ factories = new Map();
4
+ instances = new Map();
5
+ accessRules = [];
6
+ middleware = [];
7
+ promptHandler;
8
+ /**
9
+ * Register a tool factory and optionally instantiate it immediately.
10
+ *
11
+ * @param factory - Tool factory to register
12
+ * @param deps - Optional dependencies to instantiate the tool immediately
13
+ * @throws Error if tool with same name already registered
14
+ */
15
+ register(factory, ...deps) {
16
+ if (this.factories.has(factory.name) || this.instances.has(factory.name)) {
17
+ throw new Error(`Tool "${factory.name}" already registered`);
18
+ }
19
+ this.factories.set(factory.name, factory);
20
+ // If dependencies are provided, instantiate immediately
21
+ if (deps.length > 0) {
22
+ const instance = factory.create(...deps);
23
+ if (instance.name !== factory.name) {
24
+ throw new Error(`Tool name mismatch: factory.name="${factory.name}" but tool.name="${instance.name}"`);
25
+ }
26
+ this.instances.set(factory.name, instance);
27
+ }
28
+ }
29
+ /**
30
+ * Register an already-instantiated tool (for tools not using factory pattern).
31
+ *
32
+ * @param tool - Tool instance to register (must have name and execute)
33
+ * @throws Error if tool with same name already registered
34
+ */
35
+ registerTool(tool) {
36
+ if (!tool.name) {
37
+ throw new Error("Tool must have a name property");
38
+ }
39
+ if (this.instances.has(tool.name)) {
40
+ throw new Error(`Tool "${tool.name}" already registered`);
41
+ }
42
+ // Coerce to Tool type - AI SDK tools may have different structure
43
+ this.instances.set(tool.name, tool);
44
+ }
45
+ /**
46
+ * Get list of all registered tool names.
47
+ *
48
+ * @returns Array of tool names
49
+ */
50
+ listTools() {
51
+ return Array.from(this.instances.keys());
52
+ }
53
+ /**
54
+ * Register multiple tool factories at once.
55
+ *
56
+ * @param factories - Array of tool factories to register
57
+ */
58
+ registerAll(factories) {
59
+ for (const factory of factories) {
60
+ this.register(factory);
61
+ }
62
+ }
63
+ /**
64
+ * Instantiate all registered tools with dependencies.
65
+ *
66
+ * This should be called once dependencies are available.
67
+ * Tools will be created by calling their factory functions.
68
+ *
69
+ * @param deps - Dependencies to pass to tool factory functions
70
+ * @throws Error if tool name doesn't match factory name
71
+ */
72
+ instantiate(...deps) {
73
+ for (const [name, factory] of this.factories.entries()) {
74
+ const instance = factory.create(...deps);
75
+ // Validate tool name matches factory name
76
+ if (instance.name !== factory.name) {
77
+ throw new Error(`Tool name mismatch: factory.name="${factory.name}" but tool.name="${instance.name}"`);
78
+ }
79
+ this.instances.set(name, instance);
80
+ }
81
+ }
82
+ /**
83
+ * Wrap a tool to enforce access control on execute().
84
+ *
85
+ * Returns a proxied version where execute() goes through the registry's
86
+ * permission checks, ensuring access control is enforced regardless of
87
+ * how the tool is accessed.
88
+ *
89
+ * @param tool - Raw tool instance
90
+ * @param context - Access control context to use for permission checks
91
+ * @returns Wrapped tool with access-controlled execute()
92
+ */
93
+ wrapTool(tool, context) {
94
+ return {
95
+ ...tool,
96
+ execute: async (input) => {
97
+ // Execute through registry to apply access control with captured context
98
+ const result = await this.execute(tool.name, input, context);
99
+ if (!result.success) {
100
+ throw new Error(result.error);
101
+ }
102
+ return result.data;
103
+ },
104
+ };
105
+ }
106
+ /**
107
+ * Get a tool instance by name.
108
+ *
109
+ * Returns a wrapped version where execute() enforces access control.
110
+ *
111
+ * @param name - Tool name
112
+ * @param context - Access control context (optional)
113
+ * @returns Wrapped tool instance or undefined if not found
114
+ */
115
+ getTool(name, context) {
116
+ const tool = this.instances.get(name);
117
+ return tool ? this.wrapTool(tool, context ?? {}) : undefined;
118
+ }
119
+ /**
120
+ * Get all tool instances.
121
+ *
122
+ * Returns wrapped versions where execute() enforces access control.
123
+ *
124
+ * @param context - Access control context (optional)
125
+ * @returns Array of all wrapped tool instances
126
+ */
127
+ getAllTools(context) {
128
+ const ctx = context ?? {};
129
+ return Array.from(this.instances.values()).map((tool) => this.wrapTool(tool, ctx));
130
+ }
131
+ /**
132
+ * Get metadata for all tools.
133
+ *
134
+ * @returns Array of metadata for all instantiated tools
135
+ */
136
+ getToolMetadata() {
137
+ return Array.from(this.instances.values()).map((tool) => ({
138
+ name: tool.name,
139
+ description: tool.description,
140
+ category: tool.category,
141
+ defaultPermission: tool.defaultPermission,
142
+ }));
143
+ }
144
+ /**
145
+ * Get tools as a record for AI SDK.
146
+ *
147
+ * Returns wrapped versions where execute() enforces access control.
148
+ * Filters out tools that are BLOCKED by access control rules.
149
+ *
150
+ * @param context - Access control context (optional, e.g., { mode: AiMode.PLAN })
151
+ * @returns Record mapping tool names to wrapped tool instances
152
+ */
153
+ async getToolsRecord(context) {
154
+ const ctx = context ?? {};
155
+ // Filter out blocked tools
156
+ const allowedTools = [];
157
+ for (const [name, tool] of this.instances.entries()) {
158
+ const permission = await this.checkPermission(name, ctx);
159
+ if (permission !== PermissionLevel.BLOCK) {
160
+ // Apply middleware first (e.g., profiling wraps the original execute)
161
+ let processedTool = tool;
162
+ for (const mw of this.middleware) {
163
+ processedTool = mw(name, processedTool);
164
+ }
165
+ // Then wrap with access control (wraps the profiled execute)
166
+ const wrappedTool = this.wrapTool(processedTool, ctx);
167
+ allowedTools.push([name, wrappedTool]);
168
+ }
169
+ }
170
+ return Object.fromEntries(allowedTools);
171
+ }
172
+ /**
173
+ * Add one or more access control rules.
174
+ *
175
+ * Rules are evaluated in order when checking permissions.
176
+ * Most restrictive permission level wins.
177
+ *
178
+ * @param rules - Access control rule function(s)
179
+ */
180
+ addAccessRule(...rules) {
181
+ this.accessRules.push(...rules);
182
+ }
183
+ /**
184
+ * Add middleware to transform tools.
185
+ *
186
+ * Middleware is applied in order after access control filtering.
187
+ * Each middleware receives the tool name and instance and returns a transformed tool.
188
+ *
189
+ * @param middleware - Middleware function(s)
190
+ *
191
+ * @example
192
+ * registry.addMiddleware((name, tool) => profileTool(name, tool));
193
+ */
194
+ addMiddleware(...middleware) {
195
+ this.middleware.push(...middleware);
196
+ }
197
+ /**
198
+ * Set handler for prompting user for confirmation.
199
+ *
200
+ * @param handler - Prompt handler function
201
+ */
202
+ setPromptHandler(handler) {
203
+ this.promptHandler = handler;
204
+ }
205
+ /**
206
+ * Check permission level for tool execution.
207
+ *
208
+ * Evaluates all access control rules and returns most restrictive permission.
209
+ *
210
+ * @param toolName - Name of tool to check
211
+ * @param context - Access control context
212
+ * @returns Permission level for execution
213
+ */
214
+ async checkPermission(toolName, context) {
215
+ // Start with tool's default permission
216
+ const tool = this.instances.get(toolName);
217
+ let permission = tool?.defaultPermission ?? PermissionLevel.ALLOW;
218
+ // Check all rules, most restrictive wins
219
+ for (const rule of this.accessRules) {
220
+ const result = await rule(toolName, context, tool?.category, tool?.readOnly);
221
+ // BLOCK is most restrictive
222
+ if (result === PermissionLevel.BLOCK) {
223
+ return PermissionLevel.BLOCK;
224
+ }
225
+ // PROMPT is more restrictive than ALLOW
226
+ if (result === PermissionLevel.PROMPT) {
227
+ permission = PermissionLevel.PROMPT;
228
+ }
229
+ }
230
+ return permission;
231
+ }
232
+ /**
233
+ * Execute a tool with access control.
234
+ *
235
+ * Checks permissions, prompts user if needed, validates input,
236
+ * and executes the tool.
237
+ *
238
+ * @param toolName - Name of tool to execute
239
+ * @param input - Input data for tool
240
+ * @param context - Access control context
241
+ * @returns Execution result with success status and data/error
242
+ */
243
+ async execute(toolName, input, context = {}) {
244
+ // Get raw tool instance (not wrapped to avoid infinite recursion)
245
+ const tool = this.instances.get(toolName);
246
+ if (!tool) {
247
+ return {
248
+ success: false,
249
+ error: `Tool "${toolName}" not found`,
250
+ };
251
+ }
252
+ // Check permission
253
+ const permission = await this.checkPermission(toolName, context);
254
+ // Handle BLOCK
255
+ if (permission === PermissionLevel.BLOCK) {
256
+ return {
257
+ success: false,
258
+ error: `Tool "${toolName}" execution blocked by access control`,
259
+ };
260
+ }
261
+ // Handle PROMPT
262
+ if (permission === PermissionLevel.PROMPT) {
263
+ if (!this.promptHandler) {
264
+ return {
265
+ success: false,
266
+ error: `Tool "${toolName}" requires user confirmation but no prompt handler registered`,
267
+ };
268
+ }
269
+ const approved = await this.promptHandler(toolName, input, context);
270
+ if (!approved) {
271
+ return {
272
+ success: false,
273
+ error: `Tool "${toolName}" execution rejected by user`,
274
+ };
275
+ }
276
+ }
277
+ // Validate input and execute
278
+ try {
279
+ const validated = tool.inputSchema.parse(input);
280
+ const output = await tool.execute(validated);
281
+ return {
282
+ success: true,
283
+ data: output,
284
+ };
285
+ }
286
+ catch (error) {
287
+ return {
288
+ success: false,
289
+ error: error instanceof Error ? error.message : String(error),
290
+ };
291
+ }
292
+ }
293
+ /**
294
+ * Clear all registered tools and rules.
295
+ *
296
+ * Useful for testing or resetting state.
297
+ */
298
+ clear() {
299
+ this.factories.clear();
300
+ this.instances.clear();
301
+ this.accessRules = [];
302
+ this.promptHandler = undefined;
303
+ }
304
+ }
305
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,eAAe,GAChB,MAAM,YAAY,CAAC;AAiBpB,MAAM,OAAO,YAAY;IACf,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IACpC,WAAW,GAAwB,EAAE,CAAC;IACtC,UAAU,GAAqB,EAAE,CAAC;IAClC,aAAa,CAAiB;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAoB,EAAE,GAAG,IAAW;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;YACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,CAAC,IAAI,oBAAoB,QAAQ,CAAC,IAAI,GAAG,CACtF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAS;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAC5D,CAAC;QACD,kEAAkE;QAClE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAY,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,SAAwB;QAClC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,IAAW;QACxB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;YAEzC,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,CAAC,IAAI,oBAAoB,QAAQ,CAAC,IAAI,GAAG,CACtF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,QAAQ,CAAiB,IAAO,EAAE,OAA6B;QACrE,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE;gBAC5B,yEAAyE;gBACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAY,EAAE,OAA8B;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,OAA8B;QACxC,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,eAAe;QAMb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAClB,OAA8B;QAE9B,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;QAE1B,2BAA2B;QAC3B,MAAM,YAAY,GAAqB,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,UAAU,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACzC,sEAAsE;gBACtE,IAAI,aAAa,GAAG,IAAI,CAAC;gBACzB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjC,aAAa,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBAC1C,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAEtD,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,KAA0B;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,UAA4B;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,OAAsB;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,OAA6B;QAE7B,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,IAAI,EAAE,iBAAiB,IAAI,eAAe,CAAC,KAAK,CAAC;QAElE,yCAAyC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,QAAQ,EACR,OAAO,EACP,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,QAAQ,CACf,CAAC;YAEF,4BAA4B;YAC5B,IAAI,MAAM,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACrC,OAAO,eAAe,CAAC,KAAK,CAAC;YAC/B,CAAC;YAED,wCAAwC;YACxC,IAAI,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;gBACtC,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,KAAY,EACZ,UAAgC,EAAE;QAElC,kEAAkE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS,QAAQ,aAAa;aACtC,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEjE,eAAe;QACf,IAAI,UAAU,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS,QAAQ,uCAAuC;aAChE,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,IAAI,UAAU,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,SAAS,QAAQ,+DAA+D;iBACxF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,SAAS,QAAQ,8BAA8B;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE7C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAgB;aACvB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ask Multi-Choice - presents multiple choice options to the user.
3
+ */
4
+ export declare const askMultiChoiceToolFactory: import("../types.js").ToolFactory<import("../types.js").Tool<{
5
+ choices: string[];
6
+ question: string;
7
+ selectionType?: "single" | "multiple" | undefined;
8
+ }, {
9
+ success: boolean;
10
+ message: string;
11
+ }>>;
12
+ //# sourceMappingURL=ask-multi-choice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-multi-choice.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/ask-multi-choice.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;GA6ErC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ import { sendUserMessageChannel } from "../../../state-machine/helpers/peer.js";
3
+ import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
4
+ /**
5
+ * Ask Multi-Choice - presents multiple choice options to the user.
6
+ */
7
+ export const askMultiChoiceToolFactory = createToolFactory("askMultiChoice", (clark, services) => {
8
+ const { chatSessionStore } = services;
9
+ return {
10
+ description: `
11
+ ALWAYS USE THIS TOOL when you need to ask the user ANY question.
12
+
13
+ This tool presents the user with a question and multiple choice options.
14
+ Even for seemingly open-ended questions, you should come up with 3-6 suggested choices to make it easier for the user.
15
+
16
+ When to use:
17
+ - User's request is ambiguous and could mean multiple things
18
+ - Need to understand user's preference between different approaches
19
+ - Want to confirm a specific detail before proceeding
20
+ - Want to present options for the user to choose from
21
+ - ANY time you would ask the user a question - make it multi-choice!
22
+
23
+ For open-ended questions:
24
+ - Come up with 3-6 reasonable suggestions based on common patterns
25
+ - Add a "Something else" or "Other" option as the last choice
26
+ - The user will select from your suggestions, making the interaction faster
27
+
28
+ IMPORTANT: When asking about datasources/integrations:
29
+ - FIRST use the searchIntegrations tool to discover what datasources are available
30
+ - THEN present the available options to the user in your multi-choice question
31
+ - Don't ask the user to choose from integrations you haven't discovered yet
32
+
33
+ NEVER ask the user to type out a response when you can provide clear options.
34
+ The user will select one (or more) of the choices, and their selection will be sent back to you as a message.
35
+ `,
36
+ category: ToolCategory.GENERAL,
37
+ defaultPermission: PermissionLevel.ALLOW,
38
+ readOnly: true,
39
+ inputSchema: z.object({
40
+ question: z
41
+ .string()
42
+ .describe("The question to ask the user. Supports markdown formatting."),
43
+ choices: z
44
+ .array(z.string())
45
+ .min(2)
46
+ .max(6)
47
+ .describe("List of 2-6 choices for the user to select from. Each choice should be a clear, concise option. For open-ended questions, provide sensible suggestions and include 'Something else' or 'Other' as the last option."),
48
+ selectionType: z
49
+ .enum(["single", "multiple"])
50
+ .default("single")
51
+ .optional()
52
+ .describe('Selection mode: "single" (user picks one option) or "multiple" (user can select multiple options). Default is "single".'),
53
+ }),
54
+ execute: async ({ question, choices, selectionType }) => {
55
+ // Send multi-choice message to user with special type for UI to render with choice buttons
56
+ const payload = {
57
+ type: "multi_choice",
58
+ text: question,
59
+ group: "clark",
60
+ choices,
61
+ selectionType,
62
+ };
63
+ // Use sendUserMessageChannel to ensure ID is generated and shared properly
64
+ const sendUserMessage = sendUserMessageChannel(clark, chatSessionStore);
65
+ await sendUserMessage(payload);
66
+ return {
67
+ success: true,
68
+ message: `Presented ${choices.length} choices to user. Awaiting their selection.`,
69
+ };
70
+ },
71
+ };
72
+ });
73
+ //# sourceMappingURL=ask-multi-choice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-multi-choice.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/ask-multi-choice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI/E;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,gBAAgB,EAChB,CAAC,KAAY,EAAE,QAAiC,EAAE,EAAE;IAClD,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,OAAO;QACL,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB;QACK,QAAQ,EAAE,YAAY,CAAC,OAAO;QAC9B,iBAAiB,EAAE,eAAe,CAAC,KAAK;QACxC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACP,6DAA6D,CAC9D;YACH,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,oNAAoN,CACrN;YACH,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;iBAC5B,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACP,yHAAyH,CAC1H;SACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;YACtD,2FAA2F;YAC3F,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,cAAuB;gBAC7B,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO;gBACd,OAAO;gBACP,aAAa;aACd,CAAC;YAEF,2EAA2E;YAC3E,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACxE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;YAE/B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,aAAa,OAAO,CAAC,MAAM,6CAA6C;aAClF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Bash tool - Executes bash commands in a persistent shell session.
3
+ */
4
+ export declare const bashToolFactory: import("../types.js").ToolFactory<import("../types.js").Tool<{
5
+ command: string;
6
+ timeout: number;
7
+ run_in_background: boolean;
8
+ description?: string | undefined;
9
+ }, {
10
+ success: boolean;
11
+ message: string;
12
+ pid: number | undefined;
13
+ stdout?: undefined;
14
+ stderr?: undefined;
15
+ exitCode?: undefined;
16
+ error?: undefined;
17
+ } | {
18
+ success: boolean;
19
+ stdout: string;
20
+ stderr: string;
21
+ exitCode: number;
22
+ message?: undefined;
23
+ pid?: undefined;
24
+ error?: undefined;
25
+ } | {
26
+ success: boolean;
27
+ stdout: any;
28
+ stderr: any;
29
+ exitCode: any;
30
+ error: any;
31
+ message?: undefined;
32
+ pid?: undefined;
33
+ }>>;
34
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/bash.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EzB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { exec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { z } from "zod";
4
+ import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
5
+ const execAsync = promisify(exec);
6
+ /**
7
+ * Bash tool - Executes bash commands in a persistent shell session.
8
+ */
9
+ export const bashToolFactory = createToolFactory("bash", () => ({
10
+ description: `
11
+ Executes a given bash command in a persistent shell session with optional timeout, ensuring proper handling and security measures.
12
+
13
+ IMPORTANT: This tool is for terminal operations like git, npm, docker, etc. DO NOT use it for file operations (reading, writing, editing, searching, finding files) - use the specialized tools for this instead.
14
+ `,
15
+ category: ToolCategory.GENERAL,
16
+ defaultPermission: PermissionLevel.PROMPT,
17
+ inputSchema: z.object({
18
+ command: z.string().describe("Command to execute"),
19
+ description: z
20
+ .string()
21
+ .optional()
22
+ .describe("Description of what command does"),
23
+ timeout: z
24
+ .number()
25
+ .optional()
26
+ .default(120000)
27
+ .describe("Timeout in ms (max 600000, default 120000)"),
28
+ run_in_background: z
29
+ .boolean()
30
+ .optional()
31
+ .default(false)
32
+ .describe("Run in background (default: false)"),
33
+ }),
34
+ execute: async ({ command, description: _description, timeout, run_in_background, }) => {
35
+ try {
36
+ if (run_in_background) {
37
+ // For background execution, spawn without waiting
38
+ const childProcess = exec(command, {
39
+ timeout,
40
+ maxBuffer: 10 * 1024 * 1024, // 10MB
41
+ });
42
+ return {
43
+ success: true,
44
+ message: "Command started in background",
45
+ pid: childProcess.pid,
46
+ };
47
+ }
48
+ // For foreground execution, wait for completion
49
+ const { stdout, stderr } = await execAsync(command, {
50
+ timeout,
51
+ maxBuffer: 10 * 1024 * 1024, // 10MB
52
+ });
53
+ return {
54
+ success: true,
55
+ stdout: stdout || "",
56
+ stderr: stderr || "",
57
+ exitCode: 0,
58
+ };
59
+ }
60
+ catch (error) {
61
+ // Handle timeout
62
+ if (error.killed && error.signal === "SIGTERM") {
63
+ throw new Error(`Command timed out after ${timeout}ms`);
64
+ }
65
+ // Handle non-zero exit code
66
+ return {
67
+ success: false,
68
+ stdout: error.stdout || "",
69
+ stderr: error.stderr || "",
70
+ exitCode: error.code || 1,
71
+ error: error.message,
72
+ };
73
+ }
74
+ },
75
+ }));
76
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9D,WAAW,EAAE;;;;CAId;IACC,QAAQ,EAAE,YAAY,CAAC,OAAO;IAC9B,iBAAiB,EAAE,eAAe,CAAC,MAAM;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,4CAA4C,CAAC;QACzD,iBAAiB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,oCAAoC,CAAC;KAClD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EACP,WAAW,EAAE,YAAY,EACzB,OAAO,EACP,iBAAiB,GAClB,EAAE,EAAE;QACH,IAAI,CAAC;YACH,IAAI,iBAAiB,EAAE,CAAC;gBACtB,kDAAkD;gBAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE;oBACjC,OAAO;oBACP,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;iBACrC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,+BAA+B;oBACxC,GAAG,EAAE,YAAY,CAAC,GAAG;iBACtB,CAAC;YACJ,CAAC;YAED,gDAAgD;YAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;gBAClD,OAAO;gBACP,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;aACrC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,iBAAiB;YACjB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED,4BAA4B;YAC5B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC1B,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBACzB,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Edit tool - Performs exact string replacements in files.
3
+ */
4
+ export declare const editToolFactory: import("../types.js").ToolFactory<import("../types.js").Tool<{
5
+ file_path: string;
6
+ old_string: string;
7
+ new_string: string;
8
+ replace_all: boolean;
9
+ }, {
10
+ success: boolean;
11
+ message: string;
12
+ replacements: number;
13
+ }>>;
14
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/edit.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;GAuDzB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import fs from "node:fs/promises";
2
+ import { z } from "zod";
3
+ import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
4
+ /**
5
+ * Edit tool - Performs exact string replacements in files.
6
+ */
7
+ export const editToolFactory = createToolFactory("edit", () => ({
8
+ description: "Performs exact string replacements in files.",
9
+ category: ToolCategory.FILE,
10
+ defaultPermission: PermissionLevel.ALLOW,
11
+ inputSchema: z.object({
12
+ file_path: z.string().describe("Absolute path to file"),
13
+ old_string: z.string().describe("Text to replace"),
14
+ new_string: z.string().describe("Text to replace with"),
15
+ replace_all: z
16
+ .boolean()
17
+ .optional()
18
+ .default(false)
19
+ .describe("Replace all occurrences (default: false)"),
20
+ }),
21
+ execute: async ({ file_path, old_string, new_string, replace_all }) => {
22
+ try {
23
+ const content = await fs.readFile(file_path, "utf-8");
24
+ let newContent;
25
+ if (replace_all) {
26
+ // Replace all occurrences
27
+ newContent = content.split(old_string).join(new_string);
28
+ }
29
+ else {
30
+ // Replace only first occurrence
31
+ const index = content.indexOf(old_string);
32
+ if (index === -1) {
33
+ throw new Error(`String not found in file: ${old_string}`);
34
+ }
35
+ // Check if unique
36
+ const secondIndex = content.indexOf(old_string, index + 1);
37
+ if (secondIndex !== -1) {
38
+ throw new Error("String is not unique in file. Use replace_all=true or provide more context.");
39
+ }
40
+ newContent =
41
+ content.substring(0, index) +
42
+ new_string +
43
+ content.substring(index + old_string.length);
44
+ }
45
+ await fs.writeFile(file_path, newContent, "utf-8");
46
+ return {
47
+ success: true,
48
+ message: `File edited: ${file_path}`,
49
+ replacements: replace_all ? content.split(old_string).length - 1 : 1,
50
+ };
51
+ }
52
+ catch (error) {
53
+ if (error instanceof Error) {
54
+ throw new Error(`Failed to edit file: ${error.message}`);
55
+ }
56
+ throw new Error("Failed to edit file: Unknown error");
57
+ }
58
+ },
59
+ }));
60
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9D,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,YAAY,CAAC,IAAI;IAC3B,iBAAiB,EAAE,eAAe,CAAC,KAAK;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,WAAW,EAAE,CAAC;aACX,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,0CAA0C,CAAC;KACxD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEtD,IAAI,UAAkB,CAAC;YACvB,IAAI,WAAW,EAAE,CAAC;gBAChB,0BAA0B;gBAC1B,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,kBAAkB;gBAClB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC3D,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;gBACJ,CAAC;gBACD,UAAU;oBACR,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC3B,UAAU;wBACV,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,gBAAgB,SAAS,EAAE;gBACpC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Exit Plan Mode - prompts the user to exit Plan mode when they have finished planning and are ready to code.
3
+ */
4
+ export declare const exitPlanModeToolFactory: import("../types.js").ToolFactory<import("../types.js").Tool<{
5
+ plan: string;
6
+ }, {
7
+ success: boolean;
8
+ message: string;
9
+ }>>;
10
+ //# sourceMappingURL=exit-plan-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-plan-mode.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/exit-plan-mode.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;GAkEnC,CAAC"}