@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,188 +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.ChatSessionManager = void 0;
27
- const fs = __importStar(require("fs"));
28
- const path = __importStar(require("path"));
29
- const util_1 = require("util");
30
- const readFile = (0, util_1.promisify)(fs.readFile);
31
- const writeFile = (0, util_1.promisify)(fs.writeFile);
32
- const mkdir = (0, util_1.promisify)(fs.mkdir);
33
- const readdir = (0, util_1.promisify)(fs.readdir);
34
- const stat = (0, util_1.promisify)(fs.stat);
35
- class ChatSessionManager {
36
- _chatsDir;
37
- constructor(baseDir = ".knowhow/chats") {
38
- this._chatsDir = baseDir;
39
- this._ensureChatsDirectory();
40
- }
41
- async createSession(title, provider = "openai", model = "gpt-4o", plugins = []) {
42
- const sessionId = this._generateSessionId();
43
- const session = {
44
- sessionId,
45
- title,
46
- threads: [],
47
- chatHistory: [],
48
- metadata: {
49
- provider,
50
- model,
51
- plugins,
52
- createdAt: new Date(),
53
- updatedAt: new Date(),
54
- lastActive: new Date()
55
- }
56
- };
57
- await this.saveSession(session);
58
- return session;
59
- }
60
- async saveSession(session) {
61
- session.metadata.updatedAt = new Date();
62
- session.metadata.lastActive = new Date();
63
- const sessionPath = path.join(this._chatsDir, `${session.sessionId}.json`);
64
- await writeFile(sessionPath, JSON.stringify(session, null, 2));
65
- }
66
- async loadSession(sessionId) {
67
- try {
68
- const sessionPath = path.join(this._chatsDir, `${sessionId}.json`);
69
- const content = await readFile(sessionPath, 'utf-8');
70
- const session = JSON.parse(content);
71
- session.metadata.createdAt = new Date(session.metadata.createdAt);
72
- session.metadata.updatedAt = new Date(session.metadata.updatedAt);
73
- session.metadata.lastActive = new Date(session.metadata.lastActive);
74
- session.threads.forEach(thread => {
75
- thread.createdAt = new Date(thread.createdAt);
76
- thread.updatedAt = new Date(thread.updatedAt);
77
- });
78
- return session;
79
- }
80
- catch (error) {
81
- console.error(`Failed to load session ${sessionId}:`, error);
82
- return null;
83
- }
84
- }
85
- async listSessions(limit = 20) {
86
- try {
87
- const files = await readdir(this._chatsDir);
88
- const sessionFiles = files.filter(f => f.endsWith('.json'));
89
- const summaries = [];
90
- for (const file of sessionFiles) {
91
- try {
92
- const sessionPath = path.join(this._chatsDir, file);
93
- const content = await readFile(sessionPath, 'utf-8');
94
- const session = JSON.parse(content);
95
- summaries.push({
96
- sessionId: session.sessionId,
97
- title: session.title,
98
- lastActive: new Date(session.metadata.lastActive),
99
- threadCount: session.threads.length,
100
- messageCount: session.threads.reduce((sum, t) => sum + t.messages.length, 0)
101
- });
102
- }
103
- catch (error) {
104
- console.error(`Failed to read session file ${file}:`, error);
105
- }
106
- }
107
- summaries.sort((a, b) => b.lastActive.getTime() - a.lastActive.getTime());
108
- return summaries.slice(0, limit);
109
- }
110
- catch (error) {
111
- console.error('Failed to list sessions:', error);
112
- return [];
113
- }
114
- }
115
- async deleteSession(sessionId) {
116
- try {
117
- const sessionPath = path.join(this._chatsDir, `${sessionId}.json`);
118
- await fs.promises.unlink(sessionPath);
119
- return true;
120
- }
121
- catch (error) {
122
- console.error(`Failed to delete session ${sessionId}:`, error);
123
- return false;
124
- }
125
- }
126
- async addThread(sessionId, thread) {
127
- const session = await this.loadSession(sessionId);
128
- if (!session) {
129
- throw new Error(`Session ${sessionId} not found`);
130
- }
131
- session.threads.push(thread);
132
- await this.saveSession(session);
133
- }
134
- async updateThread(sessionId, threadId, updates) {
135
- const session = await this.loadSession(sessionId);
136
- if (!session) {
137
- throw new Error(`Session ${sessionId} not found`);
138
- }
139
- const threadIndex = session.threads.findIndex(t => t.id === threadId);
140
- if (threadIndex === -1) {
141
- throw new Error(`Thread ${threadId} not found`);
142
- }
143
- session.threads[threadIndex] = {
144
- ...session.threads[threadIndex],
145
- ...updates,
146
- updatedAt: new Date()
147
- };
148
- await this.saveSession(session);
149
- }
150
- async addChatInteraction(sessionId, interaction) {
151
- const session = await this.loadSession(sessionId);
152
- if (!session) {
153
- throw new Error(`Session ${sessionId} not found`);
154
- }
155
- session.chatHistory.push(interaction);
156
- await this.saveSession(session);
157
- }
158
- createThread(agentName, initialInput, messages = []) {
159
- return {
160
- id: this._generateThreadId(),
161
- agentName,
162
- initialInput,
163
- messages,
164
- status: 'active',
165
- createdAt: new Date(),
166
- updatedAt: new Date()
167
- };
168
- }
169
- async _ensureChatsDirectory() {
170
- try {
171
- await mkdir(this._chatsDir, { recursive: true });
172
- }
173
- catch (error) {
174
- }
175
- }
176
- _generateSessionId() {
177
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
178
- const random = Math.random().toString(36).substring(2, 8);
179
- return `session_${timestamp}_${random}`;
180
- }
181
- _generateThreadId() {
182
- const timestamp = Date.now();
183
- const random = Math.random().toString(36).substring(2, 8);
184
- return `thread_${timestamp}_${random}`;
185
- }
186
- }
187
- exports.ChatSessionManager = ChatSessionManager;
188
- //# sourceMappingURL=ChatSessionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatSessionManager.js","sourceRoot":"","sources":["../../../src/chat/ChatSessionManager.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- export declare enum ChatState {
2
- INITIAL = "initial",
3
- AGENT_ACTIVE = "agent_active",
4
- AGENT_PAUSED = "agent_paused",
5
- AGENT_DONE = "agent_done",
6
- COMMAND_MODE = "command_mode"
7
- }
8
- export interface ChatStateContext {
9
- currentSessionId?: string;
10
- currentThreadId?: string;
11
- currentAgentName?: string;
12
- lastUserInput?: string;
13
- pendingMessages: string[];
14
- isWaitingForInput: boolean;
15
- }
16
- export type ChatStateTransition = {
17
- type: 'START_TASK';
18
- agentName: string;
19
- sessionId: string;
20
- threadId: string;
21
- } | {
22
- type: 'AGENT_PAUSE';
23
- reason?: string;
24
- } | {
25
- type: 'AGENT_RESUME';
26
- } | {
27
- type: 'AGENT_COMPLETE';
28
- } | {
29
- type: 'NEW_TASK';
30
- agentName: string;
31
- } | {
32
- type: 'ENTER_COMMAND';
33
- command: string;
34
- } | {
35
- type: 'EXIT_COMMAND';
36
- } | {
37
- type: 'RESET';
38
- };
39
- export declare class ChatStateManager {
40
- private _state;
41
- private _context;
42
- private _stateHistory;
43
- get state(): ChatState;
44
- get context(): Readonly<ChatStateContext>;
45
- get isAgentActive(): boolean;
46
- get isAgentPaused(): boolean;
47
- get isAgentDone(): boolean;
48
- get canStartNewTask(): boolean;
49
- get canResumeAgent(): boolean;
50
- transition(transition: ChatStateTransition): boolean;
51
- addPendingMessage(message: string): void;
52
- clearPendingMessages(): string[];
53
- setWaitingForInput(waiting: boolean): void;
54
- reset(): void;
55
- getStateDescription(): string;
56
- private _computeNextState;
57
- private _updateContext;
58
- }
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatStateManager = exports.ChatState = void 0;
4
- var ChatState;
5
- (function (ChatState) {
6
- ChatState["INITIAL"] = "initial";
7
- ChatState["AGENT_ACTIVE"] = "agent_active";
8
- ChatState["AGENT_PAUSED"] = "agent_paused";
9
- ChatState["AGENT_DONE"] = "agent_done";
10
- ChatState["COMMAND_MODE"] = "command_mode";
11
- })(ChatState = exports.ChatState || (exports.ChatState = {}));
12
- class ChatStateManager {
13
- _state = ChatState.INITIAL;
14
- _context = {
15
- pendingMessages: [],
16
- isWaitingForInput: false
17
- };
18
- _stateHistory = [];
19
- get state() {
20
- return this._state;
21
- }
22
- get context() {
23
- return { ...this._context };
24
- }
25
- get isAgentActive() {
26
- return this._state === ChatState.AGENT_ACTIVE;
27
- }
28
- get isAgentPaused() {
29
- return this._state === ChatState.AGENT_PAUSED;
30
- }
31
- get isAgentDone() {
32
- return this._state === ChatState.AGENT_DONE;
33
- }
34
- get canStartNewTask() {
35
- return this._state === ChatState.INITIAL || this._state === ChatState.AGENT_DONE;
36
- }
37
- get canResumeAgent() {
38
- return this._state === ChatState.AGENT_PAUSED;
39
- }
40
- transition(transition) {
41
- const previousState = this._state;
42
- const newState = this._computeNextState(this._state, transition);
43
- if (newState === null) {
44
- console.warn(`Invalid transition from ${this._state} with ${transition.type}`);
45
- return false;
46
- }
47
- this._stateHistory.push(previousState);
48
- this._state = newState;
49
- this._updateContext(transition);
50
- console.log(`Chat state: ${previousState} -> ${newState} (${transition.type})`);
51
- return true;
52
- }
53
- addPendingMessage(message) {
54
- this._context.pendingMessages.push(message);
55
- }
56
- clearPendingMessages() {
57
- const messages = [...this._context.pendingMessages];
58
- this._context.pendingMessages = [];
59
- return messages;
60
- }
61
- setWaitingForInput(waiting) {
62
- this._context.isWaitingForInput = waiting;
63
- }
64
- reset() {
65
- this._state = ChatState.INITIAL;
66
- this._context = {
67
- pendingMessages: [],
68
- isWaitingForInput: false
69
- };
70
- this._stateHistory = [];
71
- }
72
- getStateDescription() {
73
- switch (this._state) {
74
- case ChatState.INITIAL:
75
- return "Ready for new task";
76
- case ChatState.AGENT_ACTIVE:
77
- return `Agent '${this._context.currentAgentName}' is working...`;
78
- case ChatState.AGENT_PAUSED:
79
- return `Agent '${this._context.currentAgentName}' is waiting for input`;
80
- case ChatState.AGENT_DONE:
81
- return `Agent '${this._context.currentAgentName}' completed. Ready for follow-up or new task.`;
82
- case ChatState.COMMAND_MODE:
83
- return "Processing command";
84
- default:
85
- return "Unknown state";
86
- }
87
- }
88
- _computeNextState(currentState, transition) {
89
- switch (transition.type) {
90
- case 'START_TASK':
91
- if (currentState === ChatState.INITIAL || currentState === ChatState.AGENT_DONE) {
92
- return ChatState.AGENT_ACTIVE;
93
- }
94
- return null;
95
- case 'AGENT_PAUSE':
96
- if (currentState === ChatState.AGENT_ACTIVE) {
97
- return ChatState.AGENT_PAUSED;
98
- }
99
- return null;
100
- case 'AGENT_RESUME':
101
- if (currentState === ChatState.AGENT_PAUSED) {
102
- return ChatState.AGENT_ACTIVE;
103
- }
104
- return null;
105
- case 'AGENT_COMPLETE':
106
- if (currentState === ChatState.AGENT_ACTIVE || currentState === ChatState.AGENT_PAUSED) {
107
- return ChatState.AGENT_DONE;
108
- }
109
- return null;
110
- case 'NEW_TASK':
111
- if (currentState === ChatState.AGENT_DONE) {
112
- return ChatState.AGENT_ACTIVE;
113
- }
114
- return null;
115
- case 'ENTER_COMMAND':
116
- if (currentState !== ChatState.AGENT_ACTIVE) {
117
- return ChatState.COMMAND_MODE;
118
- }
119
- return null;
120
- case 'EXIT_COMMAND':
121
- if (currentState === ChatState.COMMAND_MODE) {
122
- return this._stateHistory.length > 0 ? this._stateHistory[this._stateHistory.length - 1] : ChatState.INITIAL;
123
- }
124
- return null;
125
- case 'RESET':
126
- return ChatState.INITIAL;
127
- default:
128
- return null;
129
- }
130
- }
131
- _updateContext(transition) {
132
- switch (transition.type) {
133
- case 'START_TASK':
134
- this._context.currentAgentName = transition.agentName;
135
- this._context.currentSessionId = transition.sessionId;
136
- this._context.currentThreadId = transition.threadId;
137
- break;
138
- case 'NEW_TASK':
139
- this._context.currentAgentName = transition.agentName;
140
- break;
141
- case 'AGENT_COMPLETE':
142
- break;
143
- case 'ENTER_COMMAND':
144
- this._context.lastUserInput = transition.command;
145
- break;
146
- case 'RESET':
147
- this._context = {
148
- pendingMessages: [],
149
- isWaitingForInput: false
150
- };
151
- break;
152
- }
153
- }
154
- }
155
- exports.ChatStateManager = ChatStateManager;
156
- //# sourceMappingURL=ChatStateManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatStateManager.js","sourceRoot":"","sources":["../../../src/chat/ChatStateManager.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- export interface InputOptions {
2
- question: string;
3
- options?: string[];
4
- history?: string[];
5
- multiLine?: boolean;
6
- voice?: boolean;
7
- }
8
- export declare class InterruptibleInput {
9
- private _cancelled;
10
- private _inputPromise;
11
- private _readline;
12
- constructor();
13
- getInput(options: InputOptions): Promise<string>;
14
- cancel(): void;
15
- isCancelled(): boolean;
16
- private _getVoiceInput;
17
- private _getMultiLineInput;
18
- private _getTextInput;
19
- private _cleanup;
20
- }
@@ -1,109 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InterruptibleInput = void 0;
7
- const editor_1 = __importDefault(require("@inquirer/editor"));
8
- const microphone_1 = require("../microphone");
9
- class InterruptibleInput {
10
- _cancelled = false;
11
- _inputPromise = null;
12
- _readline = null;
13
- constructor() { }
14
- async getInput(options) {
15
- if (this._cancelled) {
16
- throw new Error("Input was cancelled");
17
- }
18
- this._cancelled = false;
19
- try {
20
- if (options.voice) {
21
- this._inputPromise = this._getVoiceInput();
22
- }
23
- else if (options.multiLine) {
24
- this._inputPromise = this._getMultiLineInput(options.question);
25
- }
26
- else {
27
- this._inputPromise = this._getTextInput(options);
28
- }
29
- const result = await this._inputPromise;
30
- if (this._cancelled) {
31
- throw new Error("Input was cancelled");
32
- }
33
- return result.trim();
34
- }
35
- finally {
36
- this._cleanup();
37
- }
38
- }
39
- cancel() {
40
- this._cancelled = true;
41
- this._cleanup();
42
- }
43
- isCancelled() {
44
- return this._cancelled;
45
- }
46
- async _getVoiceInput() {
47
- return await (0, microphone_1.voiceToText)();
48
- }
49
- async _getMultiLineInput(question) {
50
- const result = await (0, editor_1.default)({ message: question });
51
- if (result.includes('\n') && result.split('\n').length > 3) {
52
- console.log('\n--- Multi-line content detected ---');
53
- console.log(result);
54
- console.log('--- End of content ---\n');
55
- const confirm = await this._getTextInput({
56
- question: 'Continue with this content? (y/n): ',
57
- options: ['y', 'n', 'yes', 'no']
58
- });
59
- if (!['y', 'yes'].includes(confirm.toLowerCase())) {
60
- return await this._getMultiLineInput('Please enter your content again: ');
61
- }
62
- }
63
- return result;
64
- }
65
- async _getTextInput(options) {
66
- const readline = require("readline").createInterface({
67
- input: process.stdin,
68
- output: process.stdout,
69
- history: options.history || [],
70
- completer: (line) => {
71
- if (!options.options)
72
- return [[], line];
73
- const hits = options.options.filter((c) => c?.startsWith(line));
74
- return [hits.length ? hits : options.options, line];
75
- },
76
- terminal: true,
77
- });
78
- this._readline = readline;
79
- return new Promise((resolve, reject) => {
80
- if (this._cancelled) {
81
- readline.close();
82
- reject(new Error("Input was cancelled"));
83
- return;
84
- }
85
- readline.question(options.question, (answer) => {
86
- readline.close();
87
- if (this._cancelled) {
88
- reject(new Error("Input was cancelled"));
89
- }
90
- else {
91
- resolve(answer);
92
- }
93
- });
94
- });
95
- }
96
- _cleanup() {
97
- if (this._readline) {
98
- try {
99
- this._readline.close();
100
- }
101
- catch (e) {
102
- }
103
- this._readline = null;
104
- }
105
- this._inputPromise = null;
106
- }
107
- }
108
- exports.InterruptibleInput = InterruptibleInput;
109
- //# sourceMappingURL=InterruptibleInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterruptibleInput.js","sourceRoot":"","sources":["../../../src/chat/InterruptibleInput.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { ChatCommand, ChatMode } from '../types.js';
2
- export interface ChatModule {
3
- name: string;
4
- getCommands(): ChatCommand[];
5
- getModes(): ChatMode[];
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ChatModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatModule.js","sourceRoot":"","sources":["../../../../src/chat/interfaces/ChatModule.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { EmbeddingBase, GptQuestionEmbedding, Embeddable, ChatInteraction } from "./types";
2
- import { BaseAgent } from "./agents";
3
- export declare function askEmbedding<E>(promptText: string): Promise<void>;
4
- export declare function askAI<E extends EmbeddingBase>(query: string, provider?: string, model?: any): Promise<string>;
5
- export declare function getInput(question: string, options?: any[], chatHistory?: ChatInteraction[]): Promise<string>;
6
- export declare function formatChatInput(input: string, plugins?: string[], chatHistory?: ChatInteraction[]): Promise<string>;
7
- export declare function chatLoop<E extends GptQuestionEmbedding>(aiName: string, embeddings: Embeddable<E>[], plugins?: string[]): Promise<void>;
8
- export declare function startAgent(activeAgent: BaseAgent, newTask?: {
9
- initialInput: string;
10
- plugins: string[];
11
- chatHistory: ChatInteraction[];
12
- interaction: ChatInteraction;
13
- }, attach?: boolean): Promise<string>;