@tyvm/knowhow 0.0.33 → 0.0.35

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 (504) hide show
  1. package/autodoc/plugins/downloader/downloader.mdx +2 -2
  2. package/benchmarks/.dockerignore +7 -0
  3. package/benchmarks/README.md +166 -0
  4. package/benchmarks/docker/Dockerfile +68 -0
  5. package/benchmarks/example-config.yml +27 -0
  6. package/benchmarks/jest.config.js +13 -0
  7. package/benchmarks/package-lock.json +4297 -0
  8. package/benchmarks/package.json +39 -0
  9. package/benchmarks/results/4542435/2025-08-05/lms/lms-openai-gpt-oss-20b.json +2814 -0
  10. package/benchmarks/results/4542435/2025-08-05/lms/lms-qwen-qwen3-30b-a3b-2507.json +2014 -0
  11. package/benchmarks/results/4fb9125/2025-08-07/anthropic/anthropic-claude-sonnet-4-20250514.json +3121 -0
  12. package/benchmarks/results/5766aee/2025-08-02/lms-qwen/qwen3-coder-30b.json +98 -0
  13. package/benchmarks/results/6d73808/2025-08-07/openai/openai-gpt-5.json +3256 -0
  14. package/benchmarks/results/77bf0a6/2025-08-02/lms-qwen/qwen3-30b-a3b-2507.json +4298 -0
  15. package/benchmarks/results/8c0d445/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +3031 -0
  16. package/benchmarks/results/8c0d445/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +2990 -0
  17. package/benchmarks/results/ac6b2ab/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +3256 -0
  18. package/benchmarks/results/ac6b2ab/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +3007 -0
  19. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +3256 -0
  20. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-mini-2025-04-14.json +3036 -0
  21. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-nano-2025-04-14.json +3280 -0
  22. package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-30b-a3b-2507.json +1920 -0
  23. package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-coder-30b.json +3281 -0
  24. package/benchmarks/results/b502ed9/2025-08-03/lms-qwen/qwen3-coder-30b.json +2896 -0
  25. package/benchmarks/results/d1a8129/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +3011 -0
  26. package/benchmarks/results/e60471c/2025-08-03/lms/qwen3-30b-a3b-2507.json +3003 -0
  27. package/benchmarks/scripts/build-and-run.sh +47 -0
  28. package/benchmarks/scripts/clone-exercism.sh +92 -0
  29. package/benchmarks/scripts/validate.sh +48 -0
  30. package/benchmarks/src/__tests__/runner.test.ts +27 -0
  31. package/benchmarks/src/cli.ts +90 -0
  32. package/benchmarks/src/evaluators/EvaluatorRegistry.ts +64 -0
  33. package/benchmarks/src/evaluators/JavaScriptEvaluator.ts +183 -0
  34. package/benchmarks/src/evaluators/index.ts +3 -0
  35. package/benchmarks/src/evaluators/types.ts +22 -0
  36. package/benchmarks/src/index.ts +3 -0
  37. package/benchmarks/src/providers.ts +13 -0
  38. package/benchmarks/src/runner.ts +824 -0
  39. package/benchmarks/src/types.ts +63 -0
  40. package/benchmarks/tsconfig.json +19 -0
  41. package/jest.config.js +2 -1
  42. package/leaderboard/README.md +148 -0
  43. package/leaderboard/app/api/benchmark-data/route.ts +131 -0
  44. package/leaderboard/app/api/benchmark-detail/route.ts +172 -0
  45. package/leaderboard/app/details/[model]/[provider]/[language]/page.tsx +501 -0
  46. package/leaderboard/app/exercise/[model]/[provider]/[language]/[exercise]/page.tsx +375 -0
  47. package/leaderboard/app/globals.css +27 -0
  48. package/leaderboard/app/layout.tsx +21 -0
  49. package/leaderboard/app/page.tsx +170 -0
  50. package/leaderboard/components/LeaderboardTable.tsx +168 -0
  51. package/leaderboard/components/PerformanceChart.tsx +109 -0
  52. package/leaderboard/next-env.d.ts +5 -0
  53. package/leaderboard/next.config.js +4 -0
  54. package/leaderboard/package-lock.json +6363 -0
  55. package/leaderboard/package.json +28 -0
  56. package/leaderboard/postcss.config.js +6 -0
  57. package/leaderboard/tailwind.config.js +17 -0
  58. package/leaderboard/tsconfig.json +28 -0
  59. package/leaderboard/types/benchmark.ts +67 -0
  60. package/leaderboard/utils/dataProcessor.ts +33 -0
  61. package/package.json +2 -1
  62. package/src/agents/base/base.ts +182 -24
  63. package/src/agents/base/prompt.ts +28 -0
  64. package/src/agents/index.ts +3 -0
  65. package/src/agents/patcher/patcher.ts +6 -4
  66. package/src/agents/setup/setup.ts +56 -0
  67. package/src/agents/tools/agentCall.ts +6 -2
  68. package/src/agents/tools/aiClient.ts +74 -8
  69. package/src/agents/tools/execCommand.ts +13 -14
  70. package/src/agents/tools/executeScript/README.md +16 -0
  71. package/src/agents/tools/index.ts +2 -0
  72. package/src/agents/tools/list.ts +73 -16
  73. package/src/agents/tools/startAgentTask.ts +109 -0
  74. package/src/agents/tools/textSearch.ts +1 -1
  75. package/src/agents/tools/visionTool.ts +31 -2
  76. package/src/agents/tools/ycmd/client.ts +608 -0
  77. package/src/agents/tools/ycmd/definitions.ts +294 -0
  78. package/src/agents/tools/ycmd/detection.ts +211 -0
  79. package/src/agents/tools/ycmd/index.ts +11 -0
  80. package/src/agents/tools/ycmd/installer.ts +251 -0
  81. package/src/agents/tools/ycmd/server.ts +535 -0
  82. package/src/agents/tools/ycmd/serverManager.ts +316 -0
  83. package/src/agents/tools/ycmd/tools/completion.ts +113 -0
  84. package/src/agents/tools/ycmd/tools/diagnostics.ts +155 -0
  85. package/src/agents/tools/ycmd/tools/getLocations.ts +173 -0
  86. package/src/agents/tools/ycmd/tools/goto.ts +169 -0
  87. package/src/agents/tools/ycmd/tools/refactor.ts +204 -0
  88. package/src/agents/tools/ycmd/tools/signature.ts +174 -0
  89. package/src/agents/tools/ycmd/tools/start.ts +95 -0
  90. package/src/agents/tools/ycmd/utils/pathUtils.ts +59 -0
  91. package/src/ai.ts +15 -0
  92. package/src/chat/CliChatService.ts +277 -0
  93. package/src/chat/modules/AgentModule.ts +985 -0
  94. package/src/chat/modules/AskModule.ts +98 -0
  95. package/src/chat/modules/BaseChatModule.ts +66 -0
  96. package/src/chat/modules/InternalChatModule.ts +174 -0
  97. package/src/chat/modules/SearchModule.ts +166 -0
  98. package/src/chat/modules/SetupModule.ts +185 -0
  99. package/src/chat/modules/SystemModule.ts +120 -0
  100. package/src/chat/modules/VoiceModule.ts +70 -0
  101. package/src/chat/modules/index.js +5 -0
  102. package/src/chat/types.ts +97 -0
  103. package/src/chat.ts +9 -1
  104. package/src/chat2.ts +62 -0
  105. package/src/cli.ts +264 -35
  106. package/src/clients/anthropic.ts +14 -7
  107. package/src/clients/gemini.ts +15 -7
  108. package/src/clients/http.ts +17 -7
  109. package/src/clients/index.ts +117 -4
  110. package/src/clients/knowhow.ts +7 -2
  111. package/src/clients/knowhowMcp.ts +118 -0
  112. package/src/clients/openai.ts +32 -8
  113. package/src/clients/types.ts +1 -0
  114. package/src/clients/xai.ts +17 -5
  115. package/src/config.ts +30 -5
  116. package/src/conversion.ts +4 -1
  117. package/src/login.ts +26 -9
  118. package/src/microphone.ts +0 -1
  119. package/src/plugins/downloader/downloader.ts +191 -49
  120. package/src/plugins/downloader/plugin.ts +3 -1
  121. package/src/plugins/plugins.ts +3 -0
  122. package/src/processors/CustomVariables.ts +425 -0
  123. package/src/processors/HarmonyToolProcessor.ts +264 -0
  124. package/src/processors/XmlToolCallProcessor.ts +533 -0
  125. package/src/processors/index.ts +3 -0
  126. package/src/prompts/KnowhowConfigExamples.ts +376 -0
  127. package/src/services/KnowhowClient.ts +49 -3
  128. package/src/services/Mcp.ts +42 -3
  129. package/src/services/McpServer.ts +14 -4
  130. package/src/services/McpWebsocketTransport.ts +21 -7
  131. package/src/services/MessageProcessor.ts +10 -5
  132. package/src/services/index.ts +5 -0
  133. package/src/services/script-execution/ScriptExecutor.ts +34 -1
  134. package/src/services/types.ts +17 -14
  135. package/src/types.ts +17 -0
  136. package/src/utils/index.ts +138 -0
  137. package/tests/XmlToolCallProcessor.test.ts +468 -0
  138. package/tests/manual/ycmd/debug_diagnostics_test.ts +127 -0
  139. package/tests/manual/ycmd/fixtures/debug_diagnostics.ts +26 -0
  140. package/tests/manual/ycmd/fixtures/file_change_test.ts +17 -0
  141. package/tests/manual/ycmd/minimal_advanced_test.ts +108 -0
  142. package/tests/manual/ycmd/simple_diagnostics_test.ts +61 -0
  143. package/tests/manual/ycmd/simple_test.ts +74 -0
  144. package/tests/manual/ycmd/test-typescript-sample.ts +34 -0
  145. package/tests/manual/ycmd/test_advanced_features.ts +407 -0
  146. package/tests/manual/ycmd/test_advanced_with_tools.ts +320 -0
  147. package/tests/manual/ycmd/test_comprehensive_typescript.ts +179 -0
  148. package/tests/manual/ycmd/test_diagnostics_file_changes.ts +249 -0
  149. package/tests/manual/ycmd/test_diagnostics_fix.ts +99 -0
  150. package/tests/manual/ycmd/test_diagnostics_simple.ts +100 -0
  151. package/tests/manual/ycmd/test_diagnostics_timing.ts +120 -0
  152. package/tests/manual/ycmd/test_discover_commands.ts +310 -0
  153. package/tests/manual/ycmd/test_endpoints.ts +115 -0
  154. package/tests/manual/ycmd/test_final_comprehensive.ts +218 -0
  155. package/tests/manual/ycmd/test_final_validation.ts +150 -0
  156. package/tests/manual/ycmd/test_implementation.js +42 -0
  157. package/tests/manual/ycmd/test_individual_ycmd_tool.ts +39 -0
  158. package/tests/manual/ycmd/test_server_manager.ts +52 -0
  159. package/tests/manual/ycmd/test_simple_debug.ts +86 -0
  160. package/tests/manual/ycmd/test_tsserver_workflow.js +83 -0
  161. package/tests/manual/ycmd/test_tsserver_workflow.ts +122 -0
  162. package/tests/manual/ycmd/test_typescript_simple.ts +48 -0
  163. package/tests/manual/ycmd/test_typescript_ycmd.ts +105 -0
  164. package/tests/manual/ycmd/test_workspace_config.ts +90 -0
  165. package/tests/manual/ycmd/test_ycmd_auto_start.ts +137 -0
  166. package/tests/manual/ycmd/test_ycmd_comprehensive.ts +73 -0
  167. package/tests/manual/ycmd/test_ycmd_connection.py +10 -0
  168. package/tests/manual/ycmd/test_ycmd_direct.ts +142 -0
  169. package/tests/manual/ycmd/test_ycmd_experiment.ts +48 -0
  170. package/tests/manual/ycmd/test_ycmd_final.ts +200 -0
  171. package/tests/manual/ycmd/test_ycmd_fixed.py +18 -0
  172. package/tests/manual/ycmd/test_ycmd_integration.ts +112 -0
  173. package/tests/manual/ycmd/test_ycmd_simple.ts +45 -0
  174. package/tests/manual/ycmd/test_ycmd_usage.py +27 -0
  175. package/tests/manual/ycmd/working_simple_test.ts +134 -0
  176. package/ts_build/src/agents/base/base.d.ts +15 -1
  177. package/ts_build/src/agents/base/base.js +121 -20
  178. package/ts_build/src/agents/base/base.js.map +1 -1
  179. package/ts_build/src/agents/base/prompt.d.ts +1 -1
  180. package/ts_build/src/agents/base/prompt.js +28 -0
  181. package/ts_build/src/agents/base/prompt.js.map +1 -1
  182. package/ts_build/src/agents/index.d.ts +2 -0
  183. package/ts_build/src/agents/index.js +2 -0
  184. package/ts_build/src/agents/index.js.map +1 -1
  185. package/ts_build/src/agents/patcher/patcher.js +6 -3
  186. package/ts_build/src/agents/patcher/patcher.js.map +1 -1
  187. package/ts_build/src/agents/setup/setup.d.ts +8 -0
  188. package/ts_build/src/agents/setup/setup.js +59 -0
  189. package/ts_build/src/agents/setup/setup.js.map +1 -0
  190. package/ts_build/src/agents/tools/agentCall.js +5 -2
  191. package/ts_build/src/agents/tools/agentCall.js.map +1 -1
  192. package/ts_build/src/agents/tools/aiClient.d.ts +6 -5
  193. package/ts_build/src/agents/tools/aiClient.js +37 -6
  194. package/ts_build/src/agents/tools/aiClient.js.map +1 -1
  195. package/ts_build/src/agents/tools/execCommand.d.ts +2 -2
  196. package/ts_build/src/agents/tools/execCommand.js +5 -6
  197. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  198. package/ts_build/src/agents/tools/executeScript/index.d.ts +1 -1
  199. package/ts_build/src/agents/tools/index.d.ts +2 -0
  200. package/ts_build/src/agents/tools/index.js +2 -0
  201. package/ts_build/src/agents/tools/index.js.map +1 -1
  202. package/ts_build/src/agents/tools/list.js +66 -16
  203. package/ts_build/src/agents/tools/list.js.map +1 -1
  204. package/ts_build/src/agents/tools/startAgentTask.d.ts +13 -0
  205. package/ts_build/src/agents/tools/startAgentTask.js +74 -0
  206. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -0
  207. package/ts_build/src/agents/tools/startChatTask.d.ts +13 -0
  208. package/ts_build/src/agents/tools/startChatTask.js +73 -0
  209. package/ts_build/src/agents/tools/startChatTask.js.map +1 -0
  210. package/ts_build/src/agents/tools/textSearch.js +1 -1
  211. package/ts_build/src/agents/tools/textSearch.js.map +1 -1
  212. package/ts_build/src/agents/tools/visionTool.d.ts +1 -1
  213. package/ts_build/src/agents/tools/visionTool.js +23 -3
  214. package/ts_build/src/agents/tools/visionTool.js.map +1 -1
  215. package/ts_build/src/agents/tools/ycmd/client.d.ts +93 -0
  216. package/ts_build/src/agents/tools/ycmd/client.js +355 -0
  217. package/ts_build/src/agents/tools/ycmd/client.js.map +1 -0
  218. package/ts_build/src/agents/tools/ycmd/definitions.d.ts +345 -0
  219. package/ts_build/src/agents/tools/ycmd/definitions.js +298 -0
  220. package/ts_build/src/agents/tools/ycmd/definitions.js.map +1 -0
  221. package/ts_build/src/agents/tools/ycmd/detection.d.ts +11 -0
  222. package/ts_build/src/agents/tools/ycmd/detection.js +175 -0
  223. package/ts_build/src/agents/tools/ycmd/detection.js.map +1 -0
  224. package/ts_build/src/agents/tools/ycmd/index.d.ts +8 -0
  225. package/ts_build/src/agents/tools/ycmd/index.js +20 -0
  226. package/ts_build/src/agents/tools/ycmd/index.js.map +1 -0
  227. package/ts_build/src/agents/tools/ycmd/installer.d.ts +19 -0
  228. package/ts_build/src/agents/tools/ycmd/installer.js +196 -0
  229. package/ts_build/src/agents/tools/ycmd/installer.js.map +1 -0
  230. package/ts_build/src/agents/tools/ycmd/server.d.ts +35 -0
  231. package/ts_build/src/agents/tools/ycmd/server.js +363 -0
  232. package/ts_build/src/agents/tools/ycmd/server.js.map +1 -0
  233. package/ts_build/src/agents/tools/ycmd/serverManager.d.ts +39 -0
  234. package/ts_build/src/agents/tools/ycmd/serverManager.js +210 -0
  235. package/ts_build/src/agents/tools/ycmd/serverManager.js.map +1 -0
  236. package/ts_build/src/agents/tools/ycmd/tools/completion.d.ts +22 -0
  237. package/ts_build/src/agents/tools/ycmd/tools/completion.js +72 -0
  238. package/ts_build/src/agents/tools/ycmd/tools/completion.js.map +1 -0
  239. package/ts_build/src/agents/tools/ycmd/tools/diagnostics.d.ts +42 -0
  240. package/ts_build/src/agents/tools/ycmd/tools/diagnostics.js +88 -0
  241. package/ts_build/src/agents/tools/ycmd/tools/diagnostics.js.map +1 -0
  242. package/ts_build/src/agents/tools/ycmd/tools/getLocations.d.ts +22 -0
  243. package/ts_build/src/agents/tools/ycmd/tools/getLocations.js +142 -0
  244. package/ts_build/src/agents/tools/ycmd/tools/getLocations.js.map +1 -0
  245. package/ts_build/src/agents/tools/ycmd/tools/goto.d.ts +20 -0
  246. package/ts_build/src/agents/tools/ycmd/tools/goto.js +101 -0
  247. package/ts_build/src/agents/tools/ycmd/tools/goto.js.map +1 -0
  248. package/ts_build/src/agents/tools/ycmd/tools/refactor.d.ts +32 -0
  249. package/ts_build/src/agents/tools/ycmd/tools/refactor.js +123 -0
  250. package/ts_build/src/agents/tools/ycmd/tools/refactor.js.map +1 -0
  251. package/ts_build/src/agents/tools/ycmd/tools/signature.d.ts +25 -0
  252. package/ts_build/src/agents/tools/ycmd/tools/signature.js +110 -0
  253. package/ts_build/src/agents/tools/ycmd/tools/signature.js.map +1 -0
  254. package/ts_build/src/agents/tools/ycmd/tools/start.d.ts +17 -0
  255. package/ts_build/src/agents/tools/ycmd/tools/start.js +65 -0
  256. package/ts_build/src/agents/tools/ycmd/tools/start.js.map +1 -0
  257. package/ts_build/src/agents/tools/ycmd/utils/pathUtils.d.ts +4 -0
  258. package/ts_build/src/agents/tools/ycmd/utils/pathUtils.js +67 -0
  259. package/ts_build/src/agents/tools/ycmd/utils/pathUtils.js.map +1 -0
  260. package/ts_build/src/ai.d.ts +1 -0
  261. package/ts_build/src/ai.js +40 -1
  262. package/ts_build/src/ai.js.map +1 -1
  263. package/ts_build/src/chat/ChatCommandHandler.d.ts +36 -0
  264. package/ts_build/src/chat/ChatCommandHandler.js +268 -0
  265. package/ts_build/src/chat/ChatCommandHandler.js.map +1 -0
  266. package/ts_build/src/chat/ChatInputManager.d.ts +22 -0
  267. package/ts_build/src/chat/ChatInputManager.js +85 -0
  268. package/ts_build/src/chat/ChatInputManager.js.map +1 -0
  269. package/ts_build/src/chat/ChatManager.d.ts +49 -0
  270. package/ts_build/src/chat/ChatManager.js +271 -0
  271. package/ts_build/src/chat/ChatManager.js.map +1 -0
  272. package/ts_build/src/chat/ChatSession.d.ts +32 -0
  273. package/ts_build/src/chat/ChatSession.js +3 -0
  274. package/ts_build/src/chat/ChatSession.js.map +1 -0
  275. package/ts_build/src/chat/ChatSessionManager.d.ts +19 -0
  276. package/ts_build/src/chat/ChatSessionManager.js +188 -0
  277. package/ts_build/src/chat/ChatSessionManager.js.map +1 -0
  278. package/ts_build/src/chat/ChatStateManager.d.ts +58 -0
  279. package/ts_build/src/chat/ChatStateManager.js +156 -0
  280. package/ts_build/src/chat/ChatStateManager.js.map +1 -0
  281. package/ts_build/src/chat/CliChatService.d.ts +35 -0
  282. package/ts_build/src/chat/CliChatService.js +201 -0
  283. package/ts_build/src/chat/CliChatService.js.map +1 -0
  284. package/ts_build/src/chat/InterruptibleInput.d.ts +20 -0
  285. package/ts_build/src/chat/InterruptibleInput.js +109 -0
  286. package/ts_build/src/chat/InterruptibleInput.js.map +1 -0
  287. package/ts_build/src/chat/interfaces/ChatModule.d.ts +6 -0
  288. package/ts_build/src/chat/interfaces/ChatModule.js +3 -0
  289. package/ts_build/src/chat/interfaces/ChatModule.js.map +1 -0
  290. package/ts_build/src/chat/modules/AgentModule.d.ts +57 -0
  291. package/ts_build/src/chat/modules/AgentModule.js +709 -0
  292. package/ts_build/src/chat/modules/AgentModule.js.map +1 -0
  293. package/ts_build/src/chat/modules/AskModule.d.ts +10 -0
  294. package/ts_build/src/chat/modules/AskModule.js +63 -0
  295. package/ts_build/src/chat/modules/AskModule.js.map +1 -0
  296. package/ts_build/src/chat/modules/BaseChatModule.d.ts +14 -0
  297. package/ts_build/src/chat/modules/BaseChatModule.js +32 -0
  298. package/ts_build/src/chat/modules/BaseChatModule.js.map +1 -0
  299. package/ts_build/src/chat/modules/InternalChatModule.d.ts +24 -0
  300. package/ts_build/src/chat/modules/InternalChatModule.js +127 -0
  301. package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -0
  302. package/ts_build/src/chat/modules/SearchModule.d.ts +12 -0
  303. package/ts_build/src/chat/modules/SearchModule.js +119 -0
  304. package/ts_build/src/chat/modules/SearchModule.js.map +1 -0
  305. package/ts_build/src/chat/modules/SetupModule.d.ts +15 -0
  306. package/ts_build/src/chat/modules/SetupModule.js +147 -0
  307. package/ts_build/src/chat/modules/SetupModule.js.map +1 -0
  308. package/ts_build/src/chat/modules/SystemModule.d.ts +14 -0
  309. package/ts_build/src/chat/modules/SystemModule.js +90 -0
  310. package/ts_build/src/chat/modules/SystemModule.js.map +1 -0
  311. package/ts_build/src/chat/modules/VoiceModule.d.ts +11 -0
  312. package/ts_build/src/chat/modules/VoiceModule.js +57 -0
  313. package/ts_build/src/chat/modules/VoiceModule.js.map +1 -0
  314. package/ts_build/src/chat/types.d.ts +83 -0
  315. package/ts_build/src/chat/types.js +3 -0
  316. package/ts_build/src/chat/types.js.map +1 -0
  317. package/ts_build/src/chat.js +7 -1
  318. package/ts_build/src/chat.js.map +1 -1
  319. package/ts_build/src/chat2.d.ts +3 -0
  320. package/ts_build/src/chat2.js +47 -0
  321. package/ts_build/src/chat2.js.map +1 -0
  322. package/ts_build/src/cli.js +218 -37
  323. package/ts_build/src/cli.js.map +1 -1
  324. package/ts_build/src/clients/anthropic.d.ts +5 -2
  325. package/ts_build/src/clients/anthropic.js +12 -7
  326. package/ts_build/src/clients/anthropic.js.map +1 -1
  327. package/ts_build/src/clients/gemini.d.ts +6 -3
  328. package/ts_build/src/clients/gemini.js +13 -7
  329. package/ts_build/src/clients/gemini.js.map +1 -1
  330. package/ts_build/src/clients/http.d.ts +1 -0
  331. package/ts_build/src/clients/http.js +12 -5
  332. package/ts_build/src/clients/http.js.map +1 -1
  333. package/ts_build/src/clients/index.d.ts +10 -0
  334. package/ts_build/src/clients/index.js +74 -4
  335. package/ts_build/src/clients/index.js.map +1 -1
  336. package/ts_build/src/clients/knowhow.d.ts +3 -1
  337. package/ts_build/src/clients/knowhow.js +8 -2
  338. package/ts_build/src/clients/knowhow.js.map +1 -1
  339. package/ts_build/src/clients/knowhowMcp.d.ts +20 -0
  340. package/ts_build/src/clients/knowhowMcp.js +86 -0
  341. package/ts_build/src/clients/knowhowMcp.js.map +1 -0
  342. package/ts_build/src/clients/openai.d.ts +5 -2
  343. package/ts_build/src/clients/openai.js +29 -8
  344. package/ts_build/src/clients/openai.js.map +1 -1
  345. package/ts_build/src/clients/types.d.ts +1 -0
  346. package/ts_build/src/clients/xai.d.ts +5 -2
  347. package/ts_build/src/clients/xai.js +15 -5
  348. package/ts_build/src/clients/xai.js.map +1 -1
  349. package/ts_build/src/config.js +24 -3
  350. package/ts_build/src/config.js.map +1 -1
  351. package/ts_build/src/conversion.js +6 -4
  352. package/ts_build/src/conversion.js.map +1 -1
  353. package/ts_build/src/login.d.ts +1 -1
  354. package/ts_build/src/login.js +21 -7
  355. package/ts_build/src/login.js.map +1 -1
  356. package/ts_build/src/microphone.js.map +1 -1
  357. package/ts_build/src/plugins/downloader/downloader.d.ts +7 -5
  358. package/ts_build/src/plugins/downloader/downloader.js +147 -44
  359. package/ts_build/src/plugins/downloader/downloader.js.map +1 -1
  360. package/ts_build/src/plugins/downloader/plugin.js +5 -3
  361. package/ts_build/src/plugins/downloader/plugin.js.map +1 -1
  362. package/ts_build/src/plugins/plugins.js +3 -0
  363. package/ts_build/src/plugins/plugins.js.map +1 -1
  364. package/ts_build/src/processors/CustomVariables.d.ts +32 -0
  365. package/ts_build/src/processors/CustomVariables.js +297 -0
  366. package/ts_build/src/processors/CustomVariables.js.map +1 -0
  367. package/ts_build/src/processors/HarmonyToolProcessor.d.ts +15 -0
  368. package/ts_build/src/processors/HarmonyToolProcessor.js +154 -0
  369. package/ts_build/src/processors/HarmonyToolProcessor.js.map +1 -0
  370. package/ts_build/src/processors/XmlToolCallProcessor.d.ts +14 -0
  371. package/ts_build/src/processors/XmlToolCallProcessor.js +357 -0
  372. package/ts_build/src/processors/XmlToolCallProcessor.js.map +1 -0
  373. package/ts_build/src/processors/index.d.ts +3 -0
  374. package/ts_build/src/processors/index.js +7 -1
  375. package/ts_build/src/processors/index.js.map +1 -1
  376. package/ts_build/src/prompts/KnowhowConfigExamples.d.ts +2 -0
  377. package/ts_build/src/prompts/KnowhowConfigExamples.js +379 -0
  378. package/ts_build/src/prompts/KnowhowConfigExamples.js.map +1 -0
  379. package/ts_build/src/services/KnowhowClient.d.ts +22 -0
  380. package/ts_build/src/services/KnowhowClient.js +14 -2
  381. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  382. package/ts_build/src/services/Mcp.d.ts +1 -0
  383. package/ts_build/src/services/Mcp.js +20 -3
  384. package/ts_build/src/services/Mcp.js.map +1 -1
  385. package/ts_build/src/services/McpServer.d.ts +1 -1
  386. package/ts_build/src/services/McpServer.js +8 -4
  387. package/ts_build/src/services/McpServer.js.map +1 -1
  388. package/ts_build/src/services/McpWebsocketTransport.js +17 -7
  389. package/ts_build/src/services/McpWebsocketTransport.js.map +1 -1
  390. package/ts_build/src/services/MessageProcessor.d.ts +1 -1
  391. package/ts_build/src/services/MessageProcessor.js +4 -4
  392. package/ts_build/src/services/MessageProcessor.js.map +1 -1
  393. package/ts_build/src/services/index.d.ts +2 -0
  394. package/ts_build/src/services/index.js +4 -0
  395. package/ts_build/src/services/index.js.map +1 -1
  396. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +1 -0
  397. package/ts_build/src/services/script-execution/ScriptExecutor.js +23 -0
  398. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -1
  399. package/ts_build/src/services/types.d.ts +2 -6
  400. package/ts_build/src/services/types.js +4 -4
  401. package/ts_build/src/services/types.js.map +1 -1
  402. package/ts_build/src/types.d.ts +11 -0
  403. package/ts_build/src/types.js +8 -0
  404. package/ts_build/src/types.js.map +1 -1
  405. package/ts_build/src/utils/index.d.ts +2 -0
  406. package/ts_build/src/utils/index.js +102 -1
  407. package/ts_build/src/utils/index.js.map +1 -1
  408. package/ts_build/tests/XmlToolCallProcessor.test.d.ts +1 -0
  409. package/ts_build/tests/XmlToolCallProcessor.test.js +376 -0
  410. package/ts_build/tests/XmlToolCallProcessor.test.js.map +1 -0
  411. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.d.ts +1 -0
  412. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js +114 -0
  413. package/ts_build/tests/manual/ycmd/debug_diagnostics_test.js.map +1 -0
  414. package/ts_build/tests/manual/ycmd/minimal_advanced_test.d.ts +2 -0
  415. package/ts_build/tests/manual/ycmd/minimal_advanced_test.js +104 -0
  416. package/ts_build/tests/manual/ycmd/minimal_advanced_test.js.map +1 -0
  417. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.d.ts +1 -0
  418. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js +74 -0
  419. package/ts_build/tests/manual/ycmd/simple_diagnostics_test.js.map +1 -0
  420. package/ts_build/tests/manual/ycmd/simple_test.d.ts +2 -0
  421. package/ts_build/tests/manual/ycmd/simple_test.js +82 -0
  422. package/ts_build/tests/manual/ycmd/simple_test.js.map +1 -0
  423. package/ts_build/tests/manual/ycmd/test-typescript-sample.d.ts +14 -0
  424. package/ts_build/tests/manual/ycmd/test-typescript-sample.js +20 -0
  425. package/ts_build/tests/manual/ycmd/test-typescript-sample.js.map +1 -0
  426. package/ts_build/tests/manual/ycmd/test_advanced_features.d.ts +2 -0
  427. package/ts_build/tests/manual/ycmd/test_advanced_features.js +297 -0
  428. package/ts_build/tests/manual/ycmd/test_advanced_features.js.map +1 -0
  429. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.d.ts +3 -0
  430. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js +262 -0
  431. package/ts_build/tests/manual/ycmd/test_advanced_with_tools.js.map +1 -0
  432. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.d.ts +2 -0
  433. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js +186 -0
  434. package/ts_build/tests/manual/ycmd/test_comprehensive_typescript.js.map +1 -0
  435. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.d.ts +1 -0
  436. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js +174 -0
  437. package/ts_build/tests/manual/ycmd/test_diagnostics_file_changes.js.map +1 -0
  438. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.d.ts +2 -0
  439. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js +106 -0
  440. package/ts_build/tests/manual/ycmd/test_diagnostics_fix.js.map +1 -0
  441. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.d.ts +1 -0
  442. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js +104 -0
  443. package/ts_build/tests/manual/ycmd/test_diagnostics_simple.js.map +1 -0
  444. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.d.ts +1 -0
  445. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js +119 -0
  446. package/ts_build/tests/manual/ycmd/test_diagnostics_timing.js.map +1 -0
  447. package/ts_build/tests/manual/ycmd/test_discover_commands.d.ts +2 -0
  448. package/ts_build/tests/manual/ycmd/test_discover_commands.js +243 -0
  449. package/ts_build/tests/manual/ycmd/test_discover_commands.js.map +1 -0
  450. package/ts_build/tests/manual/ycmd/test_endpoints.d.ts +2 -0
  451. package/ts_build/tests/manual/ycmd/test_endpoints.js +120 -0
  452. package/ts_build/tests/manual/ycmd/test_endpoints.js.map +1 -0
  453. package/ts_build/tests/manual/ycmd/test_final_comprehensive.d.ts +2 -0
  454. package/ts_build/tests/manual/ycmd/test_final_comprehensive.js +221 -0
  455. package/ts_build/tests/manual/ycmd/test_final_comprehensive.js.map +1 -0
  456. package/ts_build/tests/manual/ycmd/test_final_validation.d.ts +2 -0
  457. package/ts_build/tests/manual/ycmd/test_final_validation.js +160 -0
  458. package/ts_build/tests/manual/ycmd/test_final_validation.js.map +1 -0
  459. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.d.ts +2 -0
  460. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js +37 -0
  461. package/ts_build/tests/manual/ycmd/test_individual_ycmd_tool.js.map +1 -0
  462. package/ts_build/tests/manual/ycmd/test_server_manager.d.ts +1 -0
  463. package/ts_build/tests/manual/ycmd/test_server_manager.js +38 -0
  464. package/ts_build/tests/manual/ycmd/test_server_manager.js.map +1 -0
  465. package/ts_build/tests/manual/ycmd/test_simple_debug.d.ts +2 -0
  466. package/ts_build/tests/manual/ycmd/test_simple_debug.js +99 -0
  467. package/ts_build/tests/manual/ycmd/test_simple_debug.js.map +1 -0
  468. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.d.ts +1 -0
  469. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js +128 -0
  470. package/ts_build/tests/manual/ycmd/test_tsserver_workflow.js.map +1 -0
  471. package/ts_build/tests/manual/ycmd/test_typescript_simple.d.ts +1 -0
  472. package/ts_build/tests/manual/ycmd/test_typescript_simple.js +66 -0
  473. package/ts_build/tests/manual/ycmd/test_typescript_simple.js.map +1 -0
  474. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.d.ts +1 -0
  475. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js +105 -0
  476. package/ts_build/tests/manual/ycmd/test_typescript_ycmd.js.map +1 -0
  477. package/ts_build/tests/manual/ycmd/test_workspace_config.d.ts +1 -0
  478. package/ts_build/tests/manual/ycmd/test_workspace_config.js +89 -0
  479. package/ts_build/tests/manual/ycmd/test_workspace_config.js.map +1 -0
  480. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.d.ts +2 -0
  481. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js +130 -0
  482. package/ts_build/tests/manual/ycmd/test_ycmd_auto_start.js.map +1 -0
  483. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.d.ts +1 -0
  484. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js +83 -0
  485. package/ts_build/tests/manual/ycmd/test_ycmd_comprehensive.js.map +1 -0
  486. package/ts_build/tests/manual/ycmd/test_ycmd_direct.d.ts +2 -0
  487. package/ts_build/tests/manual/ycmd/test_ycmd_direct.js +149 -0
  488. package/ts_build/tests/manual/ycmd/test_ycmd_direct.js.map +1 -0
  489. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.d.ts +15 -0
  490. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js +58 -0
  491. package/ts_build/tests/manual/ycmd/test_ycmd_experiment.js.map +1 -0
  492. package/ts_build/tests/manual/ycmd/test_ycmd_final.d.ts +2 -0
  493. package/ts_build/tests/manual/ycmd/test_ycmd_final.js +195 -0
  494. package/ts_build/tests/manual/ycmd/test_ycmd_final.js.map +1 -0
  495. package/ts_build/tests/manual/ycmd/test_ycmd_integration.d.ts +3 -0
  496. package/ts_build/tests/manual/ycmd/test_ycmd_integration.js +110 -0
  497. package/ts_build/tests/manual/ycmd/test_ycmd_integration.js.map +1 -0
  498. package/ts_build/tests/manual/ycmd/test_ycmd_simple.d.ts +2 -0
  499. package/ts_build/tests/manual/ycmd/test_ycmd_simple.js +36 -0
  500. package/ts_build/tests/manual/ycmd/test_ycmd_simple.js.map +1 -0
  501. package/ts_build/tests/manual/ycmd/working_simple_test.d.ts +2 -0
  502. package/ts_build/tests/manual/ycmd/working_simple_test.js +134 -0
  503. package/ts_build/tests/manual/ycmd/working_simple_test.js.map +1 -0
  504. package/tsconfig.json +3 -1
