@tyvm/knowhow 0.0.1

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 (492) hide show
  1. package/.vscode/launch.json +14 -0
  2. package/CONFIG.md +336 -0
  3. package/README.md +49 -0
  4. package/autodoc/chat.mdx +20 -0
  5. package/autodoc/cli.mdx +11 -0
  6. package/autodoc/plugins/asana.mdx +47 -0
  7. package/autodoc/plugins/downloader/downloader.mdx +38 -0
  8. package/autodoc/plugins/downloader/plugin.mdx +37 -0
  9. package/autodoc/plugins/downloader/types.mdx +42 -0
  10. package/autodoc/plugins/embedding.mdx +41 -0
  11. package/autodoc/plugins/figma.mdx +45 -0
  12. package/autodoc/plugins/github.mdx +40 -0
  13. package/autodoc/plugins/jira.mdx +46 -0
  14. package/autodoc/plugins/language.mdx +37 -0
  15. package/autodoc/plugins/linear.mdx +35 -0
  16. package/autodoc/plugins/notion.mdx +38 -0
  17. package/autodoc/plugins/plugins.mdx +59 -0
  18. package/autodoc/plugins/types.mdx +51 -0
  19. package/autodoc/plugins/vim.mdx +39 -0
  20. package/autodoc/tools/addInternalTools.mdx +1 -0
  21. package/autodoc/tools/agentCall.mdx +1 -0
  22. package/autodoc/tools/asana/definitions.mdx +10 -0
  23. package/autodoc/tools/asana/index.mdx +12 -0
  24. package/autodoc/tools/askHuman.mdx +1 -0
  25. package/autodoc/tools/callPlugin.mdx +1 -0
  26. package/autodoc/tools/embeddingSearch.mdx +1 -0
  27. package/autodoc/tools/execCommand.mdx +1 -0
  28. package/autodoc/tools/fileSearch.mdx +1 -0
  29. package/autodoc/tools/finalAnswer.mdx +1 -0
  30. package/autodoc/tools/github/definitions.mdx +6 -0
  31. package/autodoc/tools/github/index.mdx +8 -0
  32. package/autodoc/tools/index.mdx +14 -0
  33. package/autodoc/tools/lintFile.mdx +7 -0
  34. package/autodoc/tools/list.mdx +16 -0
  35. package/autodoc/tools/modifyFile.mdx +7 -0
  36. package/autodoc/tools/patch.mdx +9 -0
  37. package/autodoc/tools/readBlocks.mdx +1 -0
  38. package/autodoc/tools/readFile.mdx +1 -0
  39. package/autodoc/tools/scanFile.mdx +1 -0
  40. package/autodoc/tools/textSearch.mdx +6 -0
  41. package/autodoc/tools/types/fileblock.mdx +1 -0
  42. package/autodoc/tools/visionTool.mdx +1 -0
  43. package/autodoc/tools/writeFile.mdx +1 -0
  44. package/jest.config.js +18 -0
  45. package/package.json +89 -0
  46. package/src/agents/base/base.ts +619 -0
  47. package/src/agents/base/prompt.ts +26 -0
  48. package/src/agents/configurable/ConfigAgent.ts +23 -0
  49. package/src/agents/developer/developer.ts +69 -0
  50. package/src/agents/index.ts +8 -0
  51. package/src/agents/interface.ts +11 -0
  52. package/src/agents/patcher/codebase.md +27 -0
  53. package/src/agents/patcher/patcher.ts +110 -0
  54. package/src/agents/researcher/researcher.ts +109 -0
  55. package/src/agents/tools/addInternalTools.ts +21 -0
  56. package/src/agents/tools/agentCall.ts +18 -0
  57. package/src/agents/tools/aiClient.ts +36 -0
  58. package/src/agents/tools/asana/definitions.ts +199 -0
  59. package/src/agents/tools/asana/index.ts +108 -0
  60. package/src/agents/tools/askHuman.ts +8 -0
  61. package/src/agents/tools/callPlugin.ts +4 -0
  62. package/src/agents/tools/embeddingSearch.ts +5 -0
  63. package/src/agents/tools/execCommand.ts +26 -0
  64. package/src/agents/tools/fileSearch.ts +33 -0
  65. package/src/agents/tools/finalAnswer.ts +4 -0
  66. package/src/agents/tools/github/definitions.ts +89 -0
  67. package/src/agents/tools/github/index.ts +67 -0
  68. package/src/agents/tools/googleSearch.ts +242 -0
  69. package/src/agents/tools/index.ts +24 -0
  70. package/src/agents/tools/language/definitions.ts +97 -0
  71. package/src/agents/tools/language/index.ts +19 -0
  72. package/src/agents/tools/lintFile.ts +17 -0
  73. package/src/agents/tools/list.ts +514 -0
  74. package/src/agents/tools/loadWebpage.ts +129 -0
  75. package/src/agents/tools/modifyFile.ts +53 -0
  76. package/src/agents/tools/patch.ts +672 -0
  77. package/src/agents/tools/readBlocks.ts +41 -0
  78. package/src/agents/tools/readFile.ts +39 -0
  79. package/src/agents/tools/scanFile.ts +16 -0
  80. package/src/agents/tools/textSearch.ts +21 -0
  81. package/src/agents/tools/types/fileblock.ts +5 -0
  82. package/src/agents/tools/visionTool.ts +5 -0
  83. package/src/agents/tools/writeFile.ts +46 -0
  84. package/src/agents/vim/vim.ts +153 -0
  85. package/src/ai.ts +167 -0
  86. package/src/chat.ts +412 -0
  87. package/src/cli.ts +85 -0
  88. package/src/clients/anthropic.ts +399 -0
  89. package/src/clients/gemini.ts +486 -0
  90. package/src/clients/http.ts +107 -0
  91. package/src/clients/index.ts +183 -0
  92. package/src/clients/knowhow.ts +33 -0
  93. package/src/clients/openai.ts +253 -0
  94. package/src/clients/types.ts +91 -0
  95. package/src/clients/xai.ts +132 -0
  96. package/src/config.ts +211 -0
  97. package/src/conversion.ts +140 -0
  98. package/src/dataset/diffs/README.md +12 -0
  99. package/src/dataset/diffs/debug-errors.ts +29 -0
  100. package/src/dataset/diffs/debug.ts +64 -0
  101. package/src/dataset/diffs/generate.ts +71 -0
  102. package/src/dataset/diffs/jsonl.ts +54 -0
  103. package/src/dataset/diffs/test.ts +193 -0
  104. package/src/embeddings.ts +411 -0
  105. package/src/hashes.ts +67 -0
  106. package/src/index.ts +376 -0
  107. package/src/login.ts +78 -0
  108. package/src/microphone.ts +136 -0
  109. package/src/modules/index.ts +37 -0
  110. package/src/modules/types.ts +48 -0
  111. package/src/plugins/asana.ts +134 -0
  112. package/src/plugins/downloader/downloader.ts +204 -0
  113. package/src/plugins/downloader/plugin.ts +85 -0
  114. package/src/plugins/downloader/types.ts +85 -0
  115. package/src/plugins/embedding.ts +42 -0
  116. package/src/plugins/figma.ts +137 -0
  117. package/src/plugins/github.ts +153 -0
  118. package/src/plugins/jira.ts +104 -0
  119. package/src/plugins/language.ts +100 -0
  120. package/src/plugins/linear.ts +219 -0
  121. package/src/plugins/notion.ts +170 -0
  122. package/src/plugins/plugins.ts +56 -0
  123. package/src/plugins/types.ts +5 -0
  124. package/src/plugins/url.ts +63 -0
  125. package/src/plugins/vim.ts +73 -0
  126. package/src/prompts/BasicCodeDocumenter.ts +1 -0
  127. package/src/prompts/BasicProjectDocumenter.ts +1 -0
  128. package/src/prompts/EmbeddingSeachHelper.ts +1 -0
  129. package/src/prompts/index.ts +9 -0
  130. package/src/server/index.ts +14 -0
  131. package/src/services/AgentService.ts +98 -0
  132. package/src/services/EmbeddingService.ts +410 -0
  133. package/src/services/EventService.ts +20 -0
  134. package/src/services/GitHub.ts +60 -0
  135. package/src/services/KnowhowClient.ts +113 -0
  136. package/src/services/Mcp.ts +270 -0
  137. package/src/services/McpServer.ts +119 -0
  138. package/src/services/McpWebsocketTransport.ts +64 -0
  139. package/src/services/S3.ts +126 -0
  140. package/src/services/Tools.ts +65 -0
  141. package/src/services/flags.ts +52 -0
  142. package/src/services/index.ts +8 -0
  143. package/src/types.ts +225 -0
  144. package/src/utils/index.ts +108 -0
  145. package/src/worker.ts +80 -0
  146. package/tests/integration/figma.test.ts +70 -0
  147. package/tests/integration/fileblocks/readwrite.test.ts +95 -0
  148. package/tests/integration/patching/input.txt +145 -0
  149. package/tests/integration/patching/output.txt +145 -0
  150. package/tests/integration/patching/patch.txt +15 -0
  151. package/tests/integration/patching/unseen.txt +80 -0
  152. package/tests/integration/patching.test.ts +136 -0
  153. package/tests/languagePlugin.test.ts +74 -0
  154. package/tests/patching/corrupted.test.ts +78 -0
  155. package/tests/patching/imports.patch.txt +11 -0
  156. package/tests/patching/imports.test.ts +43 -0
  157. package/tests/patching/imports.txt +11 -0
  158. package/tests/patching/interface.patch.txt +15 -0
  159. package/tests/patching/interface.txt +7 -0
  160. package/tests/test.spec.ts +132 -0
  161. package/ts_build/src/agents/base/base.d.ts +88 -0
  162. package/ts_build/src/agents/base/base.js +464 -0
  163. package/ts_build/src/agents/base/base.js.map +1 -0
  164. package/ts_build/src/agents/base/prompt.d.ts +1 -0
  165. package/ts_build/src/agents/base/prompt.js +30 -0
  166. package/ts_build/src/agents/base/prompt.js.map +1 -0
  167. package/ts_build/src/agents/configurable/ConfigAgent.d.ts +10 -0
  168. package/ts_build/src/agents/configurable/ConfigAgent.js +25 -0
  169. package/ts_build/src/agents/configurable/ConfigAgent.js.map +1 -0
  170. package/ts_build/src/agents/configurable/OpenAIAgent.d.ts +0 -0
  171. package/ts_build/src/agents/configurable/OpenAIAgent.js +1 -0
  172. package/ts_build/src/agents/configurable/OpenAIAgent.js.map +1 -0
  173. package/ts_build/src/agents/developer/developer.d.ts +9 -0
  174. package/ts_build/src/agents/developer/developer.js +69 -0
  175. package/ts_build/src/agents/developer/developer.js.map +1 -0
  176. package/ts_build/src/agents/index.d.ts +7 -0
  177. package/ts_build/src/agents/index.js +38 -0
  178. package/ts_build/src/agents/index.js.map +1 -0
  179. package/ts_build/src/agents/interface.d.ts +10 -0
  180. package/ts_build/src/agents/interface.js +3 -0
  181. package/ts_build/src/agents/interface.js.map +1 -0
  182. package/ts_build/src/agents/patcher/patcher.d.ts +9 -0
  183. package/ts_build/src/agents/patcher/patcher.js +106 -0
  184. package/ts_build/src/agents/patcher/patcher.js.map +1 -0
  185. package/ts_build/src/agents/researcher/researcher.d.ts +9 -0
  186. package/ts_build/src/agents/researcher/researcher.js +107 -0
  187. package/ts_build/src/agents/researcher/researcher.js.map +1 -0
  188. package/ts_build/src/agents/tools/addInternalTools.d.ts +5 -0
  189. package/ts_build/src/agents/tools/addInternalTools.js +18 -0
  190. package/ts_build/src/agents/tools/addInternalTools.js.map +1 -0
  191. package/ts_build/src/agents/tools/agentCall.d.ts +1 -0
  192. package/ts_build/src/agents/tools/agentCall.js +21 -0
  193. package/ts_build/src/agents/tools/agentCall.js.map +1 -0
  194. package/ts_build/src/agents/tools/aiClient.d.ts +6 -0
  195. package/ts_build/src/agents/tools/aiClient.js +25 -0
  196. package/ts_build/src/agents/tools/aiClient.js.map +1 -0
  197. package/ts_build/src/agents/tools/asana/definitions.d.ts +202 -0
  198. package/ts_build/src/agents/tools/asana/definitions.js +197 -0
  199. package/ts_build/src/agents/tools/asana/definitions.js.map +1 -0
  200. package/ts_build/src/agents/tools/asana/index.d.ts +8 -0
  201. package/ts_build/src/agents/tools/asana/index.js +98 -0
  202. package/ts_build/src/agents/tools/asana/index.js.map +1 -0
  203. package/ts_build/src/agents/tools/askHuman.d.ts +1 -0
  204. package/ts_build/src/agents/tools/askHuman.js +15 -0
  205. package/ts_build/src/agents/tools/askHuman.js.map +1 -0
  206. package/ts_build/src/agents/tools/callPlugin.d.ts +1 -0
  207. package/ts_build/src/agents/tools/callPlugin.js +9 -0
  208. package/ts_build/src/agents/tools/callPlugin.js.map +1 -0
  209. package/ts_build/src/agents/tools/client.d.ts +5 -0
  210. package/ts_build/src/agents/tools/client.js +21 -0
  211. package/ts_build/src/agents/tools/client.js.map +1 -0
  212. package/ts_build/src/agents/tools/embeddingSearch.d.ts +1 -0
  213. package/ts_build/src/agents/tools/embeddingSearch.js +9 -0
  214. package/ts_build/src/agents/tools/embeddingSearch.js.map +1 -0
  215. package/ts_build/src/agents/tools/execCommand.d.ts +1 -0
  216. package/ts_build/src/agents/tools/execCommand.js +25 -0
  217. package/ts_build/src/agents/tools/execCommand.js.map +1 -0
  218. package/ts_build/src/agents/tools/fileSearch.d.ts +1 -0
  219. package/ts_build/src/agents/tools/fileSearch.js +31 -0
  220. package/ts_build/src/agents/tools/fileSearch.js.map +1 -0
  221. package/ts_build/src/agents/tools/finalAnswer.d.ts +1 -0
  222. package/ts_build/src/agents/tools/finalAnswer.js +8 -0
  223. package/ts_build/src/agents/tools/finalAnswer.js.map +1 -0
  224. package/ts_build/src/agents/tools/github/definitions.d.ts +47 -0
  225. package/ts_build/src/agents/tools/github/definitions.js +86 -0
  226. package/ts_build/src/agents/tools/github/definitions.js.map +1 -0
  227. package/ts_build/src/agents/tools/github/index.d.ts +789 -0
  228. package/ts_build/src/agents/tools/github/index.js +56 -0
  229. package/ts_build/src/agents/tools/github/index.js.map +1 -0
  230. package/ts_build/src/agents/tools/googleSearch.d.ts +93 -0
  231. package/ts_build/src/agents/tools/googleSearch.js +117 -0
  232. package/ts_build/src/agents/tools/googleSearch.js.map +1 -0
  233. package/ts_build/src/agents/tools/googleSearchTypes.d.ts +74 -0
  234. package/ts_build/src/agents/tools/googleSearchTypes.js +3 -0
  235. package/ts_build/src/agents/tools/googleSearchTypes.js.map +1 -0
  236. package/ts_build/src/agents/tools/index.d.ts +24 -0
  237. package/ts_build/src/agents/tools/index.js +41 -0
  238. package/ts_build/src/agents/tools/index.js.map +1 -0
  239. package/ts_build/src/agents/tools/language/definitions.d.ts +89 -0
  240. package/ts_build/src/agents/tools/language/definitions.js +95 -0
  241. package/ts_build/src/agents/tools/language/definitions.js.map +1 -0
  242. package/ts_build/src/agents/tools/language/index.d.ts +4 -0
  243. package/ts_build/src/agents/tools/language/index.js +22 -0
  244. package/ts_build/src/agents/tools/language/index.js.map +1 -0
  245. package/ts_build/src/agents/tools/lintFile.d.ts +1 -0
  246. package/ts_build/src/agents/tools/lintFile.js +22 -0
  247. package/ts_build/src/agents/tools/lintFile.js.map +1 -0
  248. package/ts_build/src/agents/tools/list.d.ts +2 -0
  249. package/ts_build/src/agents/tools/list.js +505 -0
  250. package/ts_build/src/agents/tools/list.js.map +1 -0
  251. package/ts_build/src/agents/tools/loadWebpage.d.ts +8 -0
  252. package/ts_build/src/agents/tools/loadWebpage.js +97 -0
  253. package/ts_build/src/agents/tools/loadWebpage.js.map +1 -0
  254. package/ts_build/src/agents/tools/modifyFile.d.ts +2 -0
  255. package/ts_build/src/agents/tools/modifyFile.js +74 -0
  256. package/ts_build/src/agents/tools/modifyFile.js.map +1 -0
  257. package/ts_build/src/agents/tools/patch.d.ts +21 -0
  258. package/ts_build/src/agents/tools/patch.js +443 -0
  259. package/ts_build/src/agents/tools/patch.js.map +1 -0
  260. package/ts_build/src/agents/tools/readBlocks.d.ts +2 -0
  261. package/ts_build/src/agents/tools/readBlocks.js +59 -0
  262. package/ts_build/src/agents/tools/readBlocks.js.map +1 -0
  263. package/ts_build/src/agents/tools/readFile.d.ts +1 -0
  264. package/ts_build/src/agents/tools/readFile.js +46 -0
  265. package/ts_build/src/agents/tools/readFile.js.map +1 -0
  266. package/ts_build/src/agents/tools/scanFile.d.ts +1 -0
  267. package/ts_build/src/agents/tools/scanFile.js +36 -0
  268. package/ts_build/src/agents/tools/scanFile.js.map +1 -0
  269. package/ts_build/src/agents/tools/textSearch.d.ts +1 -0
  270. package/ts_build/src/agents/tools/textSearch.js +22 -0
  271. package/ts_build/src/agents/tools/textSearch.js.map +1 -0
  272. package/ts_build/src/agents/tools/types/fileblock.d.ts +5 -0
  273. package/ts_build/src/agents/tools/types/fileblock.js +3 -0
  274. package/ts_build/src/agents/tools/types/fileblock.js.map +1 -0
  275. package/ts_build/src/agents/tools/visionTool.d.ts +1 -0
  276. package/ts_build/src/agents/tools/visionTool.js +9 -0
  277. package/ts_build/src/agents/tools/visionTool.js.map +1 -0
  278. package/ts_build/src/agents/tools/writeFile.d.ts +2 -0
  279. package/ts_build/src/agents/tools/writeFile.js +61 -0
  280. package/ts_build/src/agents/tools/writeFile.js.map +1 -0
  281. package/ts_build/src/agents/vim/vim.d.ts +14 -0
  282. package/ts_build/src/agents/vim/vim.js +171 -0
  283. package/ts_build/src/agents/vim/vim.js.map +1 -0
  284. package/ts_build/src/ai.d.ts +10 -0
  285. package/ts_build/src/ai.js +102 -0
  286. package/ts_build/src/ai.js.map +1 -0
  287. package/ts_build/src/chat.d.ts +13 -0
  288. package/ts_build/src/chat.js +319 -0
  289. package/ts_build/src/chat.js.map +1 -0
  290. package/ts_build/src/cli.d.ts +2 -0
  291. package/ts_build/src/cli.js +98 -0
  292. package/ts_build/src/cli.js.map +1 -0
  293. package/ts_build/src/clients/anthropic.d.ts +31 -0
  294. package/ts_build/src/clients/anthropic.js +344 -0
  295. package/ts_build/src/clients/anthropic.js.map +1 -0
  296. package/ts_build/src/clients/gemini.d.ts +20 -0
  297. package/ts_build/src/clients/gemini.js +347 -0
  298. package/ts_build/src/clients/gemini.js.map +1 -0
  299. package/ts_build/src/clients/http.d.ts +12 -0
  300. package/ts_build/src/clients/http.js +91 -0
  301. package/ts_build/src/clients/http.js.map +1 -0
  302. package/ts_build/src/clients/index.d.ts +47 -0
  303. package/ts_build/src/clients/index.js +143 -0
  304. package/ts_build/src/clients/index.js.map +1 -0
  305. package/ts_build/src/clients/knowhow.d.ts +10 -0
  306. package/ts_build/src/clients/knowhow.js +24 -0
  307. package/ts_build/src/clients/knowhow.js.map +1 -0
  308. package/ts_build/src/clients/openai.d.ts +20 -0
  309. package/ts_build/src/clients/openai.js +221 -0
  310. package/ts_build/src/clients/openai.js.map +1 -0
  311. package/ts_build/src/clients/types.d.ts +89 -0
  312. package/ts_build/src/clients/types.js +3 -0
  313. package/ts_build/src/clients/types.js.map +1 -0
  314. package/ts_build/src/clients/xai.d.ts +22 -0
  315. package/ts_build/src/clients/xai.js +108 -0
  316. package/ts_build/src/clients/xai.js.map +1 -0
  317. package/ts_build/src/config.d.ts +9 -0
  318. package/ts_build/src/config.js +216 -0
  319. package/ts_build/src/config.js.map +1 -0
  320. package/ts_build/src/conversion.d.ts +7 -0
  321. package/ts_build/src/conversion.js +114 -0
  322. package/ts_build/src/conversion.js.map +1 -0
  323. package/ts_build/src/dataset/diffs/debug-errors.d.ts +1 -0
  324. package/ts_build/src/dataset/diffs/debug-errors.js +28 -0
  325. package/ts_build/src/dataset/diffs/debug-errors.js.map +1 -0
  326. package/ts_build/src/dataset/diffs/debug.d.ts +1 -0
  327. package/ts_build/src/dataset/diffs/debug.js +50 -0
  328. package/ts_build/src/dataset/diffs/debug.js.map +1 -0
  329. package/ts_build/src/dataset/diffs/generate.d.ts +1 -0
  330. package/ts_build/src/dataset/diffs/generate.js +70 -0
  331. package/ts_build/src/dataset/diffs/generate.js.map +1 -0
  332. package/ts_build/src/dataset/diffs/jsonl.d.ts +1 -0
  333. package/ts_build/src/dataset/diffs/jsonl.js +47 -0
  334. package/ts_build/src/dataset/diffs/jsonl.js.map +1 -0
  335. package/ts_build/src/dataset/diffs/test.d.ts +1 -0
  336. package/ts_build/src/dataset/diffs/test.js +114 -0
  337. package/ts_build/src/dataset/diffs/test.js.map +1 -0
  338. package/ts_build/src/embeddings.d.ts +19 -0
  339. package/ts_build/src/embeddings.js +322 -0
  340. package/ts_build/src/embeddings.js.map +1 -0
  341. package/ts_build/src/hashes.d.ts +6 -0
  342. package/ts_build/src/hashes.js +78 -0
  343. package/ts_build/src/hashes.js.map +1 -0
  344. package/ts_build/src/index.d.ts +14 -0
  345. package/ts_build/src/index.js +258 -0
  346. package/ts_build/src/index.js.map +1 -0
  347. package/ts_build/src/login.d.ts +2 -0
  348. package/ts_build/src/login.js +63 -0
  349. package/ts_build/src/login.js.map +1 -0
  350. package/ts_build/src/microphone.d.ts +9 -0
  351. package/ts_build/src/microphone.js +131 -0
  352. package/ts_build/src/microphone.js.map +1 -0
  353. package/ts_build/src/modules/index.d.ts +3 -0
  354. package/ts_build/src/modules/index.js +34 -0
  355. package/ts_build/src/modules/index.js.map +1 -0
  356. package/ts_build/src/modules/types.d.ts +37 -0
  357. package/ts_build/src/modules/types.js +3 -0
  358. package/ts_build/src/modules/types.js.map +1 -0
  359. package/ts_build/src/plugins/asana.d.ts +16 -0
  360. package/ts_build/src/plugins/asana.js +114 -0
  361. package/ts_build/src/plugins/asana.js.map +1 -0
  362. package/ts_build/src/plugins/downloader/downloader.d.ts +12 -0
  363. package/ts_build/src/plugins/downloader/downloader.js +174 -0
  364. package/ts_build/src/plugins/downloader/downloader.js.map +1 -0
  365. package/ts_build/src/plugins/downloader/index.d.ts +3 -0
  366. package/ts_build/src/plugins/downloader/index.js +41 -0
  367. package/ts_build/src/plugins/downloader/index.js.map +1 -0
  368. package/ts_build/src/plugins/downloader/plugin.d.ts +8 -0
  369. package/ts_build/src/plugins/downloader/plugin.js +83 -0
  370. package/ts_build/src/plugins/downloader/plugin.js.map +1 -0
  371. package/ts_build/src/plugins/downloader/types.d.ts +82 -0
  372. package/ts_build/src/plugins/downloader/types.js +79 -0
  373. package/ts_build/src/plugins/downloader/types.js.map +1 -0
  374. package/ts_build/src/plugins/embedding.d.ts +5 -0
  375. package/ts_build/src/plugins/embedding.js +28 -0
  376. package/ts_build/src/plugins/embedding.js.map +1 -0
  377. package/ts_build/src/plugins/figma.d.ts +20 -0
  378. package/ts_build/src/plugins/figma.js +94 -0
  379. package/ts_build/src/plugins/figma.js.map +1 -0
  380. package/ts_build/src/plugins/github.d.ts +1223 -0
  381. package/ts_build/src/plugins/github.js +115 -0
  382. package/ts_build/src/plugins/github.js.map +1 -0
  383. package/ts_build/src/plugins/jira.d.ts +15 -0
  384. package/ts_build/src/plugins/jira.js +94 -0
  385. package/ts_build/src/plugins/jira.js.map +1 -0
  386. package/ts_build/src/plugins/language.d.ts +8 -0
  387. package/ts_build/src/plugins/language.js +69 -0
  388. package/ts_build/src/plugins/language.js.map +1 -0
  389. package/ts_build/src/plugins/linear.d.ts +23 -0
  390. package/ts_build/src/plugins/linear.js +184 -0
  391. package/ts_build/src/plugins/linear.js.map +1 -0
  392. package/ts_build/src/plugins/notion.d.ts +32 -0
  393. package/ts_build/src/plugins/notion.js +131 -0
  394. package/ts_build/src/plugins/notion.js.map +1 -0
  395. package/ts_build/src/plugins/plugins.d.ts +11 -0
  396. package/ts_build/src/plugins/plugins.js +51 -0
  397. package/ts_build/src/plugins/plugins.js.map +1 -0
  398. package/ts_build/src/plugins/types.d.ts +5 -0
  399. package/ts_build/src/plugins/types.js +3 -0
  400. package/ts_build/src/plugins/types.js.map +1 -0
  401. package/ts_build/src/plugins/url.d.ts +8 -0
  402. package/ts_build/src/plugins/url.js +50 -0
  403. package/ts_build/src/plugins/url.js.map +1 -0
  404. package/ts_build/src/plugins/vim.d.ts +11 -0
  405. package/ts_build/src/plugins/vim.js +63 -0
  406. package/ts_build/src/plugins/vim.js.map +1 -0
  407. package/ts_build/src/prompts/BasicCodeDocumenter.d.ts +2 -0
  408. package/ts_build/src/prompts/BasicCodeDocumenter.js +4 -0
  409. package/ts_build/src/prompts/BasicCodeDocumenter.js.map +1 -0
  410. package/ts_build/src/prompts/BasicProjectDocumenter.d.ts +2 -0
  411. package/ts_build/src/prompts/BasicProjectDocumenter.js +4 -0
  412. package/ts_build/src/prompts/BasicProjectDocumenter.js.map +1 -0
  413. package/ts_build/src/prompts/EmbeddingSeachHelper.d.ts +2 -0
  414. package/ts_build/src/prompts/EmbeddingSeachHelper.js +4 -0
  415. package/ts_build/src/prompts/EmbeddingSeachHelper.js.map +1 -0
  416. package/ts_build/src/prompts/index.d.ts +13 -0
  417. package/ts_build/src/prompts/index.js +15 -0
  418. package/ts_build/src/prompts/index.js.map +1 -0
  419. package/ts_build/src/server/index.d.ts +1 -0
  420. package/ts_build/src/server/index.js +17 -0
  421. package/ts_build/src/server/index.js.map +1 -0
  422. package/ts_build/src/services/AgentService.d.ts +14 -0
  423. package/ts_build/src/services/AgentService.js +87 -0
  424. package/ts_build/src/services/AgentService.js.map +1 -0
  425. package/ts_build/src/services/EmbeddingService.d.ts +39 -0
  426. package/ts_build/src/services/EmbeddingService.js +307 -0
  427. package/ts_build/src/services/EmbeddingService.js.map +1 -0
  428. package/ts_build/src/services/EventService.d.ts +9 -0
  429. package/ts_build/src/services/EventService.js +20 -0
  430. package/ts_build/src/services/EventService.js.map +1 -0
  431. package/ts_build/src/services/GitHub.d.ts +11 -0
  432. package/ts_build/src/services/GitHub.js +52 -0
  433. package/ts_build/src/services/GitHub.js.map +1 -0
  434. package/ts_build/src/services/KnowhowClient.d.ts +18 -0
  435. package/ts_build/src/services/KnowhowClient.js +85 -0
  436. package/ts_build/src/services/KnowhowClient.js.map +1 -0
  437. package/ts_build/src/services/Mcp.d.ts +377 -0
  438. package/ts_build/src/services/Mcp.js +221 -0
  439. package/ts_build/src/services/Mcp.js.map +1 -0
  440. package/ts_build/src/services/McpServer.d.ts +19 -0
  441. package/ts_build/src/services/McpServer.js +104 -0
  442. package/ts_build/src/services/McpServer.js.map +1 -0
  443. package/ts_build/src/services/McpWebsocketTransport.d.ts +13 -0
  444. package/ts_build/src/services/McpWebsocketTransport.js +59 -0
  445. package/ts_build/src/services/McpWebsocketTransport.js.map +1 -0
  446. package/ts_build/src/services/S3.d.ts +9 -0
  447. package/ts_build/src/services/S3.js +116 -0
  448. package/ts_build/src/services/S3.js.map +1 -0
  449. package/ts_build/src/services/Tools.d.ts +19 -0
  450. package/ts_build/src/services/Tools.js +51 -0
  451. package/ts_build/src/services/Tools.js.map +1 -0
  452. package/ts_build/src/services/flags.d.ts +13 -0
  453. package/ts_build/src/services/flags.js +48 -0
  454. package/ts_build/src/services/flags.js.map +1 -0
  455. package/ts_build/src/services/index.d.ts +8 -0
  456. package/ts_build/src/services/index.js +38 -0
  457. package/ts_build/src/services/index.js.map +1 -0
  458. package/ts_build/src/terminal.d.ts +1 -0
  459. package/ts_build/src/terminal.js +35 -0
  460. package/ts_build/src/terminal.js.map +1 -0
  461. package/ts_build/src/types.d.ts +181 -0
  462. package/ts_build/src/types.js +94 -0
  463. package/ts_build/src/types.js.map +1 -0
  464. package/ts_build/src/utils/index.d.ts +24 -0
  465. package/ts_build/src/utils/index.js +116 -0
  466. package/ts_build/src/utils/index.js.map +1 -0
  467. package/ts_build/src/worker.d.ts +1 -0
  468. package/ts_build/src/worker.js +68 -0
  469. package/ts_build/src/worker.js.map +1 -0
  470. package/ts_build/tests/integration/figma.test.d.ts +1 -0
  471. package/ts_build/tests/integration/figma.test.js +47 -0
  472. package/ts_build/tests/integration/figma.test.js.map +1 -0
  473. package/ts_build/tests/integration/fileblocks/readwrite.test.d.ts +1 -0
  474. package/ts_build/tests/integration/fileblocks/readwrite.test.js +95 -0
  475. package/ts_build/tests/integration/fileblocks/readwrite.test.js.map +1 -0
  476. package/ts_build/tests/integration/patching.test.d.ts +1 -0
  477. package/ts_build/tests/integration/patching.test.js +117 -0
  478. package/ts_build/tests/integration/patching.test.js.map +1 -0
  479. package/ts_build/tests/languagePlugin.test.d.ts +1 -0
  480. package/ts_build/tests/languagePlugin.test.js +78 -0
  481. package/ts_build/tests/languagePlugin.test.js.map +1 -0
  482. package/ts_build/tests/patching/corrupted.test.d.ts +1 -0
  483. package/ts_build/tests/patching/corrupted.test.js +53 -0
  484. package/ts_build/tests/patching/corrupted.test.js.map +1 -0
  485. package/ts_build/tests/patching/imports.test.d.ts +1 -0
  486. package/ts_build/tests/patching/imports.test.js +61 -0
  487. package/ts_build/tests/patching/imports.test.js.map +1 -0
  488. package/ts_build/tests/test.spec.d.ts +1 -0
  489. package/ts_build/tests/test.spec.js +101 -0
  490. package/ts_build/tests/test.spec.js.map +1 -0
  491. package/tsconfig.json +31 -0
  492. package/tslint.json +11 -0
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAgent = void 0;
4
+ const events_1 = require("events");
5
+ const Tools_1 = require("../../services/Tools");
6
+ const utils_1 = require("../../utils");
7
+ const EventService_1 = require("../../services/EventService");
8
+ const clients_1 = require("../../clients");
9
+ const ai_1 = require("../../ai");
10
+ class BaseAgent {
11
+ tools;
12
+ events;
13
+ status = "in_progress";
14
+ lastHealthCheckTime = 0;
15
+ provider = "openai";
16
+ modelName = ai_1.Models.openai.GPT_4o;
17
+ client = null;
18
+ modelPreferences = [];
19
+ currentModelPreferenceIndex = 0;
20
+ easyFinalAnswer = false;
21
+ requiredToolNames = ["finalAnswer"];
22
+ totalCostUsd = 0;
23
+ currentThread = 0;
24
+ threads = [];
25
+ pendingUserMessages = [];
26
+ taskBreakdown = "";
27
+ summaries = [];
28
+ agentEvents = new events_1.EventEmitter();
29
+ eventTypes = {
30
+ newThread: "new_thread",
31
+ threadUpdate: "thread_update",
32
+ costUpdate: "cost_update",
33
+ toolUsed: "tool_used",
34
+ done: "done",
35
+ pause: "pause",
36
+ kill: "kill",
37
+ unpause: "unpause",
38
+ };
39
+ disabledTools = [];
40
+ constructor(tools = Tools_1.Tools, events = EventService_1.Events) {
41
+ this.tools = tools;
42
+ this.events = events;
43
+ }
44
+ newTask() {
45
+ this.currentThread = 0;
46
+ this.threads = [];
47
+ this.taskBreakdown = "";
48
+ this.summaries = [];
49
+ this.totalCostUsd = 0;
50
+ this.status = "in_progress";
51
+ }
52
+ register() {
53
+ this.events.registerAgent(this);
54
+ }
55
+ setModelPreferences(value) {
56
+ this.modelPreferences = value;
57
+ if (value.length) {
58
+ this.updatePreferences(value[0]);
59
+ }
60
+ }
61
+ updatePreferences(value) {
62
+ this.setModel(value.model);
63
+ this.setProvider(value.provider);
64
+ }
65
+ nextModel() {
66
+ this.currentModelPreferenceIndex++;
67
+ if (this.currentModelPreferenceIndex >= this.modelPreferences.length) {
68
+ throw new Error("We have exhausted all model preferences.");
69
+ }
70
+ const nextModel = this.modelPreferences[this.currentModelPreferenceIndex];
71
+ this.updatePreferences(nextModel);
72
+ }
73
+ getModel() {
74
+ return this.modelName;
75
+ }
76
+ setModel(value) {
77
+ this.modelName = value;
78
+ }
79
+ getProvider() {
80
+ return this.provider;
81
+ }
82
+ setProvider(value) {
83
+ this.provider = value;
84
+ }
85
+ getClient() {
86
+ if (!this.client) {
87
+ this.client = clients_1.Clients.getClient(this.provider)?.client;
88
+ }
89
+ return this.client;
90
+ }
91
+ setClient(client) {
92
+ this.client = client;
93
+ }
94
+ setEasyFinalAnswer(value) {
95
+ this.easyFinalAnswer = value;
96
+ }
97
+ getEnabledTools() {
98
+ return this.tools
99
+ .getTools()
100
+ .filter((t) => !this.disabledTools.includes(t.function.name));
101
+ }
102
+ getEnabledToolNames() {
103
+ return this.getEnabledTools().map((t) => t.function.name);
104
+ }
105
+ disableTool(toolName) {
106
+ this.disabledTools.push(toolName);
107
+ }
108
+ isToolEnabled(toolName) {
109
+ return !!this.getEnabledTools().find((t) => t.function.name === toolName);
110
+ }
111
+ enableTool(toolName) {
112
+ if (!this.isToolEnabled(toolName)) {
113
+ this.disabledTools = this.disabledTools.filter((t) => t !== toolName);
114
+ }
115
+ }
116
+ adjustTotalCostUsd(cost) {
117
+ if (cost) {
118
+ this.totalCostUsd += cost;
119
+ this.agentEvents.emit(this.eventTypes.costUpdate, this.totalCostUsd);
120
+ }
121
+ }
122
+ getTotalCostUsd() {
123
+ return this.totalCostUsd;
124
+ }
125
+ startNewThread(messages) {
126
+ this.currentThread++;
127
+ this.agentEvents.emit(this.eventTypes.newThread, messages);
128
+ this.updateCurrentThread(messages);
129
+ }
130
+ updateCurrentThread(messages) {
131
+ this.threads[this.currentThread] = messages;
132
+ this.agentEvents.emit(this.eventTypes.threadUpdate, messages);
133
+ }
134
+ getThreads() {
135
+ return this.threads;
136
+ }
137
+ getSummaries() {
138
+ return this.summaries;
139
+ }
140
+ async processToolMessages(toolCall) {
141
+ const functionName = toolCall.function.name;
142
+ const functionToCall = this.tools.getFunction(functionName);
143
+ console.log(toolCall);
144
+ const functionArgs = JSON.parse(this.formatAiResponse(toolCall.function.arguments));
145
+ const toJsonIfObject = (arg) => {
146
+ if (typeof arg === "object") {
147
+ return JSON.stringify(arg, null, 2);
148
+ }
149
+ return arg;
150
+ };
151
+ const toolDefinition = this.tools.getTool(functionName);
152
+ const properties = toolDefinition?.function?.parameters?.properties || {};
153
+ const isPositional = toolDefinition?.function?.parameters?.positional || false;
154
+ const fnArgs = isPositional
155
+ ? Object.keys(properties).map((p) => functionArgs[p])
156
+ : functionArgs;
157
+ console.log(`Calling function ${functionName} with args:`, JSON.stringify(fnArgs, null, 2));
158
+ if (!functionToCall) {
159
+ const options = this.getEnabledToolNames().join(", ");
160
+ const error = `Function ${functionName} not found, options are ${options}`;
161
+ console.log(error);
162
+ return [
163
+ {
164
+ tool_call_id: toolCall.id,
165
+ role: "tool",
166
+ name: "error",
167
+ content: error,
168
+ },
169
+ ];
170
+ }
171
+ const functionResponse = await Promise.resolve(isPositional ? functionToCall(...fnArgs) : functionToCall(fnArgs)).catch((e) => "ERROR: " + e.message);
172
+ this.agentEvents.emit(this.eventTypes.toolUsed, {
173
+ toolCall,
174
+ functionResponse,
175
+ });
176
+ let toolMessages = [];
177
+ if (functionName === "multi_tool_use.parallel") {
178
+ const args = fnArgs[0];
179
+ toolMessages = args.map((call, index) => {
180
+ return {
181
+ tool_call_id: toolCall.id + "_" + index,
182
+ role: "tool",
183
+ name: call.recipient_name.split(".").pop(),
184
+ content: toJsonIfObject(functionResponse[index]) || "Done",
185
+ };
186
+ });
187
+ }
188
+ toolMessages = [
189
+ {
190
+ tool_call_id: toolCall.id,
191
+ role: "tool",
192
+ name: functionName,
193
+ content: toJsonIfObject(functionResponse) || "Done",
194
+ },
195
+ ];
196
+ console.log(toolMessages);
197
+ return toolMessages;
198
+ }
199
+ logMessages(messages) {
200
+ for (const message of messages) {
201
+ if (message.role === "assistant") {
202
+ console.log(message.content);
203
+ }
204
+ }
205
+ }
206
+ formatInputContent(userInput) {
207
+ return (0, utils_1.replaceEscapedNewLines)(userInput);
208
+ }
209
+ formatAiResponse(response) {
210
+ return (0, utils_1.restoreEscapedNewLines)(response);
211
+ }
212
+ formatInputMessages(messages) {
213
+ return messages.map((m) => ({
214
+ ...m,
215
+ content: typeof m.content === "string"
216
+ ? this.formatInputContent(m.content)
217
+ : m.content,
218
+ }));
219
+ }
220
+ formatOutputMessages(messages) {
221
+ return messages.map((m) => ({
222
+ ...m,
223
+ content: typeof m.content === "string"
224
+ ? this.formatAiResponse(m.content)
225
+ : m.content,
226
+ }));
227
+ }
228
+ async healthCheck() {
229
+ try {
230
+ const canCallProvider = await this.getClient().createChatCompletion({
231
+ messages: [{ role: "user", content: "Hello!" }],
232
+ model: this.getModel(),
233
+ max_tokens: 2,
234
+ });
235
+ return true;
236
+ }
237
+ catch (e) {
238
+ console.error(e);
239
+ return false;
240
+ }
241
+ }
242
+ async selectHealthyModel() {
243
+ const currentTime = Date.now();
244
+ if (currentTime - this.lastHealthCheckTime < 60 * 1000) {
245
+ return;
246
+ }
247
+ let healthy = await this.healthCheck();
248
+ this.lastHealthCheckTime = Date.now();
249
+ while (!healthy) {
250
+ this.nextModel();
251
+ healthy = await this.healthCheck();
252
+ }
253
+ await this.healthCheck();
254
+ }
255
+ setNotHealthy() {
256
+ this.lastHealthCheckTime = 0;
257
+ }
258
+ pause() {
259
+ console.log("Pausing agent");
260
+ this.agentEvents.emit(this.eventTypes.pause, this);
261
+ this.status = this.eventTypes.pause;
262
+ }
263
+ unpause() {
264
+ console.log("Unpausing agent");
265
+ this.agentEvents.emit(this.eventTypes.unpause, this);
266
+ this.status = "in_progress";
267
+ }
268
+ async unpaused() {
269
+ return new Promise((resolve) => {
270
+ console.log("Waiting for agent to unpause");
271
+ this.agentEvents.once(this.eventTypes.unpause, () => {
272
+ console.log("Agent resumed");
273
+ resolve(true);
274
+ });
275
+ this.agentEvents.once(this.eventTypes.done, () => {
276
+ resolve(true);
277
+ });
278
+ });
279
+ }
280
+ async kill() {
281
+ console.log("Killing agent");
282
+ this.agentEvents.emit(this.eventTypes.kill, this);
283
+ this.status = this.eventTypes.kill;
284
+ this.addPendingUserMessage({
285
+ role: "user",
286
+ content: `<Workflow>The user has requested the task to end, please call ${this.requiredToolNames} with a report of your ending state</Workflow>`,
287
+ });
288
+ }
289
+ async call(userInput, _messages) {
290
+ if (this.status === this.eventTypes.pause) {
291
+ await this.unpaused();
292
+ }
293
+ await this.selectHealthyModel();
294
+ try {
295
+ const model = this.getModel();
296
+ let messages = _messages || (await this.getInitialMessages(userInput));
297
+ const taskBreakdown = await this.getTaskBreakdown(messages);
298
+ if (this.pendingUserMessages.length) {
299
+ messages.push(...this.pendingUserMessages);
300
+ this.pendingUserMessages = [];
301
+ }
302
+ messages = this.formatInputMessages(messages);
303
+ this.updateCurrentThread(messages);
304
+ const startIndex = 0;
305
+ const endIndex = messages.length;
306
+ const compressThreshold = 10000;
307
+ const response = await this.getClient().createChatCompletion({
308
+ model,
309
+ messages,
310
+ tools: this.getEnabledTools(),
311
+ tool_choice: "auto",
312
+ });
313
+ if (response?.usd_cost === undefined) {
314
+ console.warn("Response cost is undefined", response);
315
+ }
316
+ this.adjustTotalCostUsd(response?.usd_cost);
317
+ this.logMessages(response.choices.map((c) => c.message));
318
+ const firstMessage = response.choices[0].message;
319
+ const newToolCalls = response.choices.flatMap((c) => c.message.tool_calls);
320
+ for (const choice of response.choices) {
321
+ const responseMessage = choice.message;
322
+ console.log(responseMessage);
323
+ const toolCalls = responseMessage.tool_calls;
324
+ if (responseMessage.tool_calls) {
325
+ messages.push(responseMessage);
326
+ for (const toolCall of toolCalls) {
327
+ const toolMessages = await this.processToolMessages(toolCall);
328
+ messages.push(...toolMessages);
329
+ const finalMessage = toolMessages.find((m) => this.requiredToolNames.includes(m.name) ||
330
+ this.requiredToolNames.includes((0, utils_1.mcpToolName)(m.name)));
331
+ if (finalMessage) {
332
+ const doneMsg = finalMessage.content || "Done";
333
+ this.agentEvents.emit(this.eventTypes.done, doneMsg);
334
+ return doneMsg;
335
+ }
336
+ }
337
+ }
338
+ }
339
+ if (response.choices.length === 1 &&
340
+ firstMessage.content &&
341
+ this.easyFinalAnswer) {
342
+ this.agentEvents.emit(this.eventTypes.done, firstMessage.content);
343
+ return firstMessage.content;
344
+ }
345
+ if (this.pendingUserMessages.length === 0 && this.status === "killed") {
346
+ console.log("Agent killed, stopping execution");
347
+ this.status = "killed";
348
+ this.agentEvents.emit(this.eventTypes.done, firstMessage.content);
349
+ return firstMessage.content;
350
+ }
351
+ if (this.getMessagesLength(messages) > compressThreshold) {
352
+ console.log("Compressing messages", this.getMessagesLength(messages), "exceeds", compressThreshold);
353
+ messages = await this.compressMessages(messages, startIndex, endIndex);
354
+ this.startNewThread(messages);
355
+ }
356
+ if (["assistant", "tool"].includes(messages[messages.length - 1].role)) {
357
+ console.log("Agent continuing to the next iteration, reminding agent how to terminate");
358
+ messages.push({
359
+ role: "user",
360
+ 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>`,
361
+ });
362
+ }
363
+ this.updateCurrentThread(messages);
364
+ return this.call(userInput, messages);
365
+ }
366
+ catch (e) {
367
+ if (e.toString().includes("429")) {
368
+ this.setNotHealthy();
369
+ return this.call(userInput, _messages);
370
+ }
371
+ console.error(e);
372
+ this.agentEvents.emit(this.eventTypes.done, e.message);
373
+ return e.message;
374
+ }
375
+ }
376
+ addPendingUserMessage(message) {
377
+ this.pendingUserMessages.push(message);
378
+ }
379
+ getMessagesLength(messages) {
380
+ return JSON.stringify(messages).split(" ").length;
381
+ }
382
+ async getTaskBreakdown(messages) {
383
+ if (this.taskBreakdown) {
384
+ return this.taskBreakdown;
385
+ }
386
+ const taskPrompt = `
387
+ Generate a detailed task breakdown for this conversation, include a section for the following:
388
+ 1. Task List
389
+ 2. Completion Criteria - when the agent should stop
390
+
391
+ : \n\n${JSON.stringify(messages)}`;
392
+ const model = this.getModel();
393
+ const response = await this.getClient().createChatCompletion({
394
+ model,
395
+ messages: [
396
+ {
397
+ role: "user",
398
+ content: taskPrompt,
399
+ },
400
+ ],
401
+ });
402
+ this.adjustTotalCostUsd(response.usd_cost);
403
+ console.log(response);
404
+ this.taskBreakdown = response.choices[0].message.content;
405
+ return this.taskBreakdown;
406
+ }
407
+ async compressMessages(messages, startIndex, endIndex) {
408
+ const toCompress = messages.slice(startIndex, endIndex);
409
+ const toCompressPrompt = `We are compressing our conversation to save memory.
410
+ Please summarize the conversation so far, so that we may continue the original task with a smaller context
411
+
412
+ Include the following sections:
413
+ 1. Initial Request - what this agent was originally tasked with.
414
+ 2. Progress - what has been tried so far,
415
+ 3. Next Steps - what we're about to do next to continue the user's original request.
416
+ 4. Tasks remaining - what tasks are left from the initial task breakdown.
417
+
418
+ This summary will become the agent's only memory of the past, all other messages will be dropped:
419
+ ${JSON.stringify(toCompress)}
420
+
421
+ Our initial task breakdown: ${this.taskBreakdown}`;
422
+ const model = this.getModel();
423
+ const response = await this.getClient().createChatCompletion({
424
+ model,
425
+ messages: [
426
+ {
427
+ role: "user",
428
+ content: toCompressPrompt,
429
+ },
430
+ ],
431
+ });
432
+ this.adjustTotalCostUsd(response.usd_cost);
433
+ const summaries = response.choices.map((c) => c.message.content);
434
+ this.summaries.push(...summaries);
435
+ const startMessages = [
436
+ {
437
+ role: "user",
438
+ content: `
439
+ Initial task breakdown:
440
+ ${this.taskBreakdown}
441
+
442
+ We have just compressed the conversation to save memory:
443
+ ${JSON.stringify(summaries)}
444
+
445
+ Please continue the task from where we left off
446
+ `,
447
+ },
448
+ ];
449
+ const systemMesasges = toCompress.filter((m) => m.role === "system");
450
+ const newMessages = [
451
+ ...systemMesasges,
452
+ ...startMessages,
453
+ ...messages.slice(endIndex),
454
+ ];
455
+ const oldLength = this.getMessagesLength(messages);
456
+ const newLength = this.getMessagesLength(newMessages);
457
+ const compressionRatio = (((oldLength - newLength) / oldLength) *
458
+ 100).toFixed(2);
459
+ console.log("Compressed messages from", oldLength, "to", newLength, compressionRatio + "%", "reduction in size");
460
+ return newMessages;
461
+ }
462
+ }
463
+ exports.BaseAgent = BaseAgent;
464
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +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";
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASE_PROMPT = void 0;
4
+ exports.BASE_PROMPT = `
5
+ #Knowhow Codebase Agent.
6
+ You use the tools to read and write code, to help the developer implement features faster.
7
+
8
+ # Completing your work
9
+
10
+ You always call finalAnswer once you have finished implementing or answering what is requested.
11
+ As an agent you will receive multiple rounds of input until you call finalAnswer.
12
+ You 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.
13
+
14
+ ## Modification Guidelines
15
+
16
+ After modifying files, you will read them to ensure they look correct before calling finalAnswer.
17
+ You always check your modifications for syntax errors or bugs.
18
+ You 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.
19
+ You think step by step about the blocks of code you're modifying.
20
+ You may use the execCommand tool to navigate the filesystem and to create new folders if needed.
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
+
23
+ # PLUGINS REMINDER:
24
+
25
+ Plugins are used to automatically expand user input with more context.
26
+ The additional context could be from embeddings, files, pull requests, tickets etc.
27
+ Do not assume the plugin information contains all the information you require to accomplish a task.
28
+ Be sure to consider tools that you may use to supplement what the plugins initially provided.
29
+ `;
30
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/agents/base/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { BaseAgent } from "../base/base";
2
+ import { Message } from "../../clients/types";
3
+ import { Assistant } from "../../types";
4
+ export declare class ConfigAgent extends BaseAgent {
5
+ private config;
6
+ name: string;
7
+ description: string;
8
+ constructor(config: Assistant);
9
+ getInitialMessages(userInput: string): Promise<Message[]>;
10
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigAgent = void 0;
4
+ const base_1 = require("../base/base");
5
+ class ConfigAgent extends base_1.BaseAgent {
6
+ config;
7
+ name;
8
+ description;
9
+ constructor(config) {
10
+ super();
11
+ this.config = config;
12
+ this.name = config.name;
13
+ this.setModelPreferences([
14
+ { model: config.model, provider: config.provider },
15
+ ]);
16
+ }
17
+ async getInitialMessages(userInput) {
18
+ return [
19
+ { role: "system", content: this.config.instructions },
20
+ { role: "user", content: userInput },
21
+ ];
22
+ }
23
+ }
24
+ exports.ConfigAgent = ConfigAgent;
25
+ //# sourceMappingURL=ConfigAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigAgent.js","sourceRoot":"","sources":["../../../../src/agents/configurable/ConfigAgent.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AAIzC,MAAa,WAAY,SAAQ,gBAAS;IAIpB;IAHpB,IAAI,CAAS;IACb,WAAW,CAAS;IAEpB,YAAoB,MAAiB;QACnC,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAW;QAEnC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,mBAAmB,CAAC;YACvB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACrD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACxB,CAAC;IACjB,CAAC;CACF;AAlBD,kCAkBC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=OpenAIAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIAgent.js","sourceRoot":"","sources":["../../../../src/agents/configurable/OpenAIAgent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Message } from "../../clients/types";
2
+ import { BaseAgent } from "../base/base";
3
+ export declare class DeveloperAgent extends BaseAgent {
4
+ name: string;
5
+ description: string;
6
+ constructor();
7
+ getInitialMessages(userInput: string): Promise<Message[]>;
8
+ }
9
+ export declare const Developer: DeveloperAgent;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Developer = exports.DeveloperAgent = void 0;
4
+ const ai_1 = require("../../ai");
5
+ const base_1 = require("../base/base");
6
+ const prompt_1 = require("../base/prompt");
7
+ class DeveloperAgent extends base_1.BaseAgent {
8
+ name = "Developer";
9
+ description = `This agent manages requests and uses tools and delegation via agentCall to accomplish things`;
10
+ constructor() {
11
+ super();
12
+ this.disableTool("patchFile");
13
+ this.disableTool("openFileInVim");
14
+ this.disableTool("sendVimInput");
15
+ this.disableTool("saveVimFile");
16
+ this.setModelPreferences([
17
+ {
18
+ model: ai_1.Models.google.Gemini_20_Flash,
19
+ provider: "google",
20
+ },
21
+ ]);
22
+ }
23
+ async getInitialMessages(userInput) {
24
+ return [
25
+ {
26
+ role: "system",
27
+ content: `
28
+ ${prompt_1.BASE_PROMPT}
29
+
30
+ Specialization: Developer, ${this.description}
31
+
32
+ # Description
33
+ You are a helpful developer assistant that is capable of using tools to assist the user.
34
+ You delegate some tasks to specialized agents. If a request doesn't require the use of a specialized agent, you can handle it yourself.
35
+
36
+ # How to call other agents
37
+ You can use the agentCall tool to call other agents.
38
+ Do not try to use VIM/ or Patching tools directly. If you must write to a file yourself use writeFileChunk
39
+
40
+ # Which Agent to Use:
41
+ Researcher -
42
+ - For answering questions about the codebase
43
+ - For providing context to modifications
44
+ - For figuring out which files to modify
45
+ - General Questions about codebase or file structure
46
+
47
+ Patcher
48
+ - For making modifications to files / code
49
+ - Great for big files
50
+
51
+ # Thought process
52
+ 1. Is the user asking you a question about the codebase or files? Foreward the question to the Researcher.
53
+ 2. Do you need to make changes to files?
54
+ 2.a Do we have enough information to know exactly what to modify? If not, ask the Researcher.
55
+ 2.b If we know what to modify, ask Patcher to make the changes with all the context required.
56
+ 3. If the agent you call has declared it has completed a task, you may need to check it's modifications to see if there's some follow up work required.
57
+ 4. If the user is asking for a general task, like webbrowsing or terminal commands, or general questions you may accomplish this yourself.
58
+ `,
59
+ },
60
+ {
61
+ role: "user",
62
+ content: userInput,
63
+ },
64
+ ];
65
+ }
66
+ }
67
+ exports.DeveloperAgent = DeveloperAgent;
68
+ exports.Developer = new DeveloperAgent();
69
+ //# sourceMappingURL=developer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../../../src/agents/developer/developer.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAElC,uCAAyC;AACzC,2CAA6C;AAC7C,MAAa,cAAe,SAAQ,gBAAS;IAC3C,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,8FAA8F,CAAC;IAE7G;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEhC,IAAI,CAAC,mBAAmB,CAAC;YACvB;gBACE,KAAK,EAAE,WAAM,CAAC,MAAM,CAAC,eAAe;gBACpC,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;UACP,oBAAW;;sCAEiB,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4B7C;aACF;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS;aACnB;SACW,CAAC;IACjB,CAAC;CACF;AA9DD,wCA8DC;AAEY,QAAA,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC"}