@tyvm/knowhow 0.0.93 → 0.0.94

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 (264) hide show
  1. package/package.json +3 -2
  2. package/ts_build/package.json +3 -2
  3. package/ts_build/src/cli.js +0 -0
  4. package/ts_build/src/agents/tools/asana/definitions.d.ts +0 -202
  5. package/ts_build/src/agents/tools/asana/definitions.js +0 -197
  6. package/ts_build/src/agents/tools/asana/definitions.js.map +0 -1
  7. package/ts_build/src/agents/tools/asana/index.d.ts +0 -8
  8. package/ts_build/src/agents/tools/asana/index.js +0 -98
  9. package/ts_build/src/agents/tools/asana/index.js.map +0 -1
  10. package/ts_build/src/agents/tools/ast/astAppendNode.d.ts +0 -1
  11. package/ts_build/src/agents/tools/ast/astAppendNode.js +0 -8
  12. package/ts_build/src/agents/tools/ast/astAppendNode.js.map +0 -1
  13. package/ts_build/src/agents/tools/ast/astDeleteNode.d.ts +0 -1
  14. package/ts_build/src/agents/tools/ast/astDeleteNode.js +0 -8
  15. package/ts_build/src/agents/tools/ast/astDeleteNode.js.map +0 -1
  16. package/ts_build/src/agents/tools/ast/astEditNode.d.ts +0 -1
  17. package/ts_build/src/agents/tools/ast/astEditNode.js +0 -8
  18. package/ts_build/src/agents/tools/ast/astEditNode.js.map +0 -1
  19. package/ts_build/src/agents/tools/ast/astGetPathForLine.d.ts +0 -1
  20. package/ts_build/src/agents/tools/ast/astGetPathForLine.js +0 -8
  21. package/ts_build/src/agents/tools/ast/astGetPathForLine.js.map +0 -1
  22. package/ts_build/src/agents/tools/ast/astListPaths.d.ts +0 -1
  23. package/ts_build/src/agents/tools/ast/astListPaths.js +0 -8
  24. package/ts_build/src/agents/tools/ast/astListPaths.js.map +0 -1
  25. package/ts_build/src/agents/tools/ast/index.d.ts +0 -5
  26. package/ts_build/src/agents/tools/ast/index.js +0 -14
  27. package/ts_build/src/agents/tools/ast/index.js.map +0 -1
  28. package/ts_build/src/agents/tools/astAppendNode.d.ts +0 -1
  29. package/ts_build/src/agents/tools/astAppendNode.js +0 -98
  30. package/ts_build/src/agents/tools/astAppendNode.js.map +0 -1
  31. package/ts_build/src/agents/tools/astDeleteNode.d.ts +0 -1
  32. package/ts_build/src/agents/tools/astDeleteNode.js +0 -95
  33. package/ts_build/src/agents/tools/astDeleteNode.js.map +0 -1
  34. package/ts_build/src/agents/tools/astEditNode.d.ts +0 -1
  35. package/ts_build/src/agents/tools/astEditNode.js +0 -98
  36. package/ts_build/src/agents/tools/astEditNode.js.map +0 -1
  37. package/ts_build/src/agents/tools/astGetPathForLine.d.ts +0 -1
  38. package/ts_build/src/agents/tools/astGetPathForLine.js +0 -89
  39. package/ts_build/src/agents/tools/astGetPathForLine.js.map +0 -1
  40. package/ts_build/src/agents/tools/astListPaths.d.ts +0 -1
  41. package/ts_build/src/agents/tools/astListPaths.js +0 -82
  42. package/ts_build/src/agents/tools/astListPaths.js.map +0 -1
  43. package/ts_build/src/agents/tools/github/definitions.d.ts +0 -47
  44. package/ts_build/src/agents/tools/github/definitions.js +0 -86
  45. package/ts_build/src/agents/tools/github/definitions.js.map +0 -1
  46. package/ts_build/src/agents/tools/github/index.d.ts +0 -789
  47. package/ts_build/src/agents/tools/github/index.js +0 -56
  48. package/ts_build/src/agents/tools/github/index.js.map +0 -1
  49. package/ts_build/src/agents/tools/startChatTask.d.ts +0 -13
  50. package/ts_build/src/agents/tools/startChatTask.js +0 -73
  51. package/ts_build/src/agents/tools/startChatTask.js.map +0 -1
  52. package/ts_build/src/agents/vim/vim.d.ts +0 -13
  53. package/ts_build/src/agents/vim/vim.js +0 -170
  54. package/ts_build/src/agents/vim/vim.js.map +0 -1
  55. package/ts_build/src/chat/ChatCommandHandler.d.ts +0 -36
  56. package/ts_build/src/chat/ChatCommandHandler.js +0 -268
  57. package/ts_build/src/chat/ChatCommandHandler.js.map +0 -1
  58. package/ts_build/src/chat/ChatInputManager.d.ts +0 -22
  59. package/ts_build/src/chat/ChatInputManager.js +0 -85
  60. package/ts_build/src/chat/ChatInputManager.js.map +0 -1
  61. package/ts_build/src/chat/ChatManager.d.ts +0 -49
  62. package/ts_build/src/chat/ChatManager.js +0 -271
  63. package/ts_build/src/chat/ChatManager.js.map +0 -1
  64. package/ts_build/src/chat/ChatSession.d.ts +0 -32
  65. package/ts_build/src/chat/ChatSession.js +0 -3
  66. package/ts_build/src/chat/ChatSession.js.map +0 -1
  67. package/ts_build/src/chat/ChatSessionManager.d.ts +0 -19
  68. package/ts_build/src/chat/ChatSessionManager.js +0 -188
  69. package/ts_build/src/chat/ChatSessionManager.js.map +0 -1
  70. package/ts_build/src/chat/ChatStateManager.d.ts +0 -58
  71. package/ts_build/src/chat/ChatStateManager.js +0 -156
  72. package/ts_build/src/chat/ChatStateManager.js.map +0 -1
  73. package/ts_build/src/chat/InterruptibleInput.d.ts +0 -20
  74. package/ts_build/src/chat/InterruptibleInput.js +0 -109
  75. package/ts_build/src/chat/InterruptibleInput.js.map +0 -1
  76. package/ts_build/src/chat/interfaces/ChatModule.d.ts +0 -6
  77. package/ts_build/src/chat/interfaces/ChatModule.js +0 -3
  78. package/ts_build/src/chat/interfaces/ChatModule.js.map +0 -1
  79. package/ts_build/src/chat-old.d.ts +0 -13
  80. package/ts_build/src/chat-old.js +0 -340
  81. package/ts_build/src/chat-old.js.map +0 -1
  82. package/ts_build/src/chat2.d.ts +0 -3
  83. package/ts_build/src/chat2.js +0 -47
  84. package/ts_build/src/chat2.js.map +0 -1
  85. package/ts_build/src/dockerWorker.d.ts +0 -22
  86. package/ts_build/src/dockerWorker.js +0 -210
  87. package/ts_build/src/dockerWorker.js.map +0 -1
  88. package/ts_build/src/plugins/asana.d.ts +0 -19
  89. package/ts_build/src/plugins/asana.js +0 -124
  90. package/ts_build/src/plugins/asana.js.map +0 -1
  91. package/ts_build/src/plugins/downloader/downloader.d.ts +0 -26
  92. package/ts_build/src/plugins/downloader/downloader.js +0 -324
  93. package/ts_build/src/plugins/downloader/downloader.js.map +0 -1
  94. package/ts_build/src/plugins/downloader/plugin.d.ts +0 -12
  95. package/ts_build/src/plugins/downloader/plugin.js +0 -98
  96. package/ts_build/src/plugins/downloader/plugin.js.map +0 -1
  97. package/ts_build/src/plugins/downloader/types.d.ts +0 -88
  98. package/ts_build/src/plugins/downloader/types.js +0 -79
  99. package/ts_build/src/plugins/downloader/types.js.map +0 -1
  100. package/ts_build/src/plugins/figma.d.ts +0 -25
  101. package/ts_build/src/plugins/figma.js +0 -134
  102. package/ts_build/src/plugins/figma.js.map +0 -1
  103. package/ts_build/src/plugins/github.d.ts +0 -1227
  104. package/ts_build/src/plugins/github.js +0 -182
  105. package/ts_build/src/plugins/github.js.map +0 -1
  106. package/ts_build/src/plugins/jira.d.ts +0 -18
  107. package/ts_build/src/plugins/jira.js +0 -104
  108. package/ts_build/src/plugins/jira.js.map +0 -1
  109. package/ts_build/src/plugins/linear.d.ts +0 -26
  110. package/ts_build/src/plugins/linear.js +0 -194
  111. package/ts_build/src/plugins/linear.js.map +0 -1
  112. package/ts_build/src/plugins/notion.d.ts +0 -35
  113. package/ts_build/src/plugins/notion.js +0 -141
  114. package/ts_build/src/plugins/notion.js.map +0 -1
  115. package/ts_build/src/plugins/tree-sitter/editor.d.ts +0 -5
  116. package/ts_build/src/plugins/tree-sitter/editor.js +0 -16
  117. package/ts_build/src/plugins/tree-sitter/editor.js.map +0 -1
  118. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.d.ts +0 -29
  119. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js +0 -538
  120. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js.map +0 -1
  121. package/ts_build/src/plugins/tree-sitter/human-readable-paths.d.ts +0 -22
  122. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js +0 -332
  123. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js.map +0 -1
  124. package/ts_build/src/plugins/tree-sitter/lang-packs/index.d.ts +0 -8
  125. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js +0 -26
  126. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js.map +0 -1
  127. package/ts_build/src/plugins/tree-sitter/lang-packs/java.d.ts +0 -2
  128. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js +0 -61
  129. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js.map +0 -1
  130. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.d.ts +0 -2
  131. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js +0 -59
  132. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js.map +0 -1
  133. package/ts_build/src/plugins/tree-sitter/lang-packs/python.d.ts +0 -2
  134. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js +0 -47
  135. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js.map +0 -1
  136. package/ts_build/src/plugins/tree-sitter/lang-packs/types.d.ts +0 -43
  137. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js +0 -3
  138. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js.map +0 -1
  139. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.d.ts +0 -2
  140. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js +0 -50
  141. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js.map +0 -1
  142. package/ts_build/src/plugins/tree-sitter/parser.d.ts +0 -40
  143. package/ts_build/src/plugins/tree-sitter/parser.js +0 -36
  144. package/ts_build/src/plugins/tree-sitter/parser.js.map +0 -1
  145. package/ts_build/src/plugins/tree-sitter/simple-paths.d.ts +0 -9
  146. package/ts_build/src/plugins/tree-sitter/simple-paths.js +0 -10
  147. package/ts_build/src/plugins/tree-sitter/simple-paths.js.map +0 -1
  148. package/ts_build/src/services/AgentSynchronization.d.ts +0 -29
  149. package/ts_build/src/services/AgentSynchronization.js +0 -178
  150. package/ts_build/src/services/AgentSynchronization.js.map +0 -1
  151. package/ts_build/src/services/GitHub.d.ts +0 -10
  152. package/ts_build/src/services/GitHub.js +0 -51
  153. package/ts_build/src/services/GitHub.js.map +0 -1
  154. package/ts_build/src/utils/PersistentInputManager.d.ts +0 -28
  155. package/ts_build/src/utils/PersistentInputManager.js +0 -293
  156. package/ts_build/src/utils/PersistentInputManager.js.map +0 -1
  157. package/ts_build/src/worker/handlers/proxyHandler.d.ts +0 -2
  158. package/ts_build/src/worker/handlers/proxyHandler.js +0 -41
  159. package/ts_build/src/worker/handlers/proxyHandler.js.map +0 -1
  160. package/ts_build/src/worker/tools/index.d.ts +0 -1
  161. package/ts_build/src/worker/tools/index.js +0 -18
  162. package/ts_build/src/worker/tools/index.js.map +0 -1
  163. package/ts_build/src/worker/tools/portForwarding.d.ts +0 -49
  164. package/ts_build/src/worker/tools/portForwarding.js +0 -173
  165. package/ts_build/src/worker/tools/portForwarding.js.map +0 -1
  166. package/ts_build/src/worker/types/proxy.d.ts +0 -18
  167. package/ts_build/src/worker/types/proxy.js +0 -3
  168. package/ts_build/src/worker/types/proxy.js.map +0 -1
  169. package/ts_build/src/worker-entrypoint.d.ts +0 -2
  170. package/ts_build/src/worker-entrypoint.js +0 -39
  171. package/ts_build/src/worker-entrypoint.js.map +0 -1
  172. package/ts_build/src/workerSync.d.ts +0 -8
  173. package/ts_build/src/workerSync.js +0 -120
  174. package/ts_build/src/workerSync.js.map +0 -1
  175. package/ts_build/src/workers/tools/listForwardedPorts.d.ts +0 -10
  176. package/ts_build/src/workers/tools/listForwardedPorts.js +0 -22
  177. package/ts_build/src/workers/tools/listForwardedPorts.js.map +0 -1
  178. package/ts_build/tests/integration/figma.test.d.ts +0 -1
  179. package/ts_build/tests/integration/figma.test.js +0 -47
  180. package/ts_build/tests/integration/figma.test.js.map +0 -1
  181. package/ts_build/tests/integration/fileblocks/readwrite.test.d.ts +0 -1
  182. package/ts_build/tests/integration/fileblocks/readwrite.test.js +0 -96
  183. package/ts_build/tests/integration/fileblocks/readwrite.test.js.map +0 -1
  184. package/ts_build/tests/integration/patching.test.d.ts +0 -1
  185. package/ts_build/tests/integration/patching.test.js +0 -116
  186. package/ts_build/tests/integration/patching.test.js.map +0 -1
  187. package/ts_build/tests/languagePlugin.test.d.ts +0 -1
  188. package/ts_build/tests/languagePlugin.test.js +0 -284
  189. package/ts_build/tests/languagePlugin.test.js.map +0 -1
  190. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.d.ts +0 -1
  191. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js +0 -315
  192. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js.map +0 -1
  193. package/ts_build/tests/manual/persistent-input-test.d.ts +0 -1
  194. package/ts_build/tests/manual/persistent-input-test.js +0 -35
  195. package/ts_build/tests/manual/persistent-input-test.js.map +0 -1
  196. package/ts_build/tests/services/Plugins/plugin-event-integration.test.d.ts +0 -1
  197. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js +0 -232
  198. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js.map +0 -1
  199. package/ts_build/tests/tree-sitter/editor.test.d.ts +0 -1
  200. package/ts_build/tests/tree-sitter/editor.test.js +0 -85
  201. package/ts_build/tests/tree-sitter/editor.test.js.map +0 -1
  202. package/ts_build/tests/tree-sitter/invalid.test.d.ts +0 -1
  203. package/ts_build/tests/tree-sitter/invalid.test.js +0 -198
  204. package/ts_build/tests/tree-sitter/invalid.test.js.map +0 -1
  205. package/ts_build/tests/tree-sitter/paths/common-edits.test.d.ts +0 -1
  206. package/ts_build/tests/tree-sitter/paths/common-edits.test.js +0 -347
  207. package/ts_build/tests/tree-sitter/paths/common-edits.test.js.map +0 -1
  208. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.d.ts +0 -1
  209. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js +0 -35
  210. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js.map +0 -1
  211. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.d.ts +0 -1
  212. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js +0 -38
  213. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js.map +0 -1
  214. package/ts_build/tests/tree-sitter/paths/debug-paths.test.d.ts +0 -1
  215. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js +0 -74
  216. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js.map +0 -1
  217. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.d.ts +0 -1
  218. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js +0 -302
  219. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js.map +0 -1
  220. package/ts_build/tests/tree-sitter/paths/paths.test.d.ts +0 -1
  221. package/ts_build/tests/tree-sitter/paths/paths.test.js +0 -116
  222. package/ts_build/tests/tree-sitter/paths/paths.test.js.map +0 -1
  223. package/ts_build/tests/tree-sitter/paths/simple-paths.test.d.ts +0 -1
  224. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js +0 -302
  225. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js.map +0 -1
  226. package/ts_build/tests/tree-sitter/sample-after.d.ts +0 -11
  227. package/ts_build/tests/tree-sitter/sample-after.js +0 -44
  228. package/ts_build/tests/tree-sitter/sample-after.js.map +0 -1
  229. package/ts_build/tests/tree-sitter/sample-before.d.ts +0 -9
  230. package/ts_build/tests/tree-sitter/sample-before.js +0 -28
  231. package/ts_build/tests/tree-sitter/sample-before.js.map +0 -1
  232. package/ts_build/tests/tree-sitter/test-files/completely-broken.d.ts +0 -2
  233. package/ts_build/tests/tree-sitter/test-files/completely-broken.js +0 -17
  234. package/ts_build/tests/tree-sitter/test-files/completely-broken.js.map +0 -1
  235. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.d.ts +0 -8
  236. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js +0 -38
  237. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js.map +0 -1
  238. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.d.ts +0 -8
  239. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js +0 -38
  240. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js.map +0 -1
  241. package/ts_build/tests/tree-sitter/test-files/malformed-signature.d.ts +0 -8
  242. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js +0 -38
  243. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js.map +0 -1
  244. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.d.ts +0 -10
  245. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js +0 -38
  246. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js.map +0 -1
  247. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.d.ts +0 -8
  248. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js +0 -38
  249. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js.map +0 -1
  250. package/ts_build/tests/tree-sitter/test-files/partially-broken.d.ts +0 -6
  251. package/ts_build/tests/tree-sitter/test-files/partially-broken.js +0 -20
  252. package/ts_build/tests/tree-sitter/test-files/partially-broken.js.map +0 -1
  253. package/ts_build/tests/tree-sitter/test-files/specific-errors.d.ts +0 -7
  254. package/ts_build/tests/tree-sitter/test-files/specific-errors.js +0 -14
  255. package/ts_build/tests/tree-sitter/test-files/specific-errors.js.map +0 -1
  256. package/ts_build/tests/tree-sitter/test-files/unclosed-string.d.ts +0 -8
  257. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js +0 -38
  258. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js.map +0 -1
  259. package/ts_build/tests/tree-sitter/tree-sitter.test.d.ts +0 -0
  260. package/ts_build/tests/tree-sitter/tree-sitter.test.js +0 -4
  261. package/ts_build/tests/tree-sitter/tree-sitter.test.js.map +0 -1
  262. package/ts_build/tests/worker/handlers/proxyHandler.test.d.ts +0 -1
  263. package/ts_build/tests/worker/handlers/proxyHandler.test.js +0 -170
  264. package/ts_build/tests/worker/handlers/proxyHandler.test.js.map +0 -1
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPullRequestBuildFailureLogs = exports.getRunLogs = exports.getPullRequestBuildStatuses = exports.getPullRequest = void 0;
4
- const rest_1 = require("@octokit/rest");
5
- const execCommand_1 = require("../execCommand");
6
- const octokit = new rest_1.Octokit({
7
- auth: process.env.GITHUB_TOKEN,
8
- });
9
- async function getPullRequest(url) {
10
- const [owner, repo, _, pullNumber] = url.split("/").slice(-4);
11
- const pullRequest = await octokit.rest.pulls.get({
12
- owner,
13
- repo,
14
- pull_number: parseInt(pullNumber, 10),
15
- });
16
- return pullRequest;
17
- }
18
- exports.getPullRequest = getPullRequest;
19
- async function getPullRequestBuildStatuses(url) {
20
- const [owner, repo, _, pullNumber] = url.split("/").slice(-4);
21
- const pullRequest = await octokit.rest.pulls.get({
22
- owner,
23
- repo,
24
- pull_number: parseInt(pullNumber, 10),
25
- });
26
- const { data: statuses } = await octokit.rest.checks.listForRef({
27
- owner,
28
- repo,
29
- ref: pullRequest.data.head.sha,
30
- });
31
- return statuses;
32
- }
33
- exports.getPullRequestBuildStatuses = getPullRequestBuildStatuses;
34
- async function getRunLogs(runId, owner, repo) {
35
- const logs = await (0, execCommand_1.execCommand)(`gh run view ${runId} -R ${owner}/${repo} --log`);
36
- return logs;
37
- }
38
- exports.getRunLogs = getRunLogs;
39
- async function getPullRequestBuildFailureLogs(url) {
40
- const [owner, repo, _, pullNumber] = url.split("/").slice(-4);
41
- const statuses = await getPullRequestBuildStatuses(url);
42
- const failures = statuses.check_runs.filter((status) => status.conclusion === "failure");
43
- if (failures.length === 0) {
44
- return "No failures found";
45
- }
46
- const allLogs = [];
47
- for (const fail of failures) {
48
- const [runId, __, jobId] = fail.details_url.split("/").slice(-3);
49
- const logs = await (0, execCommand_1.execCommand)(`gh run view ${runId} -R ${owner}/${repo} --log | grep -E 'FAIL|ERROR' -A 25 -B 25`);
50
- return logs;
51
- allLogs.push(logs);
52
- }
53
- return allLogs;
54
- }
55
- exports.getPullRequestBuildFailureLogs = getPullRequestBuildFailureLogs;
56
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/agents/tools/github/index.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AAExC,gDAA6C;AAE7C,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;CAC/B,CAAC,CAAC;AAEI,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/C,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;KACtC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AATD,wCASC;AAEM,KAAK,UAAU,2BAA2B,CAAC,GAAW;IAC3D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/C,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC9D,KAAK;QACL,IAAI;QACJ,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KAC/B,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAhBD,kEAgBC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,KAAa,EAAE,IAAY;IACzE,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAW,EAC5B,eAAe,KAAK,OAAO,KAAK,IAAI,IAAI,QAAQ,CACjD,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AALD,gCAKC;AAEM,KAAK,UAAU,8BAA8B,CAAC,GAAW;IAC9D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAC5C,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,mBAAmB,CAAC;KAC5B;IAED,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAW,EAC5B,eAAe,KAAK,OAAO,KAAK,IAAI,IAAI,2CAA2C,CACpF,CAAC;QACF,OAAO,IAAI,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAtBD,wEAsBC"}
@@ -1,13 +0,0 @@
1
- import { Tool } from "../../clients/types";
2
- interface StartAgentTaskParams {
3
- messageId: string;
4
- prompt: string;
5
- provider?: string;
6
- model?: string;
7
- agentName?: string;
8
- maxTimeLimit?: number;
9
- maxSpendLimit?: number;
10
- }
11
- export declare function startAgentTask(params: StartAgentTaskParams): Promise<string>;
12
- export declare const startAgentTaskDefinition: Tool;
13
- export {};
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startAgentTaskDefinition = exports.startAgentTask = void 0;
4
- const execCommand_1 = require("./execCommand");
5
- async function startAgentTask(params) {
6
- const { messageId, prompt, provider, model, agentName, maxTimeLimit, maxSpendLimit, } = params;
7
- if (!messageId) {
8
- throw new Error("messageId is required to create a chat task");
9
- }
10
- if (!prompt) {
11
- throw new Error("prompt is required to create a chat task");
12
- }
13
- let command = `knowhow agent --input "${prompt}" --message-id ${messageId}`;
14
- if (provider) {
15
- command += ` --provider ${provider}`;
16
- }
17
- if (model) {
18
- command += ` --model "${model}"`;
19
- }
20
- if (agentName) {
21
- command += ` --agent-name "${agentName}"`;
22
- }
23
- if (maxTimeLimit !== undefined) {
24
- command += ` --max-time-limit ${maxTimeLimit}`;
25
- }
26
- if (maxSpendLimit !== undefined) {
27
- command += ` --max-spend-limit ${maxSpendLimit}`;
28
- }
29
- return (0, execCommand_1.execCommand)(command, 60000, true);
30
- }
31
- exports.startAgentTask = startAgentTask;
32
- exports.startAgentTaskDefinition = {
33
- type: "function",
34
- function: {
35
- name: "startAgentTask",
36
- description: "Create a new chat task in Knowhow based on a message ID and prompt. This allows worker agents to start tasks and update knowhow's backend with all CLI agent options",
37
- parameters: {
38
- type: "object",
39
- properties: {
40
- messageId: {
41
- type: "string",
42
- description: "The ID of the message in Knowhow to associate with this task",
43
- },
44
- prompt: {
45
- type: "string",
46
- description: "The prompt or description for the task to be created",
47
- },
48
- provider: {
49
- type: "string",
50
- description: "AI provider (openai, anthropic, google, xai). Default: openai",
51
- },
52
- model: {
53
- type: "string",
54
- description: "Specific model for the provider",
55
- },
56
- agentName: {
57
- type: "string",
58
- description: "Which agent to use. Default: Patcher",
59
- },
60
- maxTimeLimit: {
61
- type: "number",
62
- description: "Time limit for agent execution in minutes. Default: 30",
63
- },
64
- maxSpendLimit: {
65
- type: "number",
66
- description: "Cost limit for agent execution in dollars. Default: 10",
67
- },
68
- },
69
- required: ["messageId", "prompt"],
70
- },
71
- },
72
- };
73
- //# sourceMappingURL=startChatTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startChatTask.js","sourceRoot":"","sources":["../../../../src/agents/tools/startChatTask.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAgBrC,KAAK,UAAU,cAAc,CAAC,MAA4B;IAC/D,MAAM,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,aAAa,GACd,GAAG,MAAM,CAAC;IAEX,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IAED,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAGD,IAAI,OAAO,GAAG,0BAA0B,MAAM,kBAAkB,SAAS,EAAE,CAAC;IAE5E,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,eAAe,QAAQ,EAAE,CAAC;KACtC;IAED,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,aAAa,KAAK,GAAG,CAAC;KAClC;IAED,IAAI,SAAS,EAAE;QACb,OAAO,IAAI,kBAAkB,SAAS,GAAG,CAAC;KAC3C;IAED,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO,IAAI,qBAAqB,YAAY,EAAE,CAAC;KAChD;IAED,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,IAAI,sBAAsB,aAAa,EAAE,CAAC;KAClD;IAED,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AA3CD,wCA2CC;AAEY,QAAA,wBAAwB,GAAS;IAC5C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,sKAAsK;QACxK,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8DAA8D;iBACjE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+DAA+D;iBAClE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAClC;KACF;CACF,CAAC"}
@@ -1,13 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { Message } from "../../clients/types";
4
- import { AgentContext, BaseAgent } from "../base/base";
5
- export declare class VimAgent extends BaseAgent {
6
- name: string;
7
- description: string;
8
- toolPath: string;
9
- constructor(context: AgentContext);
10
- saveVimGuide(): Promise<void>;
11
- getVimGuide(): Promise<Buffer>;
12
- getInitialMessages(userInput: string): Promise<Message[]>;
13
- }
@@ -1,170 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.VimAgent = void 0;
27
- const fs = __importStar(require("fs"));
28
- const base_1 = require("../base/base");
29
- const utils_1 = require("../../utils");
30
- const ai_1 = require("../../ai");
31
- const prompt_1 = require("../base/prompt");
32
- class VimAgent extends base_1.BaseAgent {
33
- name = "Vimmer";
34
- description = `This agent is prepared to modify files in the codebase by using vim`;
35
- toolPath = ".knowhow/tools/vim";
36
- constructor(context) {
37
- super(context);
38
- this.setModelPreferences([
39
- { model: ai_1.Models.anthropic.Sonnet4, provider: "anthropic" },
40
- ]);
41
- }
42
- async saveVimGuide() {
43
- const vimrc = await (0, utils_1.execAsync)("cat ~/.vim/vimrc");
44
- await (0, utils_1.mkdir)(this.toolPath, { recursive: true });
45
- const vimRcPrompt = `Extract a minimal format of commands and hotkeys that an ai could leverage from this vimrc ${vimrc.stdout}. Only output the hotkeys and commands you see, nothing else`;
46
- const extraction = await (0, ai_1.singlePrompt)(vimRcPrompt);
47
- await (0, utils_1.writeFile)(".knowhow/tools/vim/guide.md", extraction);
48
- }
49
- async getVimGuide() {
50
- if (!fs.existsSync(".knowhow/tools/vim/guide.md")) {
51
- await this.saveVimGuide();
52
- }
53
- const guide = await (0, utils_1.readFile)(".knowhow/tools/vim/guide.md");
54
- return guide;
55
- }
56
- async getInitialMessages(userInput) {
57
- return [
58
- {
59
- role: "system",
60
- content: `
61
- ${prompt_1.BASE_PROMPT}
62
-
63
- Specialization: Vim Agent, ${this.description}
64
-
65
- # General Instructions
66
-
67
- You are a software engineering agent. You use tools to gather context on a user's request, answer questions, and create modifications to files in order to help the user work on a codebase.
68
- Some user requests require you to investigate many files, and gather context before attempting to modify anything. If a user asks a question about the codebase or if you need more context on something before making modifications, you should ask the Researcher agent for help by using the agentCall tool.
69
-
70
- You are a vim specialist, and you primarily use the VIM tools (sendVimInput) to make edits to files. You are primarily operating as a terminal app that the user runs from their current working directory.
71
- The sendVimInput function will open a blank vim process in the user's working directory.
72
- Make sure to open the file you are working on at the beginning, as you are in a blank vim session.
73
- Use :e <filename>\\n to open a file, and <ESCAPE>:w\\n to save it.
74
- Make sure to send the proper escape ('<ESCAPE>') and save commands after modifying a file.
75
- Make sure to use ESCAPE to exit insert mode before attempting to execute commands like (<ESCAPE>:w\\n).
76
- When executing commands, make sure you actually execute them by including a newline character after the command.
77
- If you do not include the newline, it will not actually execute the command.
78
- Make sure you use the typical vim keys to move and enter modes, <ESCAPE> and <ENTER> are specially supported tags, but the rest of the inputs should be the normally supported vim keys that you would press on the keyboard.
79
-
80
-
81
-
82
- # Interaction Loop
83
- Using the editor should follow an interaction loop:
84
- 1. First open the editor.
85
- 2. Attempt to open the file you want to edit.
86
- 2.a IMPORTANT: DO NOT SEND ANY OTHER COMMANDS, VERIFY THE FILE HAS OPENED CORRECTLY.
87
- 2.b If the file did not open correctly, you will need to close vim and re-open it to try again.
88
- 2.c If you expect a file to have text, and you do not get any text in the terminal output after attempting to open it, there is a high likelihood the file was not opened correctly and you should try again. If you see [No Name] that also may indicate the file was not opened correctly.
89
- 2.d After opening a file, verify that you are in the correct buffer by checking for the expected file name in the terminal output. If the output shows [No Name] or another buffer name, close Vim and retry opening the correct file.
90
- 3. Inspect the response from openFileInVim to determine if the file was opened.
91
- * Check for any errors or prompts that may have occurred, respond to them if so.
92
- 4. Use sendVimInput to modify the file in vim.
93
- * Do not use <ESCAPE> while typing, unless you want to exit insert mode.
94
- 5. Save your changes via <ESCAPE>:w\\n or saveVimFile .
95
- * From the returned terminal outputs, determine if the changes went as expected.
96
- 6. ALWAYS use readFile tool to check your work after saving.
97
- * Based off the results, you may need to undo and then save.
98
- * As long as vim has not been closed, you can send :u0 or use u to undo
99
- * You may also leverage git diff
100
- 7. If you discover there were errors to your changes, attempt to fix them by repeating steps 4-6,
101
- * After failing a twice, you should enter paste mode and output the expected contents of the file to vim.
102
- 8. After completing your task and checking your work, you MUST call finalAnswer.
103
-
104
-
105
-
106
- After each sendVimInput, the function response will contain the changes in the vim terminal. Inspect that response to get an understanding of what is happening in the editor.
107
-
108
- The vim process will remain open, and you can correct your current state by responding to the state of the terminal.
109
- It may help to execute fewer commands up front until you're confident you have opened the file you want to edit.
110
- If you check a file after your changes and find that some input has messed it up, and you've saved, you can undo your changes with :u0, or use the undo command to go back one change at a time.
111
-
112
- Use multiple interactions with sendVimInput to make changes to the file, inspecting the response each time to ensure the current state of vim is as expected.
113
- Since vim is interactive, you may be required to respond to prompts the program asks in order to proceed, you will need to monitor the response from sendVimInput to know when and how to respond to these prompts.
114
-
115
- # Using ESCAPE to change modes
116
- <ESCAPE> should only be used to change vim modes.
117
- Once you are in insert mode, be careful not to send <ESCAPE> as part of the text you are entering.
118
- When you go to exit insert mode, to save, or run some other :command, you MUST send <ESCAPE> before the command.
119
-
120
- # User's active vim plugins
121
- Here's a guide on what plugins and features are currently enabled in vim:
122
- START VIM GUIDE
123
- ${await this.getVimGuide()}
124
- END VIM GUIDE
125
-
126
- # Programming Instructions
127
- After modifying source code, you must run the auto-format before saving with gg=G or any plugin commands for formatting.
128
- All inserted code should be properly indented and styled consistently with the surrounding code.
129
- Ensure that you follow programming best practices, style best practices, and ensure that the syntax of the file is correct.
130
- Pay very close attention to text around your changes, as you may inadvertently affect or break the surrounding code if you inserted code in the wrong place.
131
-
132
- The vim plugins may include auto-completes, auto-indents etc that will impact bulk inserting of lines of text.
133
- If you do not need to leverage those features, then you should enable paste mode via :set paste and :set nopaste to disable it after inserting your fully formatted text.
134
- The editor may assume comments continue on the next line, or do other syntax auto completions, so make sure to check the actual state of a file, and make corrections if the editor over-corrected your input, or use paste mode to ensure your input goes in unaffected.
135
- Commenting out code: You may want to use I to begin inserting at the beginning of a line, that way you ensure you're commenting out the entire line.
136
- Searching to insert: Keep in mind that when you search, your cursor will be at the first character of what you searched for, so you may need to start inserting on the line below, or at the start of a line, or use movement keys after the search to ensure the cursor is in the correct location before inserting.
137
- Make sure you append <ENTER> when searching or executing commands otherwise they won't be executed.
138
- IMPORTANT: You MUST enable paste mode when inserting comments, otherwise you'll end up commenting out all your inserted code.
139
-
140
- ## Navigating / Inserting Code
141
- 1. After saving, you may see some QuickFix suggestions in the terminal output. If so, you should check your changes and see if that feedback needs to be addressed before finalizing your work.
142
- 1.a If you make unintended changes you should undo via :u0 and save to get back to a clean state before making corrections.
143
- 1.b If you see QuickFix suggestions, you likely need to close the QuickFix menu before you can save again, as that buffer will start intercepting your save requests and lead you to believe the buffer is no longer modifiable.
144
-
145
- ## Handling Quickfix Buffers
146
- When working with Vim, if a Quickfix buffer opens (e.g., after saving a file), ensure you are in the correct buffer before executing further commands. Quickfix buffers are usually non-modifiable and can intercept commands like saving, leading to errors.
147
- - Use :cclose to close the Quickfix buffer before proceeding if it opens unexpectedly.
148
- - Always verify the current buffer before making modifications by checking the filename displayed in the terminal output.
149
-
150
- # Error Handling and Recovery
151
- - If an error is encountered (e.g., "modifiable" is off), pause and diagnose the issue. Do not continue sending commands that might exacerbate the problem.
152
- - Use :u to undo the last change if it was executed incorrectly. If you’ve saved incorrect changes, use :u0 to reset to the last saved state before retrying.
153
- - If Vim enters an unexpected state (e.g., Quickfix buffer intercepts commands), close Vim and restart from a clean state to avoid compounding errors.
154
-
155
- Some QuickFix hints are only shown after saving a file. So a trick to see if a file has any suggestions, would be to open it, and then immediately save without making any changes, that way you can review the QuickFix suggestions.
156
-
157
- # Completing a task
158
- When you have completed your task make sure to call closeVim before calling finalAnswer.
159
- You may use the execCommand tool to navigate the filesystem and to create new folders if needed.
160
- You MUST eventually call finalAnswer when you are done.
161
- Accomplish the user's goal with the tools at hand, good luck!
162
-
163
- `,
164
- },
165
- { role: "user", content: userInput },
166
- ];
167
- }
168
- }
169
- exports.VimAgent = VimAgent;
170
- //# sourceMappingURL=vim.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vim.js","sourceRoot":"","sources":["../../../../src/agents/vim/vim.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AAEzB,uCAAuD;AACvD,uCAAoE;AACpE,iCAAwD;AACxD,2CAA6C;AAE7C,MAAa,QAAS,SAAQ,gBAAS;IACrC,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,qEAAqE,CAAC;IAEpF,QAAQ,GAAG,oBAAoB,CAAC;IAEhC,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,mBAAmB,CAAC;YACvB,EAAE,KAAK,EAAE,WAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;QAClD,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,8FAA8F,KAAK,CAAC,MAAM,8DAA8D,CAAC;QAC7L,MAAM,UAAU,GAAG,MAAM,IAAA,iBAAY,EAAC,WAAW,CAAC,CAAC;QACnD,MAAM,IAAA,iBAAS,EAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE;YACjD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAQ,EAAC,6BAA6B,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;YACL,oBAAW;;uCAEgB,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DhD,MAAM,IAAI,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwC1B;aACE;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACxB,CAAC;IACjB,CAAC;CACF;AA/ID,4BA+IC"}
@@ -1,36 +0,0 @@
1
- import { ChatSessionManager } from "./ChatSessionManager";
2
- import { ChatStateManager } from "./ChatStateManager";
3
- import { ChatSession } from "./ChatSession";
4
- export interface ChatCommand {
5
- name: string;
6
- description: string;
7
- usage: string;
8
- execute: (args: string[], context: ChatCommandContext) => Promise<ChatCommandResult>;
9
- }
10
- export interface ChatCommandContext {
11
- sessionManager: ChatSessionManager;
12
- stateManager: ChatStateManager;
13
- currentSession?: ChatSession;
14
- }
15
- export interface ChatCommandResult {
16
- success: boolean;
17
- message: string;
18
- data?: any;
19
- }
20
- export declare class ChatCommandHandler {
21
- private _commands;
22
- constructor();
23
- executeCommand(input: string, context: ChatCommandContext): Promise<ChatCommandResult>;
24
- getAvailableCommands(): ChatCommand[];
25
- isCommand(input: string): boolean;
26
- private _registerCommands;
27
- private _helpCommand;
28
- private _sessionsCommand;
29
- private _loadCommand;
30
- private _saveCommand;
31
- private _newCommand;
32
- private _deleteCommand;
33
- private _statusCommand;
34
- private _clearCommand;
35
- private _resumeCommand;
36
- }
@@ -1,268 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatCommandHandler = void 0;
4
- class ChatCommandHandler {
5
- _commands = new Map();
6
- constructor() {
7
- this._registerCommands();
8
- }
9
- async executeCommand(input, context) {
10
- const parts = input.trim().split(/\s+/);
11
- const commandName = parts[0].toLowerCase();
12
- const args = parts.slice(1);
13
- const command = this._commands.get(commandName);
14
- if (!command) {
15
- return {
16
- success: false,
17
- message: `Unknown command: ${commandName}. Type 'help' for available commands.`
18
- };
19
- }
20
- try {
21
- return await command.execute(args, context);
22
- }
23
- catch (error) {
24
- return {
25
- success: false,
26
- message: `Command failed: ${error instanceof Error ? error.message : String(error)}`
27
- };
28
- }
29
- }
30
- getAvailableCommands() {
31
- return Array.from(this._commands.values());
32
- }
33
- isCommand(input) {
34
- return input.trim().startsWith('/') || input.trim().startsWith('\\');
35
- }
36
- _registerCommands() {
37
- this._commands.set('help', {
38
- name: 'help',
39
- description: 'Show available commands',
40
- usage: 'help [command]',
41
- execute: this._helpCommand.bind(this)
42
- });
43
- this._commands.set('sessions', {
44
- name: 'sessions',
45
- description: 'List recent chat sessions',
46
- usage: 'sessions [limit]',
47
- execute: this._sessionsCommand.bind(this)
48
- });
49
- this._commands.set('load', {
50
- name: 'load',
51
- description: 'Load a previous chat session',
52
- usage: 'load <sessionId>',
53
- execute: this._loadCommand.bind(this)
54
- });
55
- this._commands.set('save', {
56
- name: 'save',
57
- description: 'Save current session with optional title',
58
- usage: 'save [title]',
59
- execute: this._saveCommand.bind(this)
60
- });
61
- this._commands.set('new', {
62
- name: 'new',
63
- description: 'Start a new chat session',
64
- usage: 'new [title]',
65
- execute: this._newCommand.bind(this)
66
- });
67
- this._commands.set('delete', {
68
- name: 'delete',
69
- description: 'Delete a chat session',
70
- usage: 'delete <sessionId>',
71
- execute: this._deleteCommand.bind(this)
72
- });
73
- this._commands.set('status', {
74
- name: 'status',
75
- description: 'Show current chat status',
76
- usage: 'status',
77
- execute: this._statusCommand.bind(this)
78
- });
79
- this._commands.set('clear', {
80
- name: 'clear',
81
- description: 'Clear current session and start fresh',
82
- usage: 'clear',
83
- execute: this._clearCommand.bind(this)
84
- });
85
- this._commands.set('resume', {
86
- name: 'resume',
87
- description: 'Resume paused agent (if any)',
88
- usage: 'resume',
89
- execute: this._resumeCommand.bind(this)
90
- });
91
- }
92
- async _helpCommand(args, context) {
93
- if (args.length > 0) {
94
- const commandName = args[0].toLowerCase();
95
- const command = this._commands.get(commandName);
96
- if (command) {
97
- return {
98
- success: true,
99
- message: `${command.name}: ${command.description}\nUsage: ${command.usage}`
100
- };
101
- }
102
- else {
103
- return {
104
- success: false,
105
- message: `Unknown command: ${commandName}`
106
- };
107
- }
108
- }
109
- const commands = Array.from(this._commands.values());
110
- const helpText = [
111
- 'Available chat commands:',
112
- '',
113
- ...commands.map(cmd => ` ${cmd.name.padEnd(10)} - ${cmd.description}`),
114
- '',
115
- 'Type "help <command>" for detailed usage information.'
116
- ].join('\n');
117
- return {
118
- success: true,
119
- message: helpText
120
- };
121
- }
122
- async _sessionsCommand(args, context) {
123
- const limit = args.length > 0 ? parseInt(args[0], 10) : 10;
124
- if (isNaN(limit) || limit < 1) {
125
- return {
126
- success: false,
127
- message: 'Invalid limit. Please provide a positive number.'
128
- };
129
- }
130
- const sessions = await context.sessionManager.listSessions(limit);
131
- if (sessions.length === 0) {
132
- return {
133
- success: true,
134
- message: 'No chat sessions found.'
135
- };
136
- }
137
- const sessionList = sessions.map((session, index) => {
138
- const date = session.lastActive.toLocaleDateString();
139
- const time = session.lastActive.toLocaleTimeString();
140
- return ` ${(index + 1).toString().padStart(2)}. ${session.sessionId} - "${session.title}" (${date} ${time})`;
141
- }).join('\n');
142
- return {
143
- success: true,
144
- message: `Recent chat sessions:\n\n${sessionList}\n\nUse "load <sessionId>" to resume a session.`,
145
- data: sessions
146
- };
147
- }
148
- async _loadCommand(args, context) {
149
- if (args.length === 0) {
150
- return {
151
- success: false,
152
- message: 'Usage: load <sessionId>'
153
- };
154
- }
155
- const sessionId = args[0];
156
- const session = await context.sessionManager.loadSession(sessionId);
157
- if (!session) {
158
- return {
159
- success: false,
160
- message: `Session "${sessionId}" not found.`
161
- };
162
- }
163
- context.stateManager.reset();
164
- return {
165
- success: true,
166
- message: `Loaded session "${session.title}" with ${session.threads.length} threads and ${session.chatHistory.length} interactions.`,
167
- data: session
168
- };
169
- }
170
- async _saveCommand(args, context) {
171
- if (!context.currentSession) {
172
- return {
173
- success: false,
174
- message: 'No active session to save.'
175
- };
176
- }
177
- const title = args.length > 0 ? args.join(' ') : context.currentSession.title;
178
- context.currentSession.title = title;
179
- await context.sessionManager.saveSession(context.currentSession);
180
- return {
181
- success: true,
182
- message: `Session saved as "${title}"`
183
- };
184
- }
185
- async _newCommand(args, context) {
186
- const title = args.length > 0 ? args.join(' ') : 'New Chat Session';
187
- const session = await context.sessionManager.createSession(title);
188
- context.stateManager.reset();
189
- return {
190
- success: true,
191
- message: `Started new session "${title}" (${session.sessionId})`,
192
- data: session
193
- };
194
- }
195
- async _deleteCommand(args, context) {
196
- if (args.length === 0) {
197
- return {
198
- success: false,
199
- message: 'Usage: delete <sessionId>'
200
- };
201
- }
202
- const sessionId = args[0];
203
- const success = await context.sessionManager.deleteSession(sessionId);
204
- if (success) {
205
- return {
206
- success: true,
207
- message: `Session "${sessionId}" deleted.`
208
- };
209
- }
210
- else {
211
- return {
212
- success: false,
213
- message: `Failed to delete session "${sessionId}". It may not exist.`
214
- };
215
- }
216
- }
217
- async _statusCommand(args, context) {
218
- const state = context.stateManager.state;
219
- const stateContext = context.stateManager.context;
220
- const session = context.currentSession;
221
- const statusLines = [
222
- `Chat State: ${context.stateManager.getStateDescription()}`,
223
- `Current Session: ${session ? `"${session.title}" (${session.sessionId})` : 'None'}`,
224
- `Active Thread: ${stateContext.currentThreadId || 'None'}`,
225
- `Current Agent: ${stateContext.currentAgentName || 'None'}`,
226
- `Pending Messages: ${stateContext.pendingMessages.length}`,
227
- `Waiting for Input: ${stateContext.isWaitingForInput ? 'Yes' : 'No'}`
228
- ];
229
- if (session) {
230
- statusLines.push(`Threads: ${session.threads.length}`);
231
- statusLines.push(`Chat History: ${session.chatHistory.length} interactions`);
232
- }
233
- return {
234
- success: true,
235
- message: statusLines.join('\n')
236
- };
237
- }
238
- async _clearCommand(args, context) {
239
- context.stateManager.reset();
240
- return {
241
- success: true,
242
- message: 'Session cleared. Ready for new task.'
243
- };
244
- }
245
- async _resumeCommand(args, context) {
246
- if (!context.stateManager.canResumeAgent) {
247
- return {
248
- success: false,
249
- message: `Cannot resume agent. Current state: ${context.stateManager.getStateDescription()}`
250
- };
251
- }
252
- const success = context.stateManager.transition({ type: 'AGENT_RESUME' });
253
- if (success) {
254
- return {
255
- success: true,
256
- message: `Resumed agent "${context.stateManager.context.currentAgentName}"`
257
- };
258
- }
259
- else {
260
- return {
261
- success: false,
262
- message: 'Failed to resume agent'
263
- };
264
- }
265
- }
266
- }
267
- exports.ChatCommandHandler = ChatCommandHandler;
268
- //# sourceMappingURL=ChatCommandHandler.js.map