@@ -16,6 +16,11 @@ class BaseAgent {
16
16
  currentModelPreferenceIndex = 0;
17
17
  easyFinalAnswer = false;
18
18
  requiredToolNames = ["finalAnswer"];
19
+ maxTurns = null;
20
+ maxSpend = null;
21
+ maxRunTimeMs = null;
22
+ startTimeMs = null;
23
+ turnCount = 0;
19
24
  totalCostUsd = 0;
20
25
  currentThread = 0;
21
26
  threads = [];
@@ -36,20 +41,28 @@ class BaseAgent {
36
41
  tools;
37
42
  events;
38
43
  messageProcessor;
44
+ clientService;
39
45
  disabledTools = [];
40
46
  constructor(context) {
41
47
  this.tools = context.Tools;
42
48
  this.events = context.Events;
43
- this.messageProcessor = context.messageProcessor;
49
+ this.messageProcessor = context.messageProcessor || new MessageProcessor_1.MessageProcessor();
50
+ this.clientService = context.Clients || clients_1.Clients;
44
51
  if (!this.tools) {
45
52
  throw new Error("ToolsService is required for BaseAgent");
46
53
  }
47
54
  if (!this.events) {
48
55
  throw new Error("EventService is required for BaseAgent");
49
56
  }
50
- if (!this.messageProcessor) {
51
- this.messageProcessor = new MessageProcessor_1.MessageProcessor();
52
- }
57
+ }
58
+ setMaxTurns(maxTurns) {
59
+ this.maxTurns = maxTurns;
60
+ }
61
+ setMaxSpend(maxSpend) {
62
+ this.maxSpend = maxSpend;
63
+ }
64
+ setMaxRunTime(maxRunTimeMs) {
65
+ this.maxRunTimeMs = maxRunTimeMs;
53
66
  }
54
67
  newTask() {
55
68
  this.currentThread = 0;
@@ -58,6 +71,8 @@ class BaseAgent {
58
71
  this.summaries = [];
59
72
  this.totalCostUsd = 0;
60
73
  this.status = "in_progress";
74
+ this.turnCount = 0;
75
+ this.startTimeMs = Date.now();
61
76
  }
62
77
  register() {
63
78
  this.events.registerAgent(this);
@@ -94,7 +109,8 @@ class BaseAgent {
94
109
  }
95
110
  getClient() {
96
111
  if (!this.client) {
97
- this.client = clients_1.Clients.getClient(this.provider)?.client;
112
+ console.log("Getting client for provider", this.provider);
113
+ this.client = this.clientService.getClient(this.provider)?.client;
98
114
  }
99
115
  return this.client;
100
116
  }
@@ -123,6 +139,30 @@ class BaseAgent {
123
139
  this.disabledTools = this.disabledTools.filter((t) => t !== toolName);
124
140
  }
125
141
  }
142
+ checkLimits() {
143
+ if (this.maxTurns !== null && this.turnCount >= this.maxTurns) {
144
+ console.log(`Turn limit reached: ${this.turnCount}/${this.maxTurns}`);
145
+ return true;
146
+ }
147
+ if (this.maxSpend !== null && this.totalCostUsd >= this.maxSpend) {
148
+ console.log(`Spend limit reached: $${this.totalCostUsd.toFixed(4)}/$${this.maxSpend.toFixed(4)}`);
149
+ return true;
150
+ }
151
+ if (this.maxRunTimeMs !== null && this.startTimeMs !== null) {
152
+ const currentRunTimeMs = Date.now() - this.startTimeMs;
153
+ if (currentRunTimeMs >= this.maxRunTimeMs) {
154
+ console.log(`Runtime limit reached: ${currentRunTimeMs}ms/${this.maxRunTimeMs}ms`);
155
+ return true;
156
+ }
157
+ }
158
+ return false;
159
+ }
160
+ shouldTerminateFromLimits() {
161
+ return this.checkLimits();
162
+ }
163
+ getTurnCount() {
164
+ return this.turnCount;
165
+ }
126
166
  adjustTotalCostUsd(cost) {
127
167
  if (cost) {
128
168
  this.totalCostUsd += cost;
@@ -253,6 +293,23 @@ class BaseAgent {
253
293
  });
254
294
  });
255
295
  }
296
+ async resume(resumeReason) {
297
+ const reason = resumeReason ? `Reason for resuming: ${resumeReason}` : "";
298
+ const resumePrompt = `We are resuming a previously started task. Here's the context:
299
+ ORIGINAL REQUEST:
300
+ ${this.taskBreakdown}
301
+
302
+ LAST Progress State:
303
+ ${JSON.stringify(this.threads[this.currentThread], null, 2)}
304
+
305
+ Please continue from where you left off and complete the original request.
306
+ ${reason}
307
+
308
+ `;
309
+ const lastThread = this.threads[this.currentThread] || [];
310
+ this.status = "in_progress";
311
+ this.call(resumePrompt, lastThread);
312
+ }
256
313
  async kill() {
257
314
  console.log("Killing agent");
258
315
  this.agentEvents.emit(this.eventTypes.kill, this);
@@ -267,6 +324,16 @@ class BaseAgent {
267
324
  await this.unpaused();
268
325
  }
269
326
  await this.selectHealthyModel();
327
+ this.turnCount++;
328
+ if (this.shouldTerminateFromLimits()) {
329
+ const currentRunTimeMs = this.startTimeMs
330
+ ? Date.now() - this.startTimeMs
331
+ : 0;
332
+ const limitMsg = `Task terminated due to limits reached. Turn: ${this.turnCount}/${this.maxTurns || "unlimited"}, Cost: $${this.totalCostUsd.toFixed(4)}/${this.maxSpend ? "$" + this.maxSpend.toFixed(4) : "unlimited"}, Runtime: ${currentRunTimeMs}ms/${this.maxRunTimeMs ? this.maxRunTimeMs + "ms" : "unlimited"}`;
333
+ this.status = this.eventTypes.done;
334
+ this.agentEvents.emit(this.eventTypes.done, limitMsg);
335
+ return limitMsg;
336
+ }
270
337
  try {
271
338
  const model = this.getModel();
272
339
  let messages = _messages || (await this.getInitialMessages(userInput));
@@ -282,7 +349,7 @@ class BaseAgent {
282
349
  const isMissingTool = this.isRequiredToolMissing();
283
350
  const startIndex = 0;
284
351
  const endIndex = messages.length;
285
- messages = await this.messageProcessor.processMessages(messages, "per_call");
352
+ messages = await this.messageProcessor.processMessages(messages, "pre_call");
286
353
  const compressThreshold = 10000;
287
354
  const response = await this.getClient().createChatCompletion({
288
355
  model,
@@ -291,18 +358,17 @@ class BaseAgent {
291
358
  tool_choice: "auto",
292
359
  });
293
360
  if (response?.usd_cost === undefined) {
294
- console.warn("Response cost is undefined", response);
361
+ console.warn("Response cost is undefined", JSON.stringify(response, null, 2));
295
362
  }
296
363
  this.adjustTotalCostUsd(response?.usd_cost);
297
- this.logMessages(response.choices.map((c) => c.message));
298
- const firstMessage = response.choices[0].message;
299
- const newToolCalls = response.choices.flatMap((c) => c.message.tool_calls);
300
364
  for (const choice of response.choices) {
301
- const responseMessage = choice.message;
302
- console.log(responseMessage);
303
- const toolCalls = responseMessage.tool_calls;
304
- if (responseMessage.tool_calls) {
305
- messages.push(responseMessage);
365
+ messages.push(choice.message);
366
+ messages = await this.messageProcessor.processMessages(messages, "post_call");
367
+ const lastMessage = messages[messages.length - 1];
368
+ this.logMessages([lastMessage]);
369
+ const toolCalls = lastMessage.tool_calls;
370
+ if (lastMessage.tool_calls) {
371
+ messages = await this.messageProcessor.processMessages(messages, "pre_tools");
306
372
  for (const toolCall of toolCalls) {
307
373
  const toolMessages = await this.processToolMessages(toolCall);
308
374
  messages.push(...toolMessages);
@@ -311,29 +377,35 @@ class BaseAgent {
311
377
  if (finalMessage) {
312
378
  const doneMsg = finalMessage.content || "Done";
313
379
  this.agentEvents.emit(this.eventTypes.done, doneMsg);
380
+ this.status = this.eventTypes.done;
314
381
  return doneMsg;
315
382
  }
316
383
  }
317
384
  }
318
385
  }
386
+ const newToolCalls = response.choices.flatMap((c) => c.message.tool_calls);
319
387
  if (newToolCalls && newToolCalls.length > 0) {
320
- messages = await this.messageProcessor.processMessages(messages, "post_call");
388
+ messages = await this.messageProcessor.processMessages(messages, "post_tools");
321
389
  }
390
+ const firstMessage = response.choices[0].message;
322
391
  if (response.choices.length === 1 &&
323
392
  firstMessage.content &&
324
393
  this.easyFinalAnswer) {
394
+ this.status = this.eventTypes.done;
325
395
  this.agentEvents.emit(this.eventTypes.done, firstMessage.content);
326
396
  return firstMessage.content;
327
397
  }
328
398
  if (isMissingTool) {
329
399
  const error = `Required tool: ${JSON.stringify(this.requiredToolNames)} not available, options are ${this.getEnabledToolNames().join(", ")}`;
330
400
  console.error(error);
401
+ this.status = this.eventTypes.done;
331
402
  this.agentEvents.emit(this.eventTypes.done, error);
332
403
  return error;
333
404
  }
334
- if (this.pendingUserMessages.length === 0 && this.status === "killed") {
405
+ if (this.pendingUserMessages.length === 0 &&
406
+ this.status === this.eventTypes.kill) {
335
407
  console.log("Agent killed, stopping execution");
336
- this.status = "killed";
408
+ this.status = this.eventTypes.done;
337
409
  this.agentEvents.emit(this.eventTypes.done, firstMessage.content);
338
410
  return firstMessage.content;
339
411
  }
@@ -346,9 +418,33 @@ class BaseAgent {
346
418
  }
347
419
  if (["assistant", "tool"].includes(messages[messages.length - 1].role)) {
348
420
  console.log("Agent continuing to the next iteration, reminding agent how to terminate");
421
+ const remainingTime = this.maxRunTimeMs && this.startTimeMs
422
+ ? this.maxRunTimeMs - (Date.now() - this.startTimeMs)
423
+ : null;
424
+ const remainingTurns = this.maxTurns
425
+ ? this.maxTurns - this.turnCount
426
+ : null;
427
+ const timeRemainsingMsg = remainingTime
428
+ ? `You have approximately ${Math.floor(remainingTime / 1000)} seconds remaining for this task. `
429
+ : "";
430
+ const turnsRemainingMsg = remainingTurns
431
+ ? `You have ${remainingTurns} turns remaining. `
432
+ : "";
433
+ const remainingBudget = this.maxSpend
434
+ ? this.maxSpend - this.totalCostUsd
435
+ : null;
436
+ const budgetRemainingMsg = remainingBudget
437
+ ? `You have $${remainingBudget.toFixed(4)} remaining in your budget.`
438
+ : "";
439
+ const continuation = `<Workflow>
440
+ workflow continues until you call one of ${this.requiredToolNames}.\n
441
+ ${timeRemainsingMsg}
442
+ ${turnsRemainingMsg}
443
+ ${budgetRemainingMsg}
444
+ </Workflow>`;
349
445
  messages.push({
350
446
  role: "user",
351
- content: `<Workflow>workflow continues until you call on of ${this.requiredToolNames}. Any continuation messages should be enclosed in workflow tags to hide intermediate work from users.</Workflow>`,
447
+ content: continuation,
352
448
  });
353
449
  }
354
450
  this.updateCurrentThread(messages);
@@ -365,7 +461,12 @@ class BaseAgent {
365
461
  }
366
462
  }
367
463
  addPendingUserMessage(message) {
368
- this.pendingUserMessages.push(message);
464
+ if (this.status === this.eventTypes.done) {
465
+ this.resume(JSON.stringify(message.content));
466
+ }
467
+ else {
468
+ this.pendingUserMessages.push(message);
469
+ }
369
470
  }
370
471
  getMessagesLength(messages) {
371
472
  return JSON.stringify(messages).split(" ").length;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const BASE_PROMPT = "\n#Knowhow Codebase Agent.\nYou use the tools to read and write code, to help the developer implement features faster.\n\n# Completing your work\n\nYou always call finalAnswer once you have finished implementing or answering what is requested.\nAs an agent you will receive multiple rounds of input until you call finalAnswer.\nYou are not able to request feedback from the user, so proceed with your plans and the developer will contact you afterwards if they need more help.\n\n## Modification Guidelines\n\nAfter modifying files, you will read them to ensure they look correct before calling finalAnswer.\nYou always check your modifications for syntax errors or bugs.\nYou always use writeFileChunk for small files, and for larger files you use the patchFile tool, if available, to make the smallest modifications required to files, rather than outputting the entire file.\nYou think step by step about the blocks of code you're modifying.\nYou may use the execCommand tool to navigate the filesystem and to create new folders if needed.\nYou may use the execCommand tool to use git to view which changes have been made so far via git diff and git status.\n\n# PLUGINS REMINDER:\n\nPlugins are used to automatically expand user input with more context.\nThe additional context could be from embeddings, files, pull requests, tickets etc.\nDo not assume the plugin information contains all the information you require to accomplish a task.\nBe sure to consider tools that you may use to supplement what the plugins initially provided.\n";
1
+ export declare const BASE_PROMPT = "\n#Knowhow Codebase Agent.\nYou use the tools to read and write code, to help the developer implement features faster.\n\n# Completing your work\n\nYou always call finalAnswer once you have finished implementing or answering what is requested.\nAs an agent you will receive multiple rounds of input until you call finalAnswer.\nYou are not able to request feedback from the user, so proceed with your plans and the developer will contact you afterwards if they need more help.\n\n## Modification Guidelines\n\nAfter modifying files, you will read them to ensure they look correct before calling finalAnswer.\nYou always check your modifications for syntax errors or bugs.\nYou always use writeFileChunk for small files, and for larger files you use the patchFile tool, if available, to make the smallest modifications required to files, rather than outputting the entire file.\nYou think step by step about the blocks of code you're modifying.\nYou may use the execCommand tool to navigate the filesystem and to create new folders if needed.\nYou may use the execCommand tool to use git to view which changes have been made so far via git diff and git status.\n\n# Creative Tool Usage Examples\n\nBeyond basic file editing, consider these powerful tool combinations:\n\n## String Replace Tool\n- **Bulk renaming**: Use stringReplace across multiple files to rename variables, functions, or imports\n- **Configuration updates**: Replace API endpoints, version numbers, or feature flags across the codebase\n- **Dependency updates**: Update import paths when reorganizing code structure\n\n## YCMD Language Server Integration\n- **Find all references**: Use ycmdGoTo with GoToReferences to find every usage of a function before refactoring\n- **Auto-complete exploration**: Use ycmdCompletion to discover available methods/properties on objects\n- **Smart navigation**: Use ycmdGoTo with GoToDefinition to understand code structure before making changes\n- **Error-driven development**: Use ycmdDiagnostics to identify compilation errors and fix them systematically\n- **Intelligent renaming**: Use ycmdRefactor with RefactorRename for safe symbol renaming across files\n\n## Search and Analysis Workflows\n- **Impact analysis**: Use textSearch + ycmdGoTo to understand how changes will affect the codebase\n- **Pattern discovery**: Use embeddingSearch to find similar code patterns when implementing new features\n- **Code exploration**: Combine fileSearch + readFile + ycmdCompletion to understand unfamiliar codebases\n\n## Advanced Combinations\n- **Refactoring workflow**: ycmdDiagnostics \u2192 ycmdGoTo \u2192 stringReplace \u2192 ycmdDiagnostics (verify fixes)\n- **Feature implementation**: embeddingSearch \u2192 ycmdCompletion \u2192 patchFile \u2192 ycmdDiagnostics\n- **Code cleanup**: textSearch \u2192 ycmdRefactor (organize imports) \u2192 stringReplace (standardize patterns)\n\nThink creatively about tool combinations - each tool can amplify the others' effectiveness!\n\n# PLUGINS REMINDER:\n\nPlugins are used to automatically expand user input with more context.\nThe additional context could be from embeddings, files, pull requests, tickets etc.\nDo not assume the plugin information contains all the information you require to accomplish a task.\nBe sure to consider tools that you may use to supplement what the plugins initially provided.\n";
@@ -20,6 +20,34 @@ You think step by step about the blocks of code you're modifying.
20
20
  You may use the execCommand tool to navigate the filesystem and to create new folders if needed.
21
21
  You may use the execCommand tool to use git to view which changes have been made so far via git diff and git status.
22
22
 
23
+ # Creative Tool Usage Examples
24
+
25
+ Beyond basic file editing, consider these powerful tool combinations:
26
+
27
+ ## String Replace Tool
28
+ - **Bulk renaming**: Use stringReplace across multiple files to rename variables, functions, or imports
29
+ - **Configuration updates**: Replace API endpoints, version numbers, or feature flags across the codebase
30
+ - **Dependency updates**: Update import paths when reorganizing code structure
31
+
32
+ ## YCMD Language Server Integration
33
+ - **Find all references**: Use ycmdGoTo with GoToReferences to find every usage of a function before refactoring
34
+ - **Auto-complete exploration**: Use ycmdCompletion to discover available methods/properties on objects
35
+ - **Smart navigation**: Use ycmdGoTo with GoToDefinition to understand code structure before making changes
36
+ - **Error-driven development**: Use ycmdDiagnostics to identify compilation errors and fix them systematically
37
+ - **Intelligent renaming**: Use ycmdRefactor with RefactorRename for safe symbol renaming across files
38
+
39
+ ## Search and Analysis Workflows
40
+ - **Impact analysis**: Use textSearch + ycmdGoTo to understand how changes will affect the codebase
41
+ - **Pattern discovery**: Use embeddingSearch to find similar code patterns when implementing new features
42
+ - **Code exploration**: Combine fileSearch + readFile + ycmdCompletion to understand unfamiliar codebases
43
+
44
+ ## Advanced Combinations
45
+ - **Refactoring workflow**: ycmdDiagnostics → ycmdGoTo → stringReplace → ycmdDiagnostics (verify fixes)
46
+ - **Feature implementation**: embeddingSearch → ycmdCompletion → patchFile → ycmdDiagnostics
47
+ - **Code cleanup**: textSearch → ycmdRefactor (organize imports) → stringReplace (standardize patterns)
48
+
49
+ Think creatively about tool combinations - each tool can amplify the others' effectiveness!
50
+
23
51
  # PLUGINS REMINDER:
24
52
 
25
53
  Plugins are used to automatically expand user input with more context.
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/agents/base/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1B,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/agents/base/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD1B,CAAC"}
@@ -2,6 +2,7 @@ import { AgentContext } from "./base/base";
2
2
  import { DeveloperAgent } from "./developer/developer";
3
3
  import { PatchingAgent } from "./patcher/patcher";
4
4
  import { ResearcherAgent } from "./researcher/researcher";
5
+ import { SetupAgent } from "./setup/setup";
5
6
  export { BaseAgent } from "./base/base";
6
7
  export { ConfigAgent } from "./configurable/ConfigAgent";
7
8
  export { DeveloperAgent };
@@ -14,4 +15,5 @@ export declare function agents(agentContext?: AgentContext): {
14
15
  Developer: DeveloperAgent;
15
16
  Patcher: PatchingAgent;
16
17
  Researcher: ResearcherAgent;
18
+ Setup: SetupAgent;
17
19
  };
@@ -33,6 +33,7 @@ Object.defineProperty(exports, "DeveloperAgent", { enumerable: true, get: functi
33
33
  const patcher_1 = require("./patcher/patcher");
34
34
  Object.defineProperty(exports, "PatchingAgent", { enumerable: true, get: function () { return patcher_1.PatchingAgent; } });
35
35
  const researcher_1 = require("./researcher/researcher");
36
+ const setup_1 = require("./setup/setup");
36
37
  var base_1 = require("./base/base");
37
38
  Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return base_1.BaseAgent; } });
38
39
  var ConfigAgent_1 = require("./configurable/ConfigAgent");
@@ -48,6 +49,7 @@ function agents(agentContext = (0, services_1.services)()) {
48
49
  Developer: new developer_1.DeveloperAgent(agentContext),
49
50
  Patcher: new patcher_1.PatchingAgent(agentContext),
50
51
  Researcher: new researcher_1.ResearcherAgent(agentContext),
52
+ Setup: new setup_1.SetupAgent(agentContext),
51
53
  };
52
54
  }
53
55
  return singletons;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AAEvC,qDAAuD;AAM9C,+FANA,0BAAc,OAMA;AALvB,+CAAkD;AAMzC,8FANA,uBAAa,OAMA;AALtB,wDAA0D;AAE1D,oCAAwC;AAA/B,iGAAA,SAAS,OAAA;AAClB,0DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAKpB,0DAAwC;AAExC,iDAAiC;AACjC,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AAEtB,IAAI,UAAU,GAAG,EAIhB,CAAC;AAEF,SAAgB,MAAM,CAAC,eAA6B,IAAA,mBAAQ,GAAE;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,UAAU,GAAG;YACX,SAAS,EAAE,IAAI,0BAAc,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,IAAI,uBAAa,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,IAAI,4BAAe,CAAC,YAAY,CAAC;SAC9C,CAAC;KACH;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,wBASC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AAEvC,qDAAuD;AAO9C,+FAPA,0BAAc,OAOA;AANvB,+CAAkD;AAOzC,8FAPA,uBAAa,OAOA;AANtB,wDAA0D;AAC1D,yCAA2C;AAE3C,oCAAwC;AAA/B,iGAAA,SAAS,OAAA;AAClB,0DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAKpB,0DAAwC;AAExC,iDAAiC;AACjC,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AAEtB,IAAI,UAAU,GAAG,EAKhB,CAAC;AAEF,SAAgB,MAAM,CAAC,eAA6B,IAAA,mBAAQ,GAAE;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,UAAU,GAAG;YACX,SAAS,EAAE,IAAI,0BAAc,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,IAAI,uBAAa,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,IAAI,4BAAe,CAAC,YAAY,CAAC;YAC7C,KAAK,EAAE,IAAI,kBAAU,CAAC,YAAY,CAAC;SACpC,CAAC;KACH;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAVD,wBAUC"}
@@ -75,12 +75,10 @@ class PatchingAgent extends base_1.BaseAgent {
75
75
  description = `This agent is prepared to work on the codebase by leveraging patches`;
76
76
  constructor(context) {
77
77
  super(context);
78
- this.disableTool("sendVimInput");
79
- this.disableTool("openFileInVim");
80
78
  this.setModelPreferences([
81
79
  { model: ai_1.Models.anthropic.Sonnet4, provider: "anthropic" },
82
80
  {
83
- model: ai_1.Models.openai.GPT_41,
81
+ model: ai_1.Models.openai.GPT_41_Mini,
84
82
  provider: "openai",
85
83
  },
86
84
  ]);
@@ -94,6 +92,11 @@ class PatchingAgent extends base_1.BaseAgent {
94
92
  ${systemReminder}
95
93
 
96
94
  Specialization: Patcher Agent, ${this.description}
95
+
96
+ # Language Server Integration:
97
+ Use ycmd tools (ycmdDiagnostics, ycmdCompletion, ycmdRefactor, ycmdGoTo) to get error diagnostics, code completions, refactor symbols, and navigate definitions before making changes.
98
+ This helps ensure accurate modifications and can suggest fixes for compilation errors.
99
+
97
100
  IF you fail twice to patch a file, you may switch using writeFileChunk to rewrite the whole file.
98
101
  `,
99
102
  },
@@ -1 +1 @@
1
- {"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../../src/agents/patcher/patcher.ts"],"names":[],"mappings":";;;AACA,uCAAuD;AACvD,2CAA6C;AAC7C,iCAAkC;AAElC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCf,CAAC;AAEF,MAAM,cAAc,GAAG;;EAErB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAC;AAEF,MAAa,aAAc,SAAQ,gBAAS;IAC1C,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,sEAAsE,CAAC;IAErF,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAElC,IAAI,CAAC,mBAAmB,CAAC;YACvB,EAAE,KAAK,EAAE,WAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;YAC1D;gBACE,KAAK,EAAE,WAAM,CAAC,MAAM,CAAC,MAAM;gBAC3B,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,oBAAW;;UAErB,cAAc;;yCAEiB,IAAI,CAAC,WAAW;;SAEhD;aACF;YAED,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACxB,CAAC;IACjB,CAAC;CACF;AAlCD,sCAkCC"}
1
+ {"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../../src/agents/patcher/patcher.ts"],"names":[],"mappings":";;;AACA,uCAAuD;AACvD,2CAA6C;AAC7C,iCAAkC;AAElC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCf,CAAC;AAEF,MAAM,cAAc,GAAG;;EAErB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAC;AAEF,MAAa,aAAc,SAAQ,gBAAS;IAC1C,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,sEAAsE,CAAC;IAErF,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,mBAAmB,CAAC;YACvB,EAAE,KAAK,EAAE,WAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;YAC1D;gBACE,KAAK,EAAE,WAAM,CAAC,MAAM,CAAC,WAAW;gBAChC,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,oBAAW;;UAErB,cAAc;;yCAEiB,IAAI,CAAC,WAAW;;;;;;;SAOhD;aACF;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACxB,CAAC;IACjB,CAAC;CACF;AApCD,sCAoCC"}
@@ -0,0 +1,8 @@
1
+ import { Message } from "../../clients/types";
2
+ import { AgentContext, BaseAgent } from "../base/base";
3
+ export declare class SetupAgent extends BaseAgent {
4
+ name: string;
5
+ description: string;
6
+ constructor(context: AgentContext);
7
+ getInitialMessages(userInput: string): Promise<Message[]>;
8
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SetupAgent = void 0;
7
+ const base_1 = require("../base/base");
8
+ const prompt_1 = require("../base/prompt");
9
+ const KnowhowConfigExamples_1 = __importDefault(require("../../prompts/KnowhowConfigExamples"));
10
+ const ai_1 = require("../../ai");
11
+ class SetupAgent extends base_1.BaseAgent {
12
+ name = "Setup";
13
+ description = `This agent is great for setting up knowhow`;
14
+ constructor(context) {
15
+ super(context);
16
+ this.setModelPreferences([
17
+ { model: ai_1.Models.anthropic.Sonnet4, provider: "anthropic" },
18
+ {
19
+ model: ai_1.Models.openai.GPT_41_Mini,
20
+ provider: "openai",
21
+ },
22
+ ]);
23
+ }
24
+ async getInitialMessages(userInput) {
25
+ return [
26
+ {
27
+ role: "system",
28
+ content: `${prompt_1.BASE_PROMPT}
29
+
30
+ You are the Knowhow Setup agent, you work with the user to help setup their config to get the most out of knowhow.
31
+
32
+ Here are some config examples: ${KnowhowConfigExamples_1.default}
33
+
34
+ Use the tools to analyze the codebase and help the user setup embeddings and mcp servers or any other config features, like linters etc
35
+
36
+ If the user asks about a mcp that we don't have in the config you can google it and figure out what the configuration would look like to add it.
37
+
38
+ If the task is for how to do something, you should ask the user if they want you to do it for them by using the askHuman tool. For isntance, how coul d I hook up this agent to gmail, you would research the mcp options for gmail, and then ask them if they'd like for you to update the config with whatever options you found.
39
+
40
+ Always ask the user to approve what you're going to do to the config, that way you can get feedback via askHuman before modifying the config
41
+
42
+ When setting up the language plugin for a user you should come up with phrases they're likely to say, like frontend/backend/schema etc that will signal we should load in guides or rules for that type of task. You should put any of your rules/analses in .knowhow/docs and the language plugin should reference those.
43
+
44
+ If a user is vauge about setting up, you should give them some options of what all you could help them setup with a brief explanation of what those setups would enable.
45
+
46
+ Only suggest embeddings that include a folder path with many elements, ie src/**/*.ts, never suggest entries with one element
47
+
48
+ If a user is requesting help with setting up a coding project, you can look at their package.json to setup the lintCommands so that we get feedback on file edits, and embeddings for the source code as those two features are the highest impact
49
+
50
+ If the user just says setup fast, try to get a general idea of the project file structure and setup one source code embedding for the whole codebaseand linter commands if possible. Try not do dig too deep if they want fast, just get the highest impact features setup
51
+
52
+ `,
53
+ },
54
+ { role: "user", content: userInput },
55
+ ];
56
+ }
57
+ }
58
+ exports.SetupAgent = SetupAgent;
59
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/agents/setup/setup.ts"],"names":[],"mappings":";;;;;;AACA,uCAAuD;AACvD,2CAA6C;AAC7C,gGAAiE;AACjE,iCAAkC;AAElC,MAAa,UAAW,SAAQ,gBAAS;IACvC,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,4CAA4C,CAAC;IAE3D,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,mBAAmB,CAAC;YACvB,EAAE,KAAK,EAAE,WAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;YAC1D;gBACE,KAAK,EAAE,WAAM,CAAC,MAAM,CAAC,WAAW;gBAChC,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,oBAAW;;;;yCAIU,+BAAc;;;;;;;;;;;;;;;;;;;;SAoB9C;aACF;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACxB,CAAC;IACjB,CAAC;CACF;AAjDD,gCAiDC"}
@@ -7,8 +7,11 @@ async function agentCall(agentName, userInput) {
7
7
  const config = await (0, config_1.getConfig)();
8
8
  const toolService = this;
9
9
  const { Events, Plugins } = toolService.getContext();
10
- const pluginText = await Plugins.callMany(config.plugins, userInput);
11
- const fullPrompt = `${userInput} \n ${pluginText}`;
10
+ let fullPrompt = `${userInput}`;
11
+ if (config.plugins?.length) {
12
+ const pluginText = await Plugins.callMany(config.plugins, userInput);
13
+ fullPrompt += `\n ${pluginText}`;
14
+ }
12
15
  Events.emit("agents:call", {
13
16
  name: agentName,
14
17
  query: fullPrompt,
@@ -1 +1 @@
1
- {"version":3,"file":"agentCall.js","sourceRoot":"","sources":["../../../../src/agents/tools/agentCall.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAGlC,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,SAAiB;IAClE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAoB,CAAC;QAEzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,GAAG,SAAS,OAAO,UAAU,EAAE,CAAC;QAEnD,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,OAAO;YACP,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,8BAgBC"}
1
+ {"version":3,"file":"agentCall.js","sourceRoot":"","sources":["../../../../src/agents/tools/agentCall.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAGlC,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,SAAiB;IAClE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAoB,CAAC;QAEzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAErD,IAAI,UAAU,GAAG,GAAG,SAAS,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;YAC1B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACrE,UAAU,IAAI,MAAM,UAAU,EAAE,CAAC;SAClC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,OAAO;YACP,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AApBD,8BAoBC"}
@@ -1,6 +1,7 @@
1
+ import { ToolsService } from "../../services/Tools";
1
2
  import { CompletionOptions, CompletionResponse, EmbeddingOptions, EmbeddingResponse } from "../../clients/types";
2
- export declare function createAiCompletion(provider: string, options: CompletionOptions): Promise<CompletionResponse>;
3
- export declare function createEmbedding(provider: string, options: EmbeddingOptions): Promise<EmbeddingResponse>;
4
- export declare function listModelsForProvider(provider: string): Promise<string[]>;
5
- export declare function listAllModels(): Promise<Record<string, string[]>>;
6
- export declare function listAllProviders(): Promise<string[]>;
3
+ export declare function createAiCompletion(this: ToolsService, provider: string, options: CompletionOptions): Promise<CompletionResponse>;
4
+ export declare function createEmbedding(this: ToolsService, provider: string, options: EmbeddingOptions): Promise<EmbeddingResponse>;
5
+ export declare function listModelsForProvider(this: ToolsService, provider: string): Promise<string[]>;
6
+ export declare function listAllModels(this: ToolsService): Promise<Record<string, string[]>>;
7
+ export declare function listAllProviders(this: ToolsService): Promise<string[]>;
@@ -1,25 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listAllProviders = exports.listAllModels = exports.listModelsForProvider = exports.createEmbedding = exports.createAiCompletion = void 0;
4
- const clients_1 = require("../../clients");
4
+ const Tools_1 = require("../../services/Tools");
5
+ const services_1 = require("../../services");
5
6
  function createAiCompletion(provider, options) {
6
- return clients_1.Clients.createCompletion(provider, options);
7
+ const toolService = (this instanceof Tools_1.ToolsService ? this : (0, services_1.services)().Tools);
8
+ const toolContext = toolService.getContext();
9
+ const { Clients: contextClients } = toolContext;
10
+ if (!contextClients) {
11
+ throw new Error("Clients not available in tool context");
12
+ }
13
+ return contextClients.createCompletion(provider, options);
7
14
  }
8
15
  exports.createAiCompletion = createAiCompletion;
9
16
  function createEmbedding(provider, options) {
10
- return clients_1.Clients.createEmbedding(provider, options);
17
+ const toolService = (this instanceof Tools_1.ToolsService ? this : (0, services_1.services)().Tools);
18
+ const toolContext = toolService.getContext();
19
+ const { Clients: contextClients } = toolContext;
20
+ if (!contextClients) {
21
+ throw new Error("Clients not available in tool context");
22
+ }
23
+ return contextClients.createEmbedding(provider, options);
11
24
  }
12
25
  exports.createEmbedding = createEmbedding;
13
26
  async function listModelsForProvider(provider) {
14
- return clients_1.Clients.getRegisteredModels(provider);
27
+ const toolService = (this instanceof Tools_1.ToolsService ? this : (0, services_1.services)().Tools);
28
+ const toolContext = toolService.getContext();
29
+ const { Clients: contextClients } = toolContext;
30
+ if (!contextClients) {
31
+ throw new Error("Clients not available in tool context");
32
+ }
33
+ return contextClients.getRegisteredModels(provider);
15
34
  }
16
35
  exports.listModelsForProvider = listModelsForProvider;
17
36
  async function listAllModels() {
18
- return clients_1.Clients.listAllModels();
37
+ const toolService = (this instanceof Tools_1.ToolsService ? this : (0, services_1.services)().Tools);
38
+ const toolContext = toolService.getContext();
39
+ const { Clients: contextClients } = toolContext;
40
+ if (!contextClients) {
41
+ throw new Error("Clients not available in tool context");
42
+ }
43
+ return contextClients.listAllModels();
19
44
  }
20
45
  exports.listAllModels = listAllModels;
21
46
  async function listAllProviders() {
22
- return clients_1.Clients.listAllProviders();
47
+ const toolService = (this instanceof Tools_1.ToolsService ? this : (0, services_1.services)().Tools);
48
+ const toolContext = toolService.getContext();
49
+ const { Clients: contextClients } = toolContext;
50
+ if (!contextClients) {
51
+ throw new Error("Clients not available in tool context");
52
+ }
53
+ return contextClients.listAllProviders();
23
54
  }
24
55
  exports.listAllProviders = listAllProviders;
25
56
  //# sourceMappingURL=aiClient.js.map