@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,14 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "name": "Attach to Process",
9
+ "type": "node",
10
+ "request": "attach",
11
+ "port": 9229
12
+ }
13
+ ]
14
+ }
package/CONFIG.md ADDED
@@ -0,0 +1,336 @@
1
+
2
+ Here is an overview of examples from various `knowhow.json` configuration files found, illustrating the configuration capabilities that Knowhow supports:
3
+
4
+ ---
5
+
6
+ ## General Configuration Template
7
+
8
+ ```json
9
+ {
10
+ "promptsDir": ".knowhow/prompts",
11
+ "plugins": [
12
+ "embeddings",
13
+ "language",
14
+ "vim",
15
+ "github",
16
+ "asana",
17
+ "jira",
18
+ "linear",
19
+ "download",
20
+ "figma"
21
+ ],
22
+ "sources": [
23
+ {
24
+ "input": "src/**/*.mdx",
25
+ "output": ".knowhow/docs/",
26
+ "prompt": "BasicCodeDocumenter"
27
+ }
28
+ ],
29
+
30
+ // Generate embeddings from a series of files on your machine
31
+ // Remote knowhow with the kb id allows you to leverage knowhow upload
32
+ "embedSources": [
33
+ {
34
+ "input": ".knowhow/docs/**/*.mdx",
35
+ "output": ".knowhow/embeddings",
36
+ "chunkSize": 2000,
37
+ "remoteType": "knowhow",
38
+ "remoteId": "141d9c4d-1589-4ccc-bf39-031f4259b89f"
39
+ }
40
+ ],
41
+
42
+ // Define aditional agents you can interact with via chat
43
+ "agents": [
44
+ {
45
+ "name": "linter",
46
+ "description": "Clean up your code",
47
+ "instructions": "Read the files that are loaded via vim plugin and provide debugging and linter suggestions"
48
+ }
49
+ {
50
+ "name": "Codebase Helper",
51
+ "description": "Helps you code",
52
+ "instructions": "Codebase helper, use files and tools to help us code",
53
+ "model": "gpt-4-1106-preview",
54
+ "tools": [
55
+ {
56
+ "type": "code_interpreter"
57
+ }
58
+ ],
59
+ "files": [
60
+ ".knowhow/docs/**/*.mdx"
61
+ ]
62
+ }
63
+ ]
64
+ }
65
+ ```
66
+
67
+ ## Video Download Support
68
+ ```json
69
+ "embedSources": [
70
+ {
71
+ "input": "https://www.youtube.com/shorts/BYuMBK5Ll-s",
72
+ "output": ".knowhow/embeddings/video.json",
73
+ "chunkSize": 2000,
74
+ "kind": "download"
75
+ }
76
+ ],
77
+ ```
78
+
79
+ ## MCP Setup
80
+
81
+ ```json
82
+ "mcps": [
83
+ {
84
+ "name": "browser",
85
+ "command": "npx",
86
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
87
+ }
88
+ ],
89
+ ```
90
+
91
+ ## Custom Models Via LMS Studio
92
+ ```json
93
+ "modelProviders": [
94
+ {
95
+ "url": "http://localhost:1234",
96
+ "provider": "lms"
97
+ }
98
+ ],
99
+ ```
100
+
101
+ ## Agent Tasks: rename all video files in a folder
102
+ ```
103
+ "sources": [
104
+ {
105
+ "input": ".knowhow/downloads/**/*.webm",
106
+ "output": ".knowhow/organized/",
107
+ "prompt": "FSOrganizer",
108
+ "agent": "Developer"
109
+ }
110
+ ],
111
+ ```
112
+
113
+ Prompt Example:
114
+
115
+ ```
116
+ We have this file, we want to generate a nice name for it, please copy the file to .knowhow/org/{better file name}
117
+
118
+ {text}
119
+ ```
120
+
121
+ ## knowhow generate: meeting transcripts
122
+ ```json
123
+ "sources": [
124
+ {
125
+ "input": "./meetings/**/*.mov",
126
+ "output": "./meetings/ai-notes/",
127
+ "prompt": "MeetingNotes"
128
+ },
129
+ {
130
+ "input": "./meetings/TaskRelatedCall/transcript.txt",
131
+ "output": "./meetings/tasks/RewardsTasks.txt",
132
+ "prompt": "AsanaTasks"
133
+ },
134
+ {
135
+ "input": "./meetings/EngineeringCall/transcript.txt",
136
+ "output": "./meetings/tasks/SchemaChanges.txt",
137
+ "prompt": "Schema"
138
+ }
139
+ ],
140
+ ```
141
+
142
+
143
+ Use the source block alongside `knowhow generate` to process a pipeline of files, applying prompts to generate documentation or other artifacts. This example demonstrates the configuration for processing meeting recordings, and then running prompts on the resulting transcripts.
144
+
145
+ I've been using `CMD+SHIFT+5` to record meetings and then using the `sources` block to process the recordings into notes and tasks.
146
+
147
+ When a .mov or audio file is an input, it will automatically create a transcript.txt in the same directory, so we can leverage that txt input in the next step. The pipeline is useful for apply one or more prompts to one or more input files.
148
+
149
+ ## knowhow embed: documentation embeddings
150
+ ```json
151
+ "embedSources": [
152
+ {
153
+ "input": "./documentation/docusaurus/docs/dev-docs/**/*.md",
154
+ "output": ".knowhow/embeddings/strapi-docs.json",
155
+ "chunkSize": 2000
156
+ }
157
+ ]
158
+ ```
159
+
160
+ ## knowhow embed: codebase embeddings
161
+ ```json
162
+
163
+ "embedSources": [
164
+ {
165
+ "input": "./packages/p2p/src/**/*.ts",
166
+ "output": ".knowhow/embeddings/p2p.json",
167
+ "chunkSize": 2000
168
+ },
169
+ {
170
+ "input": "./packages/openai_proxy/src/**/*.ts",
171
+ "output": ".knowhow/embeddings/openai_proxy.json",
172
+ "chunkSize": 2000
173
+ },
174
+ {
175
+ "input": "./packages/contracts/src/**/*.sol",
176
+ "output": ".knowhow/embeddings/contracts.json",
177
+ "chunkSize": 2000
178
+ }
179
+ ],
180
+ ```
181
+ You can use `knowhow embed` to generate json embeddings from a set of files. If you want to run a prompt on the input, before embedding, you set an optional `prompt` field to match the filename of the prompt stored in your `.knowhow/prompts` directory.
182
+
183
+ These embeddings are leveraged by the chat in `knowhow chat` or by the agents to accomplish their tasks
184
+
185
+ ## knowhow embed: asana tasks
186
+ ```
187
+ "embedSources": [
188
+ {
189
+ "input": "https://app.asana.com/0/111111111111111/list",
190
+ "output": ".knowhow/embeddings/asana.json",
191
+ "remote": "mybucket",
192
+ "remoteType": "s3",
193
+ "kind": "asana",
194
+ "chunkSize": 2000
195
+ }
196
+ ],
197
+ ```
198
+
199
+
200
+ Any plugin that implements the embedding function, can generate embeddings if you set the `kind` field to the plugin name. The `remote` field is optional, and if set, the embeddings will be uploaded to the specified S3 bucket via `knowhow upload`.
201
+
202
+ You can download remote embeddings via `knowhow download` and use them in your local environment.
203
+
204
+ For downloads we support the following remote options:
205
+ - s3
206
+ - github* - downloads files
207
+
208
+ For uploads we support the following remote options:
209
+ - s3
210
+ - github* - use git lfs to commit the embeddings to your repository
211
+
212
+
213
+ ## knowhow embed: github embeddings
214
+ ```
215
+ "embedSources": [
216
+ {
217
+ "input": "./src/**/*.ts",
218
+ "output": ".knowhow/embeddings/knowhow.json",
219
+ "chunkSize": 2000,
220
+ "remote": "micahriggan/knowhow",
221
+ "remoteType": "github"
222
+ }
223
+ ],
224
+ ```
225
+ Here's an example where you could download embeddings from github. As the code updates occasionally I'll run `knowhow embed` and commit the updated embeddings.
226
+
227
+ ## Plugins
228
+ ```json
229
+ {
230
+ "plugins": [
231
+ "embeddings",
232
+ "language",
233
+ "vim",
234
+ "github",
235
+ "asana",
236
+ "jira",
237
+ "linear",
238
+ "download",
239
+ "figma",
240
+ "notion"
241
+ ],
242
+ }
243
+ ```
244
+ Plugins are used to resolve urls or other references to data that the AI can use. For example, the `asana` plugin can be used to resolve tasks and projects from Asana, and the `figma` plugin can be used to resolve design files from Figma.
245
+
246
+ The language plugin allows you to define hotkeys that resolve to larger blocks of texts or files, or urls. For example, you can define a language entry `#asana` that resolves to a link to your current asana task, so that you can easily load that without pasting the link each time.
247
+
248
+
249
+ ## knowhow chat:
250
+ After generating embeddings, you can use `knowhow chat` to speak with a base agent, that does not have any tools, but does have plugins.
251
+
252
+ You can use `agent` once you're in a chat to start talking to a Developer agent, that has a prompt and tools designed to help develop software.
253
+ You can use `agents` to see a list of configured agents you can speak with.
254
+ If you need multi-line input you can use `multi` to open a multi-line editor.
255
+
256
+ There are many commands you can call from a chat session, try TAB to see a list of available options.
257
+
258
+
259
+ ### knowhow chat: custom agents
260
+ ```json
261
+ "assistants": [
262
+ {
263
+ "name": "linter",
264
+ "description": "Clean up your code",
265
+ "instructions": "Read the files that are loaded via vim plugin and provide debugging and linter suggestions"
266
+ }
267
+ ]
268
+ ```
269
+ You can configure new agents via the config above. This would create a new option when you use `agents` in a chat session.
270
+
271
+ ## Lint Commands
272
+
273
+ ```json
274
+ {
275
+ "lintCommands": {
276
+ "js": "eslint",
277
+ "ts": "tslint $1 && tsc -p tsconfig.json"
278
+ }
279
+ }
280
+ ```
281
+ lintCommands are automatically run after an agent successfully patches a file, if the file extension matches. So you can configure the AI to receive feedback from tsc and the linter after modifying a TypeScript file. $1 will be replaced with the filepath that was patched.
282
+
283
+
284
+
285
+ ## Language Plugin
286
+
287
+ Configured in `.knowhow/language.json`
288
+
289
+ Knowhow has a language file, which allows you to define additional context that is included when you use certain phrases in your messages. For instance, you could load a Pull Request when you say "My PR", or load a file from the codebase when you reference it. Languages have "terms" which then load various sources into context. Sources currently can be files, text, or github links.
290
+
291
+ I primarily use this to define terms like "frontend" or "backend" to load prompt files
292
+
293
+ ## Example Language Definition
294
+
295
+ ```
296
+ {
297
+ "ui,frontend,component,page": {
298
+ "sources": [
299
+ {
300
+ "data": [
301
+ "./.knowhow/prompts/frontend.mdx"
302
+ ],
303
+ "kind": "file"
304
+ }
305
+ ]
306
+ }
307
+ }
308
+ ```
309
+
310
+
311
+ Here's and example of having a language term that triggers a plugin.
312
+ This example would load the diff of a PR every time we said "my pr"
313
+ ```
314
+ {
315
+ "knowhow config": {
316
+ "sources": [
317
+ {
318
+ "kind": "file",
319
+ "data": [
320
+ ".knowhow/knowhow.json"
321
+ ]
322
+ }
323
+ ]
324
+ },
325
+ "My PR": {
326
+ "sources": [
327
+ {
328
+ "kind": "github",
329
+ "data": [
330
+ "https://github.com/tyvm-ai/knowhow/pulls/1"
331
+ ]
332
+ }
333
+ ]
334
+ }
335
+ }
336
+ ```
package/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # Knowhow
2
+
3
+ Knowhow is a powerful tool for managing and utilizing project-specific knowledge and configurations.
4
+
5
+ ## Features
6
+
7
+ - Global configuration storage
8
+ - Template management
9
+ - Plugin system
10
+ - Embedding generation
11
+ - Custom agents
12
+
13
+ ## Global Configuration
14
+
15
+ Knowhow now supports a global configuration directory located at `~/.knowhow`. This directory stores global templates and configurations that can be shared across multiple projects.
16
+
17
+ ### Global Config Structure
18
+
19
+ ```
20
+ ~/.knowhow/
21
+ ├── knowhow.json
22
+ └── prompts/
23
+ └── [template files]
24
+ ```
25
+
26
+ - `knowhow.json`: Global configuration file
27
+ - `prompts/`: Directory containing global template files
28
+
29
+ ### Initialization Process
30
+
31
+ When initializing a new Knowhow project:
32
+
33
+ 1. The global config directory is created if it doesn't exist.
34
+ 2. Global templates are checked first and copied to the local project.
35
+ 3. If a template doesn't exist globally, it's created both globally and locally.
36
+
37
+ This ensures consistency across projects while allowing for project-specific customizations.
38
+
39
+ ## Usage
40
+
41
+ [Add usage instructions here]
42
+
43
+ ## Contributing
44
+
45
+ [Add contribution guidelines here]
46
+
47
+ ## License
48
+
49
+ [Add license information here]
@@ -0,0 +1,20 @@
1
+ This command line tool allows users to provide various inputs to interact with an AI assistant. Here are the key inputs a user can provide:
2
+
3
+ 1. **Commands**: Users can input specific commands to control the tool's behavior. The available commands include:
4
+ - `agent`: Toggle the use of a specific agent.
5
+ - `agents`: List and select from available agents.
6
+ - `debug`: Toggle debug mode.
7
+ - `multi`: Enable or disable multi-line input.
8
+ - `search`: Search for embeddings.
9
+ - `clear`: Clear the chat history.
10
+ - `exit`: Exit the tool.
11
+
12
+ 2. **Questions or Prompts**: Users can ask questions or provide prompts to the AI assistant. The tool will process these inputs and generate responses based on the provided embeddings and context.
13
+
14
+ 3. **Embedding Options**: When searching for embeddings, users can input options like `next`, `exit`, `embeddings`, and `use` to navigate through and select embeddings.
15
+
16
+ 4. **Agent Selection**: Users can select different agents to handle their queries by listing available agents and choosing one.
17
+
18
+ 5. **Chat History**: Users can view and clear the chat history to manage the context of their interactions.
19
+
20
+ These inputs allow users to interact with the AI assistant in a flexible and controlled manner, leveraging various commands and options to get the desired responses.
@@ -0,0 +1,11 @@
1
+ This command line tool accepts the following inputs (commands):
2
+
3
+ 1. **init**: Initializes the tool.
4
+ 2. **generate**: Generates some output.
5
+ 3. **embed**: Embeds data.
6
+ 4. **upload**: Uploads data.
7
+ 5. **download**: Downloads data.
8
+ 6. **upload:openai**: Uploads data to OpenAI.
9
+ 7. **chat**: Starts a chat session.
10
+
11
+ If an unknown command is provided, it will display a message listing the valid commands.
@@ -0,0 +1,47 @@
1
+ # Asana Plugin Executive Summary
2
+
3
+ ## Overview
4
+
5
+ The Asana Plugin is designed to enhance chat interactions by integrating Asana task and project data. It detects and resolves Asana task and project URLs within user prompts, retrieves relevant data, and embeds this information into the chat context. This plugin is particularly useful for teams and individuals who rely on Asana for project management and want to seamlessly incorporate task details into their communication workflows.
6
+
7
+ ## Key Features
8
+
9
+ ### Input Detection and Resolution
10
+
11
+ - **Task URLs**: The plugin identifies Asana task URLs within user prompts. It extracts these URLs and fetches the corresponding task details from Asana.
12
+ - **Project URLs**: Similarly, the plugin detects Asana project URLs and retrieves all tasks associated with the specified projects.
13
+
14
+ ### Contextual Enhancements
15
+
16
+ - **Task Details**: For each detected task, the plugin generates a detailed string that includes the task name, description, URL, and completion status. This information is then embedded into the chat, providing users with immediate access to task specifics.
17
+ - **Project Tasks**: When project URLs are detected, the plugin fetches and embeds details for all tasks within the project, offering a comprehensive view of project progress and individual task statuses.
18
+
19
+ ### Embeddings
20
+
21
+ - **Minimal Embeddings**: The plugin creates minimal embeddings for each task, which include:
22
+ - **ID**: The unique URL of the task.
23
+ - **Text**: A formatted string containing task details.
24
+ - **Metadata**: JSON-encoded task data for additional context.
25
+
26
+ These embeddings can be used to enrich chat interactions, making it easier for users to reference and discuss specific tasks and projects.
27
+
28
+ ## Environment Variables
29
+
30
+ To function correctly, the Asana Plugin requires the following environment variable to be set:
31
+
32
+ - **ASANA_TOKEN**: This token is used to authenticate API requests to Asana. It should be set to a valid Asana access token.
33
+
34
+ Example:
35
+ ```bash
36
+ export ASANA_TOKEN=your_asana_access_token
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ The Asana Plugin can be integrated into chat applications to provide real-time access to Asana task and project data. Users can simply include Asana task or project URLs in their messages, and the plugin will automatically fetch and embed the relevant details. This functionality is particularly useful for:
42
+
43
+ - **Project Management**: Keeping team members informed about task statuses and project progress.
44
+ - **Collaboration**: Facilitating discussions around specific tasks and projects by providing immediate access to detailed information.
45
+ - **Productivity**: Reducing the need to switch between chat applications and Asana, thereby streamlining workflows.
46
+
47
+ By leveraging the Asana Plugin, teams can enhance their communication efficiency and ensure that everyone stays on the same page with up-to-date task and project information.
@@ -0,0 +1,38 @@
1
+ # Executive Summary: Downloader Plugin
2
+
3
+ ## Overview
4
+
5
+ The Downloader Plugin is a comprehensive tool designed to facilitate the downloading, chunking, and transcription of audio and video content from various sources. This plugin is particularly useful for users who need to process large media files, extract meaningful information, and integrate this data into chat applications or other systems.
6
+
7
+ ## Key Features
8
+
9
+ ### Input Detection and Resolution
10
+
11
+ - **URL Input**: The plugin accepts URLs as input, specifically targeting media content from platforms like YouTube.
12
+ - **File Existence Check**: Before downloading, the plugin checks if the file already exists in the specified output directory to avoid redundant downloads.
13
+ - **Media Information Retrieval**: It fetches detailed information about the media content, such as file ID and extension, ensuring accurate processing.
14
+
15
+ ### Contextual Enhancements
16
+
17
+ - **Chunking Media Files**: The plugin can split large media files into smaller, manageable chunks. This is particularly useful for lengthy audio or video files, making them easier to process and transcribe.
18
+ - **Transcription of Chunks**: Each chunk of the media file is transcribed using OpenAI's Whisper model. This transcription can then be used to add context to chats, making the content searchable and more interactive.
19
+
20
+ ### Embeddings Generation
21
+
22
+ - **Text Embeddings**: The transcribed text from media chunks can be used to generate embeddings. These embeddings can be integrated into chat applications to enhance search capabilities, provide summaries, or enable other advanced text processing features.
23
+
24
+ ## Environment Variables
25
+
26
+ To ensure the plugin functions correctly, the following environment variables must be set:
27
+
28
+ - **OPENAI_API_KEY**: This variable is required to authenticate requests to the OpenAI API for transcription services.
29
+
30
+ ## Usage Scenarios
31
+
32
+ - **Content Creators**: Download and transcribe video or audio content to create searchable text archives.
33
+ - **Developers**: Integrate media content into chat applications, enhancing user interaction with contextual information.
34
+ - **Researchers**: Process large volumes of media data, extracting and analyzing transcriptions for insights.
35
+
36
+ ## Conclusion
37
+
38
+ The Downloader Plugin is a versatile tool that simplifies the process of downloading, chunking, and transcribing media content. By leveraging advanced transcription services and providing detailed media information, it adds significant value to chat applications and other systems requiring rich, contextual data. Ensure the necessary environment variables are set to fully utilize the plugin's capabilities.
@@ -0,0 +1,37 @@
1
+ # Downloader Plugin Executive Summary
2
+
3
+ ## Overview
4
+
5
+ The Downloader Plugin is designed to enhance chat interactions by detecting and resolving URLs within user inputs. It provides additional context to chats by downloading and converting the content of the URLs into text. Furthermore, it generates embeddings from the downloaded content, which can be used for various purposes such as search, recommendation, and analysis.
6
+
7
+ ## Key Features
8
+
9
+ ### URL Detection and Resolution
10
+ - **Input Detection**: The plugin scans user inputs for URLs using a regular expression.
11
+ - **Content Download**: It attempts to download the content from the detected URLs, excluding certain file types (e.g., images like jpg, jpeg, png, gif).
12
+ - **Text Conversion**: The downloaded content is converted into text, which can then be used to provide additional context in chats.
13
+
14
+ ### Contextual Enhancements
15
+ - **Transcript Generation**: The plugin generates a transcript of the downloaded content, which can be appended to the chat to provide more information and context.
16
+ - **Error Handling**: If a URL cannot be downloaded or processed, the plugin logs the error and continues processing other URLs.
17
+
18
+ ### Embedding Generation
19
+ - **Minimal Embeddings**: The plugin generates minimal embeddings from the text content of the downloaded URLs. These embeddings include:
20
+ - **ID**: The URL of the content.
21
+ - **Text**: The converted text from the downloaded content.
22
+ - **Metadata**: Additional metadata (currently empty but can be extended).
23
+
24
+ ## Environment Variables
25
+
26
+ The following environment variables are required for the plugin to function correctly:
27
+
28
+ - **`process.env.DOWNLOAD_DIR`**: Specifies the directory where the downloaded files will be stored. Default is set to `.knowhow/downloads/`.
29
+
30
+ ## Usage
31
+
32
+ The Downloader Plugin can be used in various scenarios where additional context from external URLs is beneficial. For example:
33
+ - **Customer Support**: Automatically fetch and display relevant documentation or resources linked in customer queries.
34
+ - **Content Aggregation**: Collect and summarize information from multiple sources for research or reporting purposes.
35
+ - **Knowledge Management**: Enhance internal knowledge bases by embedding content from external URLs.
36
+
37
+ By integrating the Downloader Plugin, users can significantly enrich their chat interactions with relevant and contextual information derived from external sources.
@@ -0,0 +1,42 @@
1
+ # Executive Summary: Audio and Video Download Plugin
2
+
3
+ ## Overview
4
+
5
+ This plugin is designed to facilitate the detection, resolution, and contextual enhancement of audio and video downloads. It provides a comprehensive set of features that allow users to manage and process multimedia content efficiently. The plugin is particularly useful for applications that require detailed metadata extraction, format resolution, and embedding generation for audio and video files.
6
+
7
+ ## Key Features
8
+
9
+ ### Input Detection and Resolution
10
+
11
+ - **Audio and Video Formats**: The plugin can detect various audio and video formats, including their extensions, resolutions, bitrates, and codecs.
12
+ - **Download Information**: It provides detailed information about the downloadable content, such as title, description, thumbnail, age limit, and available formats.
13
+ - **Protocol and Headers**: The plugin supports different protocols and can handle HTTP headers required for downloading content.
14
+
15
+ ### Contextual Enhancements
16
+
17
+ - **Metadata Extraction**: Extracts comprehensive metadata from audio and video files, including subtitles, extractor details, and webpage URLs.
18
+ - **Subtitles and Playlists**: Supports the extraction and management of subtitles and playlist information.
19
+ - **DRM Detection**: Identifies whether the content has Digital Rights Management (DRM) protection.
20
+
21
+ ### Embedding Generation
22
+
23
+ - **Audio and Video Embeddings**: Generates embeddings for audio and video content, which can be used for various applications such as content recommendation, search optimization, and more.
24
+ - **Format-Specific Embeddings**: Provides embeddings based on specific formats, ensuring that the content is optimized for different use cases.
25
+
26
+ ## Environment Variables
27
+
28
+ To ensure the plugin functions correctly, certain environment variables need to be set. These variables are crucial for configuring the plugin and enabling its features. Below are the required environment variables:
29
+
30
+ - **`process.env.API_KEY`**: The API key required for accessing certain functionalities of the plugin.
31
+ - **`process.env.DOWNLOAD_PATH`**: The path where downloaded content will be stored.
32
+ - **`process.env.LOG_LEVEL`**: The level of logging detail (e.g., `info`, `debug`, `error`).
33
+
34
+ ## Usage
35
+
36
+ This plugin can be integrated into applications that require robust audio and video processing capabilities. It is particularly useful for:
37
+
38
+ - **Content Management Systems (CMS)**: Enhancing multimedia content with detailed metadata and embeddings.
39
+ - **Media Players**: Providing rich context and format resolution for better playback experience.
40
+ - **Data Analysis Tools**: Extracting and analyzing multimedia content for insights and trends.
41
+
42
+ By leveraging this plugin, users can significantly improve the efficiency and effectiveness of their multimedia content management and processing workflows.
@@ -0,0 +1,41 @@
1
+ # Executive Summary: Embedding Plugin
2
+
3
+ ## Overview
4
+
5
+ The Embedding Plugin is designed to enhance chat interactions by detecting and resolving user prompts, adding relevant context to conversations, and generating sophisticated embeddings. This plugin is particularly useful for applications that require contextual understanding and retrieval of information from a knowledge base.
6
+
7
+ ## Key Features
8
+
9
+ ### Input Detection and Resolution
10
+
11
+ - **User Prompt Handling**: The plugin is capable of detecting user prompts and processing them to retrieve relevant information.
12
+ - **Contextual Responses**: By analyzing the user input, the plugin can provide contextually appropriate responses, enhancing the overall user experience.
13
+
14
+ ### Context Addition
15
+
16
+ - **Knowledge Base Integration**: The plugin integrates with a pre-configured knowledge base to fetch relevant information.
17
+ - **Contextual Embedding**: It adds extra context to chats by retrieving and presenting the most relevant pieces of information from the knowledge base.
18
+ - **Response Formatting**: The plugin formats the retrieved information into a coherent response that can be easily understood by the user.
19
+
20
+ ### Embedding Generation
21
+
22
+ - **Configured Embeddings**: The plugin utilizes pre-configured embeddings to process and understand user prompts.
23
+ - **Query Embedding**: It queries the embeddings to find the most relevant information that matches the user prompt.
24
+ - **Result Presentation**: The plugin presents the top results, excluding the vector data, to provide a clean and concise response.
25
+
26
+ ## Environment Variables
27
+
28
+ To ensure the proper functioning of the Embedding Plugin, certain environment variables need to be set. These variables are crucial for configuring the embeddings and querying the knowledge base. The required environment variables include:
29
+
30
+ - **EMBEDDING_API_KEY**: This variable is used to authenticate and access the embedding service.
31
+ - **KNOWLEDGE_BASE_URL**: This variable specifies the URL of the knowledge base that the plugin will query for information.
32
+
33
+ ## Usage
34
+
35
+ The Embedding Plugin can be used in various applications where contextual understanding and information retrieval are essential. It is particularly useful in:
36
+
37
+ - **Customer Support**: Enhancing automated responses by providing relevant information from a knowledge base.
38
+ - **Virtual Assistants**: Improving the accuracy and relevance of responses by adding contextual information.
39
+ - **Educational Tools**: Assisting in providing detailed and contextually appropriate answers to user queries.
40
+
41
+ By integrating the Embedding Plugin, applications can significantly improve their interaction quality, providing users with more accurate and contextually relevant information.