@tyvm/knowhow 0.0.33 → 0.0.34

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 +147 -21
  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 +980 -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 +72 -24
  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 +14 -1
  177. package/ts_build/src/agents/base/base.js +91 -17
  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 +56 -0
  291. package/ts_build/src/chat/modules/AgentModule.js +705 -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 +4 -5
  358. package/ts_build/src/plugins/downloader/downloader.js +55 -26
  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;
@@ -267,6 +307,15 @@ class BaseAgent {
267
307
  await this.unpaused();
268
308
  }
269
309
  await this.selectHealthyModel();
310
+ this.turnCount++;
311
+ if (this.shouldTerminateFromLimits()) {
312
+ const currentRunTimeMs = this.startTimeMs
313
+ ? Date.now() - this.startTimeMs
314
+ : 0;
315
+ 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"}`;
316
+ this.agentEvents.emit(this.eventTypes.done, limitMsg);
317
+ return limitMsg;
318
+ }
270
319
  try {
271
320
  const model = this.getModel();
272
321
  let messages = _messages || (await this.getInitialMessages(userInput));
@@ -282,7 +331,7 @@ class BaseAgent {
282
331
  const isMissingTool = this.isRequiredToolMissing();
283
332
  const startIndex = 0;
284
333
  const endIndex = messages.length;
285
- messages = await this.messageProcessor.processMessages(messages, "per_call");
334
+ messages = await this.messageProcessor.processMessages(messages, "pre_call");
286
335
  const compressThreshold = 10000;
287
336
  const response = await this.getClient().createChatCompletion({
288
337
  model,
@@ -291,18 +340,17 @@ class BaseAgent {
291
340
  tool_choice: "auto",
292
341
  });
293
342
  if (response?.usd_cost === undefined) {
294
- console.warn("Response cost is undefined", response);
343
+ console.warn("Response cost is undefined", JSON.stringify(response, null, 2));
295
344
  }
296
345
  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
346
  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);
347
+ messages.push(choice.message);
348
+ messages = await this.messageProcessor.processMessages(messages, "post_call");
349
+ const lastMessage = messages[messages.length - 1];
350
+ this.logMessages([lastMessage]);
351
+ const toolCalls = lastMessage.tool_calls;
352
+ if (lastMessage.tool_calls) {
353
+ messages = await this.messageProcessor.processMessages(messages, "pre_tools");
306
354
  for (const toolCall of toolCalls) {
307
355
  const toolMessages = await this.processToolMessages(toolCall);
308
356
  messages.push(...toolMessages);
@@ -316,9 +364,11 @@ class BaseAgent {
316
364
  }
317
365
  }
318
366
  }
367
+ const newToolCalls = response.choices.flatMap((c) => c.message.tool_calls);
319
368
  if (newToolCalls && newToolCalls.length > 0) {
320
- messages = await this.messageProcessor.processMessages(messages, "post_call");
369
+ messages = await this.messageProcessor.processMessages(messages, "post_tools");
321
370
  }
371
+ const firstMessage = response.choices[0].message;
322
372
  if (response.choices.length === 1 &&
323
373
  firstMessage.content &&
324
374
  this.easyFinalAnswer) {
@@ -346,9 +396,33 @@ class BaseAgent {
346
396
  }
347
397
  if (["assistant", "tool"].includes(messages[messages.length - 1].role)) {
348
398
  console.log("Agent continuing to the next iteration, reminding agent how to terminate");
399
+ const remainingTime = this.maxRunTimeMs && this.startTimeMs
400
+ ? this.maxRunTimeMs - (Date.now() - this.startTimeMs)
401
+ : null;
402
+ const remainingTurns = this.maxTurns
403
+ ? this.maxTurns - this.turnCount
404
+ : null;
405
+ const timeRemainsingMsg = remainingTime
406
+ ? `You have approximately ${Math.floor(remainingTime / 1000)} seconds remaining for this task. `
407
+ : "";
408
+ const turnsRemainingMsg = remainingTurns
409
+ ? `You have ${remainingTurns} turns remaining. `
410
+ : "";
411
+ const remainingBudget = this.maxSpend
412
+ ? this.maxSpend - this.totalCostUsd
413
+ : null;
414
+ const budgetRemainingMsg = remainingBudget
415
+ ? `You have $${remainingBudget.toFixed(4)} remaining in your budget.`
416
+ : "";
417
+ const continuation = `<Workflow>
418
+ workflow continues until you call one of ${this.requiredToolNames}.\n
419
+ ${timeRemainsingMsg}
420
+ ${turnsRemainingMsg}
421
+ ${budgetRemainingMsg}
422
+ </Workflow>`;
349
423
  messages.push({
350
424
  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>`,
425
+ content: continuation,
352
426
  });
353
427
  }
354
428
  this.updateCurrentThread(messages);
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAUtC,uCAIqB;AAErB,2CAAkD;AAClD,iCAAkC;AAClC,sEAAmE;AAcnE,MAAsB,SAAS;IAIrB,MAAM,GAAG,aAAa,CAAC;IACvB,mBAAmB,GAAW,CAAC,CAAC;IAC9B,QAAQ,GAAG,QAAQ,CAAC;IACpB,SAAS,GAAW,WAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,MAAM,GAAyB,IAAI,CAAC;IACpC,gBAAgB,GAAsB,EAAE,CAAC;IACzC,2BAA2B,GAAG,CAAC,CAAC;IAChC,eAAe,GAAG,KAAK,CAAC;IACxB,iBAAiB,GAAG,CAAC,aAAa,CAAC,CAAC;IACpC,YAAY,GAAG,CAAC,CAAC;IACjB,aAAa,GAAG,CAAC,CAAC;IAClB,OAAO,GAAG,EAAiB,CAAC;IAC5B,mBAAmB,GAAG,EAAe,CAAC;IACtC,aAAa,GAAG,EAAE,CAAC;IACnB,SAAS,GAAG,EAAc,CAAC;IAE9B,WAAW,GAAG,IAAI,qBAAY,EAAE,CAAC;IACjC,UAAU,GAAG;QAClB,SAAS,EAAE,YAAY;QACvB,YAAY,EAAE,eAAe;QAC7B,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;KACnB,CAAC;IACK,KAAK,CAAe;IACpB,MAAM,CAAe;IACrB,gBAAgB,CAAmB;IAE1C,aAAa,GAAG,EAAE,CAAC;IAEnB,YAAY,OAAqB;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;SAChD;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,KAAwB;QAC1C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;IACH,CAAC;IAED,iBAAiB,CAAC,KAAsB;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YACpE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,KAAmC;QAC7C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;SACxD;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,KAAc;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,KAAK;aACd,QAAQ,EAAE;aACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;SACvE;IACH,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC7B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACtE;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,QAAmB;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,QAAmB;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAID,KAAK,CAAC,mBAAmB,CAAC,QAAkB;QAC1C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC9D,QAAQ,EACR,IAAI,CAAC,mBAAmB,EAAE,CAC3B,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC9C,QAAQ;YACR,YAAY;SACb,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,QAAmB;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAC9B;SACF;IACH,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAClC,OAAO,IAAA,8BAAsB,EAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAA,8BAAsB,EAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,mBAAmB,CAAC,QAAmB;QACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,CAAC;YACJ,OAAO,EACL,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,CAAC,CAAC,OAAO;SAChB,CAAC,CAAc,CAAC;IACnB,CAAC;IAED,oBAAoB,CAAC,QAAmB;QACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,CAAC;YACJ,OAAO,EACL,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClC,CAAC,CAAC,CAAC,CAAC,OAAO;SAChB,CAAC,CAAc,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI;YACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC;gBAClE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACtB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,mBAAmB,GAAG,EAAE,GAAG,IAAI,EAAE;YACtD,OAAO;SACR;QAED,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,OAAO,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;SACpC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,qBAAqB;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAC3D,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAA,mBAAW,EAAC,CAAC,CAAC,CAAC,CAClD,CAAC;QAEF,IAAI,qBAAqB,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CAAC,GAAG,CACT,uDAAuD,EACvD,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,CAAC,iBAAiB,CACvB,CAAC;QAGF,MAAM,WAAW,GAAG,aAAa,CAAC;QAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAGxE,IAAI,cAAc,IAAI,CAAC,mBAAmB,EAAE;YAC1C,OAAO,CAAC,IAAI,CACV,mEAAmE,CACpE,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,qBAAqB,CAAC;YACzB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,iEAAiE,IAAI,CAAC,iBAAiB,gDAAgD;SACtI,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,SAAqB;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACzC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvB;QAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,QAAQ,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;YAGvE,IAAI,CAAC,SAAS,EAAE;gBACd,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;aACH;YAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;gBACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC3C,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;aAC/B;YAED,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAEnD,MAAM,UAAU,GAAG,CAAC,CAAC;YACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAGjC,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACpD,QAAQ,EACR,UAAU,CACX,CAAC;YACF,MAAM,iBAAiB,GAAG,KAAK,CAAC;YAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC;gBAC3D,KAAK;gBACL,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;gBAC7B,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;YAEH,IAAI,QAAQ,EAAE,QAAQ,KAAK,SAAS,EAAE;gBACpC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;aACtD;YAED,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAEzD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAC5B,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAE7B,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;gBAC7C,IAAI,eAAe,CAAC,UAAU,EAAE;oBAE9B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAE/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;wBAChC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;wBAE9D,QAAQ,CAAC,IAAI,CAAC,GAAI,YAA0B,CAAC,CAAC;wBAE9C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;4BACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAA,mBAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;wBAEF,IAAI,YAAY,EAAE;4BAChB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC;4BAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;4BACrD,OAAO,OAAO,CAAC;yBAChB;qBACF;iBACF;aACF;YAGD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACpD,QAAQ,EACR,WAAW,CACZ,CAAC;aACH;YAGD,IACE,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC7B,YAAY,CAAC,OAAO;gBACpB,IAAI,CAAC,eAAe,EACpB;gBACA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO,YAAY,CAAC,OAAO,CAAC;aAC7B;YAGD,IAAI,aAAa,EAAE;gBACjB,MAAM,KAAK,GAAG,kBAAkB,IAAI,CAAC,SAAS,CAC5C,IAAI,CAAC,iBAAiB,CACvB,+BAA+B,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnD,OAAO,KAAK,CAAC;aACd;YAGD,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACrE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO,YAAY,CAAC,OAAO,CAAC;aAC7B;YAED,IACE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,iBAAiB;gBACpD,QAAQ,CAAC,MAAM,GAAG,EAAE,EACpB;gBACA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CACT,sBAAsB,EACtB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAChC,SAAS,EACT,iBAAiB,CAClB,CAAC;gBACF,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACvE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAEtE,OAAO,CAAC,GAAG,CACT,0EAA0E,CAC3E,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,qDAAqD,IAAI,CAAC,iBAAiB,kHAAkH;iBACvM,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACxC;YAED,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,CAAC,OAAO,CAAC;SAClB;IACH,CAAC;IAED,qBAAqB,CAAC,OAAgB;QACpC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,QAAmB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAmB;QACxC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QAED,MAAM,UAAU,GAAG;;;;;;;qBAOF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC;YAC3D,KAAK;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,UAAU;iBACpB;aACF;YACD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACzD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAmB,EACnB,UAAkB,EAClB,QAAgB;QAEhB,OAAO,CAAC,GAAG,CACT,2BAA2B,EAC3B,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,QAAQ,CAAC,MAAM,CAChB,CAAC;QACF,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG;;;;;;;;;kCASK,IAAI,CAAC,aAAa;;;;OAI7C,CAAC;QAEJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC;YAC3D,KAAK;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,gBAAgB;iBAC1B;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAElC,MAAM,aAAa,GAAG;YACpB;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;;UAEP,IAAI,CAAC,aAAa;;;UAGlB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;;SAG1B;aACF;SACW,CAAC;QACf,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG;YAClB,GAAG,cAAc;YACjB,GAAG,aAAa;YAChB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,CACvB,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;YACrC,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEb,OAAO,CAAC,GAAG,CACT,0BAA0B,EAC1B,SAAS,EACT,IAAI,EACJ,SAAS,EACT,gBAAgB,GAAG,GAAG,EACtB,mBAAmB,CACpB,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA7mBD,8BA6mBC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"aiClient.js","sourceRoot":"","sources":["../../../../src/agents/tools/aiClient.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AASxC,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,OAA0B;IAE1B,OAAO,iBAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AALD,gDAKC;AAED,SAAgB,eAAe,CAC7B,QAAgB,EAChB,OAAyB;IAEzB,OAAO,iBAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AALD,0CAKC;AAEM,KAAK,UAAU,qBAAqB,CACzC,QAAgB;IAEhB,OAAO,iBAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAJD,sDAIC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,iBAAO,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC;AAFD,sCAEC;AAEM,KAAK,UAAU,gBAAgB;IACpC,OAAO,iBAAO,CAAC,gBAAgB,EAAE,CAAC;AACpC,CAAC;AAFD,4CAEC"}
1
+ {"version":3,"file":"aiClient.js","sourceRoot":"","sources":["../../../../src/agents/tools/aiClient.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAQpD,6CAA0C;AAE1C,SAAgB,kBAAkB,CAEhC,QAAgB,EAChB,OAA0B;IAG1B,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,oBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAEhD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,OAAO,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAlBD,gDAkBC;AAED,SAAgB,eAAe,CAE7B,QAAgB,EAChB,OAAyB;IAGzB,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,oBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAEhD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,OAAO,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAlBD,0CAkBC;AAEM,KAAK,UAAU,qBAAqB,CAEzC,QAAgB;IAGhB,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,oBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAEhD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,OAAO,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAjBD,sDAiBC;AAEM,KAAK,UAAU,aAAa;IAIjC,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,oBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAEhD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,OAAO,cAAc,CAAC,aAAa,EAAE,CAAC;AACxC,CAAC;AAhBD,sCAgBC;AAEM,KAAK,UAAU,gBAAgB;IAEpC,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,oBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAEhD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,OAAO,cAAc,CAAC,gBAAgB,EAAE,CAAC;AAC3C,CAAC;AAdD,4CAcC"}
@@ -1,6 +1,6 @@
1
1
  export interface ExecCommandOptions {
2
2
  timeout?: number;
3
- killOnTimeout?: boolean;
3
+ continueInBackground?: boolean;
4
4
  waitForCompletion?: boolean;
5
5
  }
6
- export declare const execCommand: (command: string, timeout?: number, killOnTimeout?: boolean, waitForCompletion?: boolean) => Promise<string>;
6
+ export declare const execCommand: (command: string, timeout?: number, continueInBackground?: boolean, waitForCompletion?: boolean) => Promise<string>;
@@ -5,9 +5,8 @@ const child_process_1 = require("child_process");
5
5
  const util_1 = require("util");
6
6
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
7
7
  const execWithTimeout = async (command, options = {}) => {
8
- const { timeout, killOnTimeout = false } = options;
9
- const { waitForCompletion = !timeout } = options;
10
- if (!timeout || waitForCompletion) {
8
+ const { timeout = 5000, continueInBackground = false, waitForCompletion = false } = options;
9
+ if (waitForCompletion === true) {
11
10
  try {
12
11
  const result = await execAsync(command);
13
12
  return { ...result, timedOut: false, killed: false };
@@ -41,7 +40,7 @@ const execWithTimeout = async (command, options = {}) => {
41
40
  }
42
41
  });
43
42
  const timeoutId = setTimeout(() => {
44
- if (killOnTimeout) {
43
+ if (!continueInBackground) {
45
44
  childProcess.kill("SIGTERM");
46
45
  setTimeout(() => {
47
46
  if (!childProcess.killed) {
@@ -69,12 +68,12 @@ const execWithTimeout = async (command, options = {}) => {
69
68
  });
70
69
  });
71
70
  };
72
- const execCommand = async (command, timeout, killOnTimeout, waitForCompletion) => {
71
+ const execCommand = async (command, timeout, continueInBackground, waitForCompletion) => {
73
72
  let output = "";
74
73
  console.log("execCommand:", command);
75
74
  const { stdout, stderr, timedOut, killed } = await execWithTimeout(command, {
76
75
  timeout,
77
- killOnTimeout,
76
+ continueInBackground,
78
77
  waitForCompletion,
79
78
  });
80
79
  if (stderr) {