@tyvm/knowhow 0.0.145 → 0.0.147

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 (320) hide show
  1. package/autodoc/cli-reference.md +36 -7
  2. package/bin/knowhow.js +8 -6
  3. package/package.json +1 -1
  4. package/src/agents/base/base.ts +24 -0
  5. package/src/agents/historyRollback.ts +36 -0
  6. package/src/agents/tools/startAgentTask.ts +41 -9
  7. package/src/auth/browserLogin.ts +9 -3
  8. package/src/auth/keyAuth.ts +115 -0
  9. package/src/auth/keyManager.ts +166 -0
  10. package/src/chat/CliChatService.ts +16 -0
  11. package/src/chat/modules/AgentModule.ts +144 -56
  12. package/src/chat/modules/AskModule.ts +2 -0
  13. package/src/chat/modules/BaseChatModule.ts +0 -1
  14. package/src/chat/modules/CustomCommandsModule.ts +2 -0
  15. package/src/chat/modules/InternalChatModule.ts +2 -0
  16. package/src/chat/modules/RemoteSyncModule.ts +4 -0
  17. package/src/chat/modules/RendererModule.ts +2 -0
  18. package/src/chat/modules/SearchModule.ts +2 -0
  19. package/src/chat/modules/SessionsModule.ts +110 -39
  20. package/src/chat/modules/SetupModule.ts +2 -0
  21. package/src/chat/modules/ShellCommandModule.ts +2 -0
  22. package/src/chat/modules/SystemModule.ts +2 -0
  23. package/src/chat/types.ts +5 -2
  24. package/src/cli.ts +1 -1
  25. package/src/clients/anthropic.ts +24 -0
  26. package/src/clients/fireworks.ts +3 -0
  27. package/src/clients/gemini.ts +8 -0
  28. package/src/clients/index.ts +2 -0
  29. package/src/clients/openai.ts +7 -4
  30. package/src/clients/types.ts +30 -7
  31. package/src/clients/xai.ts +23 -4
  32. package/src/commands/agent.ts +11 -39
  33. package/src/commands/agents.ts +403 -53
  34. package/src/commands/misc.ts +3 -2
  35. package/src/commands/services.ts +49 -3
  36. package/src/login.ts +89 -28
  37. package/src/plugins/plugins.ts +16 -0
  38. package/src/processors/TokenCompressor.ts +40 -8
  39. package/src/processors/ToolResponseCache.ts +17 -8
  40. package/src/processors/tools/boundedToolResponse.ts +49 -0
  41. package/src/processors/tools/grepToolResponse.ts +164 -38
  42. package/src/processors/tools/index.ts +2 -0
  43. package/src/processors/tools/jqToolResponse.ts +40 -10
  44. package/src/processors/tools/listStoredToolResponses.ts +51 -10
  45. package/src/processors/tools/tailToolResponse.ts +85 -17
  46. package/src/services/AgentService.ts +2 -0
  47. package/src/services/AgentSyncFs.ts +65 -0
  48. package/src/services/AgentSyncKnowhowWeb.ts +22 -4
  49. package/src/services/BehaviorsService.ts +2 -0
  50. package/src/services/DockerService.ts +2 -0
  51. package/src/services/EmbeddingService.ts +2 -0
  52. package/src/services/EmbeddingsService.ts +3 -0
  53. package/src/services/KnowhowClient.ts +68 -7
  54. package/src/services/LazyToolsService.ts +16 -0
  55. package/src/services/Mcp.ts +11 -2
  56. package/src/services/McpServer.ts +2 -0
  57. package/src/services/MessageProcessor.ts +2 -0
  58. package/src/services/MinimalToolsService.ts +2 -0
  59. package/src/services/RuntimeReloadService.ts +31 -0
  60. package/src/services/SessionManager.ts +5 -0
  61. package/src/services/SkillsService.ts +2 -0
  62. package/src/services/SyncedAgentWatcher.ts +2 -0
  63. package/src/services/SyncerService.ts +23 -8
  64. package/src/services/TaskRegistry.ts +2 -0
  65. package/src/services/Tools.ts +13 -0
  66. package/src/services/TracingService.ts +116 -0
  67. package/src/services/index.ts +10 -0
  68. package/src/services/modules/index.ts +49 -3
  69. package/src/services/modules/types.ts +8 -0
  70. package/src/types.ts +2 -0
  71. package/src/util/Trace.ts +236 -0
  72. package/src/utils/http.ts +18 -2
  73. package/tests/clients/fireworks.test.ts +65 -0
  74. package/tests/clients/reasoningEffort.test.ts +79 -0
  75. package/tests/compressor/toolResponseCache.test.ts +2 -1
  76. package/tests/manual/clients/completions.test.ts +27 -10
  77. package/tests/processors/TokenCompressor.test.ts +17 -3
  78. package/tests/processors/tools/boundedRetrievalTools.test.ts +68 -0
  79. package/tests/processors/tools/grepToolResponse.test.ts +88 -1
  80. package/tests/unit/agents/historyRollback.test.ts +53 -0
  81. package/tests/unit/auth/keyAuth.test.ts +102 -0
  82. package/tests/unit/auth/keyManager.test.ts +67 -0
  83. package/tests/unit/chat/historyCommandArgs.test.ts +37 -0
  84. package/tests/unit/commands/agents.test.ts +68 -0
  85. package/tests/unit/login.test.ts +119 -0
  86. package/tests/unit/plugins/pluginLoading.test.ts +31 -0
  87. package/tests/unit/services/AgentSyncKnowhowWeb.test.ts +38 -0
  88. package/tests/unit/services/LazyToolsService.test.ts +29 -0
  89. package/tests/unit/services/RuntimeReloadService.test.ts +29 -0
  90. package/tests/unit/services/SessionManager.test.ts +43 -0
  91. package/tests/unit/services/SyncerService.test.ts +45 -0
  92. package/tests/unit/util/Trace.test.ts +119 -0
  93. package/tests/unit/utils/http.test.ts +43 -0
  94. package/ts_build/package.json +1 -1
  95. package/ts_build/src/agents/base/base.d.ts +1 -0
  96. package/ts_build/src/agents/base/base.js +31 -2
  97. package/ts_build/src/agents/base/base.js.map +1 -1
  98. package/ts_build/src/agents/historyRollback.d.ts +2 -0
  99. package/ts_build/src/agents/historyRollback.js +22 -0
  100. package/ts_build/src/agents/historyRollback.js.map +1 -0
  101. package/ts_build/src/agents/tools/startAgentTask.d.ts +2 -0
  102. package/ts_build/src/agents/tools/startAgentTask.js +36 -9
  103. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  104. package/ts_build/src/auth/browserLogin.d.ts +1 -0
  105. package/ts_build/src/auth/browserLogin.js +5 -2
  106. package/ts_build/src/auth/browserLogin.js.map +1 -1
  107. package/ts_build/src/auth/keyAuth.d.ts +5 -0
  108. package/ts_build/src/auth/keyAuth.js +79 -0
  109. package/ts_build/src/auth/keyAuth.js.map +1 -0
  110. package/ts_build/src/auth/keyManager.d.ts +14 -0
  111. package/ts_build/src/auth/keyManager.js +145 -0
  112. package/ts_build/src/auth/keyManager.js.map +1 -0
  113. package/ts_build/src/chat/CliChatService.js +15 -0
  114. package/ts_build/src/chat/CliChatService.js.map +1 -1
  115. package/ts_build/src/chat/modules/AgentModule.d.ts +13 -1
  116. package/ts_build/src/chat/modules/AgentModule.js +96 -43
  117. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  118. package/ts_build/src/chat/modules/AskModule.js +12 -2
  119. package/ts_build/src/chat/modules/AskModule.js.map +1 -1
  120. package/ts_build/src/chat/modules/BaseChatModule.js.map +1 -1
  121. package/ts_build/src/chat/modules/CustomCommandsModule.js +12 -2
  122. package/ts_build/src/chat/modules/CustomCommandsModule.js.map +1 -1
  123. package/ts_build/src/chat/modules/InternalChatModule.js +16 -2
  124. package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -1
  125. package/ts_build/src/chat/modules/RemoteSyncModule.js +19 -2
  126. package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
  127. package/ts_build/src/chat/modules/RendererModule.js +17 -2
  128. package/ts_build/src/chat/modules/RendererModule.js.map +1 -1
  129. package/ts_build/src/chat/modules/SearchModule.js +12 -2
  130. package/ts_build/src/chat/modules/SearchModule.js.map +1 -1
  131. package/ts_build/src/chat/modules/SessionsModule.d.ts +6 -0
  132. package/ts_build/src/chat/modules/SessionsModule.js +114 -24
  133. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
  134. package/ts_build/src/chat/modules/SetupModule.js +17 -2
  135. package/ts_build/src/chat/modules/SetupModule.js.map +1 -1
  136. package/ts_build/src/chat/modules/ShellCommandModule.js +12 -2
  137. package/ts_build/src/chat/modules/ShellCommandModule.js.map +1 -1
  138. package/ts_build/src/chat/modules/SystemModule.js +12 -2
  139. package/ts_build/src/chat/modules/SystemModule.js.map +1 -1
  140. package/ts_build/src/chat/types.d.ts +5 -2
  141. package/ts_build/src/cli.js +1 -1
  142. package/ts_build/src/cli.js.map +1 -1
  143. package/ts_build/src/clients/anthropic.d.ts +1 -0
  144. package/ts_build/src/clients/anthropic.js +12 -0
  145. package/ts_build/src/clients/anthropic.js.map +1 -1
  146. package/ts_build/src/clients/fireworks.js +1 -0
  147. package/ts_build/src/clients/fireworks.js.map +1 -1
  148. package/ts_build/src/clients/gemini.js +8 -0
  149. package/ts_build/src/clients/gemini.js.map +1 -1
  150. package/ts_build/src/clients/index.js +19 -4
  151. package/ts_build/src/clients/index.js.map +1 -1
  152. package/ts_build/src/clients/openai.js +4 -2
  153. package/ts_build/src/clients/openai.js.map +1 -1
  154. package/ts_build/src/clients/types.d.ts +4 -1
  155. package/ts_build/src/clients/types.js +14 -0
  156. package/ts_build/src/clients/types.js.map +1 -1
  157. package/ts_build/src/clients/xai.d.ts +1 -0
  158. package/ts_build/src/clients/xai.js +23 -4
  159. package/ts_build/src/clients/xai.js.map +1 -1
  160. package/ts_build/src/commands/agent.js +7 -22
  161. package/ts_build/src/commands/agent.js.map +1 -1
  162. package/ts_build/src/commands/agents.d.ts +1 -1
  163. package/ts_build/src/commands/agents.js +174 -16
  164. package/ts_build/src/commands/agents.js.map +1 -1
  165. package/ts_build/src/commands/misc.js +3 -2
  166. package/ts_build/src/commands/misc.js.map +1 -1
  167. package/ts_build/src/commands/services.d.ts +2 -0
  168. package/ts_build/src/commands/services.js +45 -3
  169. package/ts_build/src/commands/services.js.map +1 -1
  170. package/ts_build/src/login.d.ts +1 -1
  171. package/ts_build/src/login.js +53 -15
  172. package/ts_build/src/login.js.map +1 -1
  173. package/ts_build/src/plugins/plugins.d.ts +1 -0
  174. package/ts_build/src/plugins/plugins.js +14 -0
  175. package/ts_build/src/plugins/plugins.js.map +1 -1
  176. package/ts_build/src/processors/TokenCompressor.js +15 -6
  177. package/ts_build/src/processors/TokenCompressor.js.map +1 -1
  178. package/ts_build/src/processors/ToolResponseCache.d.ts +3 -3
  179. package/ts_build/src/processors/ToolResponseCache.js +8 -8
  180. package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
  181. package/ts_build/src/processors/tools/boundedToolResponse.d.ts +7 -0
  182. package/ts_build/src/processors/tools/boundedToolResponse.js +27 -0
  183. package/ts_build/src/processors/tools/boundedToolResponse.js.map +1 -0
  184. package/ts_build/src/processors/tools/grepToolResponse.d.ts +4 -0
  185. package/ts_build/src/processors/tools/grepToolResponse.js +101 -25
  186. package/ts_build/src/processors/tools/grepToolResponse.js.map +1 -1
  187. package/ts_build/src/processors/tools/index.d.ts +2 -2
  188. package/ts_build/src/processors/tools/index.js.map +1 -1
  189. package/ts_build/src/processors/tools/jqToolResponse.d.ts +5 -1
  190. package/ts_build/src/processors/tools/jqToolResponse.js +26 -9
  191. package/ts_build/src/processors/tools/jqToolResponse.js.map +1 -1
  192. package/ts_build/src/processors/tools/listStoredToolResponses.d.ts +7 -1
  193. package/ts_build/src/processors/tools/listStoredToolResponses.js +39 -9
  194. package/ts_build/src/processors/tools/listStoredToolResponses.js.map +1 -1
  195. package/ts_build/src/processors/tools/tailToolResponse.d.ts +5 -0
  196. package/ts_build/src/processors/tools/tailToolResponse.js +56 -13
  197. package/ts_build/src/processors/tools/tailToolResponse.js.map +1 -1
  198. package/ts_build/src/services/AgentService.js +18 -2
  199. package/ts_build/src/services/AgentService.js.map +1 -1
  200. package/ts_build/src/services/AgentSyncFs.d.ts +3 -0
  201. package/ts_build/src/services/AgentSyncFs.js +62 -15
  202. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  203. package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +2 -0
  204. package/ts_build/src/services/AgentSyncKnowhowWeb.js +28 -6
  205. package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +1 -1
  206. package/ts_build/src/services/BehaviorsService.js +12 -2
  207. package/ts_build/src/services/BehaviorsService.js.map +1 -1
  208. package/ts_build/src/services/DockerService.js +20 -8
  209. package/ts_build/src/services/DockerService.js.map +1 -1
  210. package/ts_build/src/services/EmbeddingService.js +16 -2
  211. package/ts_build/src/services/EmbeddingService.js.map +1 -1
  212. package/ts_build/src/services/EmbeddingsService.js +12 -2
  213. package/ts_build/src/services/EmbeddingsService.js.map +1 -1
  214. package/ts_build/src/services/KnowhowClient.d.ts +7 -2
  215. package/ts_build/src/services/KnowhowClient.js +108 -10
  216. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  217. package/ts_build/src/services/LazyToolsService.d.ts +2 -0
  218. package/ts_build/src/services/LazyToolsService.js +26 -2
  219. package/ts_build/src/services/LazyToolsService.js.map +1 -1
  220. package/ts_build/src/services/Mcp.js +20 -4
  221. package/ts_build/src/services/Mcp.js.map +1 -1
  222. package/ts_build/src/services/McpServer.js +17 -2
  223. package/ts_build/src/services/McpServer.js.map +1 -1
  224. package/ts_build/src/services/MessageProcessor.js +16 -2
  225. package/ts_build/src/services/MessageProcessor.js.map +1 -1
  226. package/ts_build/src/services/MinimalToolsService.js +16 -2
  227. package/ts_build/src/services/MinimalToolsService.js.map +1 -1
  228. package/ts_build/src/services/RuntimeReloadService.d.ts +12 -0
  229. package/ts_build/src/services/RuntimeReloadService.js +26 -0
  230. package/ts_build/src/services/RuntimeReloadService.js.map +1 -0
  231. package/ts_build/src/services/SessionManager.js +19 -2
  232. package/ts_build/src/services/SessionManager.js.map +1 -1
  233. package/ts_build/src/services/SkillsService.js +16 -2
  234. package/ts_build/src/services/SkillsService.js.map +1 -1
  235. package/ts_build/src/services/SyncedAgentWatcher.js +16 -2
  236. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
  237. package/ts_build/src/services/SyncerService.d.ts +1 -0
  238. package/ts_build/src/services/SyncerService.js +27 -5
  239. package/ts_build/src/services/SyncerService.js.map +1 -1
  240. package/ts_build/src/services/TaskRegistry.js +12 -2
  241. package/ts_build/src/services/TaskRegistry.js.map +1 -1
  242. package/ts_build/src/services/Tools.d.ts +1 -0
  243. package/ts_build/src/services/Tools.js +21 -2
  244. package/ts_build/src/services/Tools.js.map +1 -1
  245. package/ts_build/src/services/TracingService.d.ts +16 -0
  246. package/ts_build/src/services/TracingService.js +35 -0
  247. package/ts_build/src/services/TracingService.js.map +1 -0
  248. package/ts_build/src/services/index.d.ts +8 -0
  249. package/ts_build/src/services/index.js +9 -1
  250. package/ts_build/src/services/index.js.map +1 -1
  251. package/ts_build/src/services/modules/index.d.ts +6 -0
  252. package/ts_build/src/services/modules/index.js +29 -3
  253. package/ts_build/src/services/modules/index.js.map +1 -1
  254. package/ts_build/src/services/modules/types.d.ts +3 -0
  255. package/ts_build/src/types.d.ts +1 -0
  256. package/ts_build/src/types.js.map +1 -1
  257. package/ts_build/src/util/Trace.d.ts +11 -0
  258. package/ts_build/src/util/Trace.js +107 -0
  259. package/ts_build/src/util/Trace.js.map +1 -0
  260. package/ts_build/src/utils/http.d.ts +6 -2
  261. package/ts_build/src/utils/http.js +8 -2
  262. package/ts_build/src/utils/http.js.map +1 -1
  263. package/ts_build/tests/clients/fireworks.test.d.ts +1 -0
  264. package/ts_build/tests/clients/fireworks.test.js +65 -0
  265. package/ts_build/tests/clients/fireworks.test.js.map +1 -0
  266. package/ts_build/tests/clients/reasoningEffort.test.d.ts +1 -0
  267. package/ts_build/tests/clients/reasoningEffort.test.js +68 -0
  268. package/ts_build/tests/clients/reasoningEffort.test.js.map +1 -0
  269. package/ts_build/tests/compressor/toolResponseCache.test.js +1 -1
  270. package/ts_build/tests/compressor/toolResponseCache.test.js.map +1 -1
  271. package/ts_build/tests/manual/clients/completions.test.js +19 -6
  272. package/ts_build/tests/manual/clients/completions.test.js.map +1 -1
  273. package/ts_build/tests/processors/TokenCompressor.test.js +11 -2
  274. package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -1
  275. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.d.ts +1 -0
  276. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js +57 -0
  277. package/ts_build/tests/processors/tools/boundedRetrievalTools.test.js.map +1 -0
  278. package/ts_build/tests/processors/tools/grepToolResponse.test.js +37 -0
  279. package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +1 -1
  280. package/ts_build/tests/unit/agents/historyRollback.test.d.ts +1 -0
  281. package/ts_build/tests/unit/agents/historyRollback.test.js +42 -0
  282. package/ts_build/tests/unit/agents/historyRollback.test.js.map +1 -0
  283. package/ts_build/tests/unit/auth/keyAuth.test.d.ts +1 -0
  284. package/ts_build/tests/unit/auth/keyAuth.test.js +77 -0
  285. package/ts_build/tests/unit/auth/keyAuth.test.js.map +1 -0
  286. package/ts_build/tests/unit/auth/keyManager.test.d.ts +1 -0
  287. package/ts_build/tests/unit/auth/keyManager.test.js +52 -0
  288. package/ts_build/tests/unit/auth/keyManager.test.js.map +1 -0
  289. package/ts_build/tests/unit/chat/historyCommandArgs.test.d.ts +1 -0
  290. package/ts_build/tests/unit/chat/historyCommandArgs.test.js +29 -0
  291. package/ts_build/tests/unit/chat/historyCommandArgs.test.js.map +1 -0
  292. package/ts_build/tests/unit/commands/agents.test.d.ts +1 -0
  293. package/ts_build/tests/unit/commands/agents.test.js +91 -0
  294. package/ts_build/tests/unit/commands/agents.test.js.map +1 -0
  295. package/ts_build/tests/unit/login.test.d.ts +1 -0
  296. package/ts_build/tests/unit/login.test.js +97 -0
  297. package/ts_build/tests/unit/login.test.js.map +1 -0
  298. package/ts_build/tests/unit/plugins/pluginLoading.test.js +59 -0
  299. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  300. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.d.ts +1 -0
  301. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js +32 -0
  302. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js.map +1 -0
  303. package/ts_build/tests/unit/services/LazyToolsService.test.d.ts +1 -0
  304. package/ts_build/tests/unit/services/LazyToolsService.test.js +27 -0
  305. package/ts_build/tests/unit/services/LazyToolsService.test.js.map +1 -0
  306. package/ts_build/tests/unit/services/RuntimeReloadService.test.d.ts +1 -0
  307. package/ts_build/tests/unit/services/RuntimeReloadService.test.js +26 -0
  308. package/ts_build/tests/unit/services/RuntimeReloadService.test.js.map +1 -0
  309. package/ts_build/tests/unit/services/SessionManager.test.d.ts +1 -0
  310. package/ts_build/tests/unit/services/SessionManager.test.js +72 -0
  311. package/ts_build/tests/unit/services/SessionManager.test.js.map +1 -0
  312. package/ts_build/tests/unit/services/SyncerService.test.d.ts +1 -0
  313. package/ts_build/tests/unit/services/SyncerService.test.js +40 -0
  314. package/ts_build/tests/unit/services/SyncerService.test.js.map +1 -0
  315. package/ts_build/tests/unit/util/Trace.test.d.ts +1 -0
  316. package/ts_build/tests/unit/util/Trace.test.js +107 -0
  317. package/ts_build/tests/unit/util/Trace.test.js.map +1 -0
  318. package/ts_build/tests/unit/utils/http.test.d.ts +1 -0
  319. package/ts_build/tests/unit/utils/http.test.js +69 -0
  320. package/ts_build/tests/unit/utils/http.test.js.map +1 -0
@@ -0,0 +1,145 @@
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.getKeyDir = getKeyDir;
7
+ exports.getDefaultPrivateKeyPath = getDefaultPrivateKeyPath;
8
+ exports.getDefaultPublicKeyPath = getDefaultPublicKeyPath;
9
+ exports.keyPairExists = keyPairExists;
10
+ exports.generateKeyPair = generateKeyPair;
11
+ exports.loadKeyPair = loadKeyPair;
12
+ exports.getOrCreatePublicKey = getOrCreatePublicKey;
13
+ exports.signMessage = signMessage;
14
+ const crypto_1 = __importDefault(require("crypto"));
15
+ const fs_1 = __importDefault(require("fs"));
16
+ const os_1 = __importDefault(require("os"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const ED25519_KEY_TYPE = "ssh-ed25519";
19
+ const ED25519_RAW_KEY_LENGTH = 32;
20
+ const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
21
+ function getKeyDir() {
22
+ return path_1.default.join(os_1.default.homedir(), ".knowhow", "keys");
23
+ }
24
+ function getDefaultPrivateKeyPath() {
25
+ return path_1.default.join(getKeyDir(), "id_ed25519");
26
+ }
27
+ function getDefaultPublicKeyPath() {
28
+ return `${getDefaultPrivateKeyPath()}.pub`;
29
+ }
30
+ function keyPairExists(privateKeyPath) {
31
+ const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
32
+ return fs_1.default.existsSync(privatePath) && fs_1.default.existsSync(`${privatePath}.pub`);
33
+ }
34
+ function generateKeyPair(privateKeyPath) {
35
+ const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
36
+ const publicPath = `${privatePath}.pub`;
37
+ fs_1.default.mkdirSync(path_1.default.dirname(privatePath), { recursive: true, mode: 0o700 });
38
+ const { privateKey, publicKey } = crypto_1.default.generateKeyPairSync("ed25519", {
39
+ privateKeyEncoding: { type: "pkcs8", format: "pem" },
40
+ publicKeyEncoding: { type: "spki", format: "der" },
41
+ });
42
+ const rawPublicKey = extractRawPublicKey(publicKey);
43
+ if (fs_1.default.existsSync(privatePath) || fs_1.default.existsSync(publicPath)) {
44
+ throw new Error(`Cannot generate identity: a key file already exists at ${privatePath} or ${publicPath}`);
45
+ }
46
+ fs_1.default.writeFileSync(privatePath, privateKey, { mode: 0o600, flag: "wx" });
47
+ try {
48
+ fs_1.default.writeFileSync(publicPath, formatOpenSshPublicKey(rawPublicKey), {
49
+ mode: 0o644,
50
+ flag: "wx",
51
+ });
52
+ }
53
+ catch (error) {
54
+ fs_1.default.rmSync(privatePath, { force: true });
55
+ throw error;
56
+ }
57
+ return keyPairMetadata(privatePath, rawPublicKey);
58
+ }
59
+ function loadKeyPair(privateKeyPath) {
60
+ const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
61
+ const publicPath = `${privatePath}.pub`;
62
+ if (!fs_1.default.existsSync(privatePath))
63
+ throw new Error(`Private key not found at: ${privatePath}`);
64
+ if (!fs_1.default.existsSync(publicPath))
65
+ throw new Error(`Public key not found at: ${publicPath}`);
66
+ const privateKey = readEd25519PrivateKey(privatePath);
67
+ const publicKey = parsePublicKey(fs_1.default.readFileSync(publicPath, "utf8"));
68
+ const derivedPublicKey = extractRawPublicKey(crypto_1.default.createPublicKey(privateKey).export({ type: "spki", format: "der" }));
69
+ if (!crypto_1.default.timingSafeEqual(publicKey, derivedPublicKey)) {
70
+ throw new Error(`Public key does not match private key: ${publicPath}`);
71
+ }
72
+ return keyPairMetadata(privatePath, publicKey);
73
+ }
74
+ function getOrCreatePublicKey(privateKeyPath) {
75
+ return keyPairExists(privateKeyPath)
76
+ ? loadKeyPair(privateKeyPath)
77
+ : generateKeyPair(privateKeyPath);
78
+ }
79
+ function signMessage(message, privateKeyPath) {
80
+ const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
81
+ if (!fs_1.default.existsSync(privatePath))
82
+ throw new Error(`Private key not found at: ${privatePath}`);
83
+ return crypto_1.default.sign(null, Buffer.from(message, "utf8"), readEd25519PrivateKey(privatePath)).toString("base64");
84
+ }
85
+ function readEd25519PrivateKey(privatePath) {
86
+ let key;
87
+ try {
88
+ key = crypto_1.default.createPrivateKey(fs_1.default.readFileSync(privatePath));
89
+ }
90
+ catch {
91
+ throw new Error(`Identity at ${privatePath} is not a supported PEM Ed25519 private key`);
92
+ }
93
+ if (key.asymmetricKeyType !== "ed25519") {
94
+ throw new Error(`Identity at ${privatePath} must be an Ed25519 private key`);
95
+ }
96
+ return key;
97
+ }
98
+ function extractRawPublicKey(spkiDer) {
99
+ if (spkiDer.length !== ED25519_SPKI_PREFIX.length + ED25519_RAW_KEY_LENGTH ||
100
+ !spkiDer.subarray(0, ED25519_SPKI_PREFIX.length).equals(ED25519_SPKI_PREFIX)) {
101
+ throw new Error("Invalid Ed25519 public key");
102
+ }
103
+ return spkiDer.subarray(ED25519_SPKI_PREFIX.length);
104
+ }
105
+ function sshPublicKeyBlob(rawPublicKey) {
106
+ const type = Buffer.from(ED25519_KEY_TYPE, "ascii");
107
+ const typeLength = Buffer.alloc(4);
108
+ const keyLength = Buffer.alloc(4);
109
+ typeLength.writeUInt32BE(type.length);
110
+ keyLength.writeUInt32BE(rawPublicKey.length);
111
+ return Buffer.concat([typeLength, type, keyLength, rawPublicKey]);
112
+ }
113
+ function formatOpenSshPublicKey(rawPublicKey) {
114
+ return `${ED25519_KEY_TYPE} ${sshPublicKeyBlob(rawPublicKey).toString("base64")} knowhow-cli\n`;
115
+ }
116
+ function parsePublicKey(value) {
117
+ const trimmed = value.trim();
118
+ if (trimmed.startsWith(`${ED25519_KEY_TYPE} `)) {
119
+ const parts = trimmed.split(/\s+/);
120
+ const blob = Buffer.from(parts[1] ?? "", "base64");
121
+ const expected = sshPublicKeyBlob(blob.subarray(blob.length - ED25519_RAW_KEY_LENGTH));
122
+ if (blob.length !== expected.length || !blob.equals(expected)) {
123
+ throw new Error("Invalid OpenSSH Ed25519 public key");
124
+ }
125
+ return blob.subarray(blob.length - ED25519_RAW_KEY_LENGTH);
126
+ }
127
+ if (!/^[A-Za-z0-9+/]+={0,2}$/.test(trimmed)) {
128
+ throw new Error("Public key must be an OpenSSH Ed25519 key");
129
+ }
130
+ const raw = Buffer.from(trimmed, "base64");
131
+ if (raw.length !== ED25519_RAW_KEY_LENGTH || raw.toString("base64") !== trimmed) {
132
+ throw new Error("Ed25519 public key must contain exactly 32 bytes");
133
+ }
134
+ return raw;
135
+ }
136
+ function keyPairMetadata(privatePath, rawPublicKey) {
137
+ const hash = crypto_1.default.createHash("sha256").update(sshPublicKeyBlob(rawPublicKey)).digest("base64").replace(/=+$/, "");
138
+ return {
139
+ privateKeyPath: privatePath,
140
+ publicKeyPath: `${privatePath}.pub`,
141
+ publicKeyBase64: rawPublicKey.toString("base64"),
142
+ fingerprint: `SHA256:${hash}`,
143
+ };
144
+ }
145
+ //# sourceMappingURL=keyManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyManager.js","sourceRoot":"","sources":["../../../src/auth/keyManager.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,21 @@ class CliChatService {
32
32
  chatHistory: this.chatHistory,
33
33
  plugins,
34
34
  };
35
+ this.registerCommand({
36
+ name: "reload",
37
+ description: "Reload configuration, tools, MCP connections, and modules",
38
+ handler: async () => {
39
+ try {
40
+ console.log("Reloading configuration...");
41
+ const result = await (0, services_1.services)().RuntimeReload.reload();
42
+ console.log(`✓ Reloaded ${result.tools} tools, ${result.mcps} MCP servers, and ${result.modules} modules`);
43
+ }
44
+ catch (error) {
45
+ const message = error instanceof Error ? error.message : String(error);
46
+ console.error(`⚠ Reload failed: ${message}`);
47
+ }
48
+ },
49
+ });
35
50
  this.loadInputHistory();
36
51
  (0, index_1.setOnNewHistoryEntry)((entry) => {
37
52
  this.addToInputHistory(entry);
@@ -1 +1 @@
1
- {"version":3,"file":"CliChatService.js","sourceRoot":"","sources":["../../../src/chat/CliChatService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CliChatService.js","sourceRoot":"","sources":["../../../src/chat/CliChatService.ts"],"names":[],"mappings":"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"}
@@ -49,11 +49,14 @@ export declare class AgentModule extends BaseChatModule {
49
49
  rewireAgentRendering(): void;
50
50
  handleAgentsCommand(args: string[]): Promise<void>;
51
51
  getProcessStartTime(): number;
52
- resumeSession(sessionId: string, resumeReason?: string): Promise<void>;
52
+ resumeSession(sessionId: string, resumeReason?: string, rollback?: number): Promise<void>;
53
53
  handleInput(input: string, context: ChatContext): Promise<boolean>;
54
54
  setupAgent(options: {
55
55
  agentName: string;
56
56
  input: string;
57
+ remoteTaskId?: string;
58
+ remoteMessageId?: string;
59
+ chatSessionId?: string;
57
60
  messageId?: string;
58
61
  syncFs?: boolean;
59
62
  syncRemote?: boolean;
@@ -67,6 +70,7 @@ export declare class AgentModule extends BaseChatModule {
67
70
  parentTaskId?: string;
68
71
  reasoningEffort?: CompletionOptions["reasoning_effort"];
69
72
  summarizeReasoning?: boolean;
73
+ enabledTools?: string[];
70
74
  }): Promise<{
71
75
  agent: BaseAgent;
72
76
  taskId: string;
@@ -81,6 +85,8 @@ export declare class AgentModule extends BaseChatModule {
81
85
  reasoningEffort?: CompletionOptions["reasoning_effort"];
82
86
  summarizeReasoning?: boolean;
83
87
  agentName?: string;
88
+ remoteTaskId?: string;
89
+ enabledTools?: string[];
84
90
  }>;
85
91
  resumeFromMessages(options: {
86
92
  agentName: string;
@@ -88,13 +94,19 @@ export declare class AgentModule extends BaseChatModule {
88
94
  threads: Message[][];
89
95
  messageId?: string;
90
96
  taskId?: string;
97
+ remoteTaskId?: string;
98
+ syncFs?: boolean;
91
99
  interactive?: boolean;
92
100
  model?: string;
93
101
  provider?: string;
94
102
  reasoningEffort?: CompletionOptions["reasoning_effort"];
95
103
  summarizeReasoning?: boolean;
104
+ enabledTools?: string[];
105
+ rollback?: number;
106
+ fork?: boolean;
96
107
  }): Promise<{
97
108
  taskCompleted: Promise<string>;
109
+ taskId: string;
98
110
  }>;
99
111
  getActiveTasks(): {
100
112
  taskId: string;
@@ -15,6 +15,12 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
18
24
  var __importStar = (this && this.__importStar) || (function () {
19
25
  var ownKeys = function(o) {
20
26
  ownKeys = Object.getOwnPropertyNames || function (o) {
@@ -32,6 +38,9 @@ var __importStar = (this && this.__importStar) || (function () {
32
38
  return result;
33
39
  };
34
40
  })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
35
44
  Object.defineProperty(exports, "__esModule", { value: true });
36
45
  exports.AgentModule = void 0;
37
46
  const renderer_1 = require("../renderer");
@@ -41,13 +50,16 @@ const fsPromises = __importStar(require("fs/promises"));
41
50
  const path = __importStar(require("path"));
42
51
  const BaseChatModule_1 = require("./BaseChatModule");
43
52
  const index_2 = require("../../services/index");
53
+ const types_1 = require("../../clients/types");
44
54
  const index_3 = require("../../utils/index");
45
55
  const TokenCompressor_1 = require("../../processors/TokenCompressor");
46
56
  const ToolResponseCache_1 = require("../../processors/ToolResponseCache");
47
57
  const index_4 = require("../../processors/index");
48
58
  const agents_1 = require("../../agents");
59
+ const historyRollback_1 = require("../../agents/historyRollback");
49
60
  const KnowhowClient_1 = require("../../services/KnowhowClient");
50
- class AgentModule extends BaseChatModule_1.BaseChatModule {
61
+ const Trace_1 = require("../../util/Trace");
62
+ let AgentModule = class AgentModule extends BaseChatModule_1.BaseChatModule {
51
63
  name = "agent";
52
64
  description = "Agent interaction functionality";
53
65
  attachedAgent;
@@ -148,18 +160,12 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
148
160
  },
149
161
  {
150
162
  name: "reasoning_effort",
151
- description: "Set the reasoning effort for the agent (none, low, medium, high). Use 'none' to disable thinking on models that support it.",
163
+ description: `Set the reasoning effort for the agent (${types_1.REASONING_EFFORTS.join(", ")}). Individual models support different subsets.`,
152
164
  handler: async (args) => {
153
- const validEfforts = [
154
- "none",
155
- "low",
156
- "medium",
157
- "high",
158
- ];
159
165
  const effort = args[0];
160
- if (!effort || !validEfforts.includes(effort)) {
166
+ if (!(0, types_1.isReasoningEffort)(effort)) {
161
167
  console.log(`Current reasoning effort: ${this.reasoningEffort ?? "(not set — model default)"}`);
162
- console.log(`Usage: /reasoning_effort <${validEfforts.join("|")}>`);
168
+ console.log(`Usage: /reasoning_effort <${types_1.REASONING_EFFORTS.join("|")}>`);
163
169
  return;
164
170
  }
165
171
  this.reasoningEffort = effort;
@@ -173,16 +179,10 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
173
179
  name: "effort",
174
180
  description: "Alias for /reasoning_effort",
175
181
  handler: async (args) => {
176
- const validEfforts = [
177
- "none",
178
- "low",
179
- "medium",
180
- "high",
181
- ];
182
182
  const effort = args[0];
183
- if (!effort || !validEfforts.includes(effort)) {
183
+ if (!(0, types_1.isReasoningEffort)(effort)) {
184
184
  console.log(`Current reasoning effort: ${this.reasoningEffort ?? "(not set — model default)"}`);
185
- console.log(`Usage: /effort <${validEfforts.join("|")}>`);
185
+ console.log(`Usage: /effort <${types_1.REASONING_EFFORTS.join("|")}>`);
186
186
  return;
187
187
  }
188
188
  this.reasoningEffort = effort;
@@ -214,8 +214,11 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
214
214
  description: "Detach from the currently attached agent",
215
215
  modes: ["agent:attached"],
216
216
  handler: async (_args) => {
217
+ const agent = this.attachedAgent;
217
218
  console.log("Detached from agent");
218
- this.detachFromAgent();
219
+ if (agent && this.attachedAgent === agent) {
220
+ this.detachFromAgent();
221
+ }
219
222
  },
220
223
  },
221
224
  {
@@ -450,7 +453,7 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
450
453
  getProcessStartTime() {
451
454
  return this.processStartTime;
452
455
  }
453
- async resumeSession(sessionId, resumeReason) {
456
+ async resumeSession(sessionId, resumeReason, rollback = 0) {
454
457
  try {
455
458
  const session = this.sessionManager.loadSession(sessionId);
456
459
  if (!session) {
@@ -473,18 +476,16 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
473
476
  const normalizedThreads = threads.length > 0 && !Array.isArray(threads[0])
474
477
  ? [threads]
475
478
  : threads;
476
- const lastThread = normalizedThreads.length > 0
477
- ? normalizedThreads[normalizedThreads.length - 1]
478
- : [];
479
- const resumeMessages = [...lastThread];
480
- const reversedIndex = [...lastThread]
479
+ const rolledBackThreads = (0, historyRollback_1.rollbackAgentInteractions)(normalizedThreads, rollback);
480
+ const resumeMessages = rolledBackThreads[rolledBackThreads.length - 1] || [];
481
+ const reversedIndex = [...resumeMessages]
481
482
  .reverse()
482
483
  .findIndex((e) => e.role === "user" && typeof e.content === "string");
483
484
  if (reversedIndex === -1) {
484
485
  resumeMessages.push({ role: "user", content: resumePrompt });
485
486
  }
486
487
  else {
487
- const actualIndex = lastThread.length - 1 - reversedIndex;
488
+ const actualIndex = resumeMessages.length - 1 - reversedIndex;
488
489
  resumeMessages[actualIndex] = {
489
490
  ...resumeMessages[actualIndex],
490
491
  content: resumeMessages[actualIndex].content +
@@ -499,17 +500,26 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
499
500
  console.error(`Agent ${agentName} not found.`);
500
501
  return;
501
502
  }
503
+ const remoteTaskId = asRemoteTaskId(session.knowhowTaskId);
502
504
  const { agent, taskId } = await this.setupAgent({
503
505
  agentName,
504
506
  input: resumePrompt,
505
- messageId: session.knowhowMessageId,
507
+ remoteTaskId,
508
+ remoteMessageId: session.knowhowMessageId,
509
+ chatSessionId: session.chatSessionId,
510
+ syncRemote: !!remoteTaskId,
511
+ taskId: session.taskId || sessionId,
506
512
  chatHistory: [],
507
513
  run: false,
508
514
  model: session.model,
509
515
  provider: session.provider,
510
516
  reasoningEffort: session.reasoningEffort,
511
517
  summarizeReasoning: session.summarizeReasoning,
518
+ enabledTools: session.enabledTools,
512
519
  });
520
+ if (!remoteTaskId && this.remoteSyncModule?.isAutoSyncEnabled()) {
521
+ await this.remoteSyncModule.syncTask(taskId);
522
+ }
513
523
  agent.agentEvents.once(agent.eventTypes.done, () => {
514
524
  const ctx = this.chatService?.getContext();
515
525
  if (ctx && !previousAgentMode) {
@@ -561,9 +571,14 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
561
571
  throw new Error(`Agent "${options.agentName}" not found. Available agents: ${Object.keys(agents_1.agentConstructors).join(", ")} (plus any agents defined in knowhow.json)`);
562
572
  }
563
573
  }
574
+ if (options.enabledTools) {
575
+ agent.restoreEnabledTools(options.enabledTools);
576
+ }
564
577
  let done = false;
565
578
  let output = "Done";
566
579
  const taskId = options.taskId || this.sessionManager.generateTaskId(input);
580
+ const remoteTaskId = asRemoteTaskId(options.remoteTaskId) ||
581
+ (options.syncRemote ? asRemoteTaskId(taskId) : undefined);
567
582
  let knowhowTaskId;
568
583
  try {
569
584
  const context = this.chatService?.getContext();
@@ -571,8 +586,9 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
571
586
  const formattedPrompt = await this.chatService.formatChatInput(input, plugins, chatHistory);
572
587
  let taskInfo = {
573
588
  taskId,
574
- knowhowMessageId: options.messageId,
575
- knowhowTaskId: options.syncRemote ? taskId : undefined,
589
+ knowhowMessageId: options.remoteMessageId || options.messageId,
590
+ knowhowTaskId: remoteTaskId,
591
+ chatSessionId: options.chatSessionId,
576
592
  agentName,
577
593
  agent,
578
594
  initialInput: input,
@@ -580,6 +596,7 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
580
596
  status: "running",
581
597
  startTime: Date.now(),
582
598
  totalCost: 0,
599
+ enabledTools: agent.getEnabledToolNames(),
583
600
  };
584
601
  this.taskRegistry.register(taskId, taskInfo);
585
602
  this.saveSession(taskId, taskInfo, []);
@@ -587,6 +604,7 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
587
604
  const syncTaskId = await syncer.createTask({
588
605
  taskId,
589
606
  prompt: input,
607
+ remoteTaskId,
590
608
  messageId: options.messageId,
591
609
  syncFs: options.syncFs,
592
610
  syncRemote: options.syncRemote,
@@ -594,8 +612,7 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
594
612
  parentTaskId: options.parentTaskId,
595
613
  });
596
614
  const webTaskId = syncer.getCreatedWebTaskId();
597
- knowhowTaskId = webTaskId;
598
- taskInfo.knowhowTaskId = webTaskId || syncTaskId;
615
+ taskInfo.knowhowTaskId = webTaskId;
599
616
  this.taskRegistry.register(taskId, taskInfo);
600
617
  await syncer.setupAgentSync(agent, syncTaskId);
601
618
  const threadUpdateHandler = async (threadState) => {
@@ -604,6 +621,7 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
604
621
  taskInfo.provider = agent.getProvider();
605
622
  taskInfo.reasoningEffort = agent.getReasoningEffort?.();
606
623
  taskInfo.summarizeReasoning = agent.getSummarizeReasoning?.();
624
+ taskInfo.enabledTools = agent.getEnabledToolNames();
607
625
  this.updateSession(taskId, agent.getThreads());
608
626
  };
609
627
  agent.agentEvents.on(agent.eventTypes.threadUpdate, threadUpdateHandler);
@@ -825,6 +843,10 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
825
843
  reasoningEffort: metadata.reasoningEffort,
826
844
  summarizeReasoning: metadata.summarizeReasoning,
827
845
  agentName: metadata.agentName,
846
+ remoteTaskId: asRemoteTaskId(metadata.remoteTaskId || metadata.knowhowTaskId),
847
+ enabledTools: Array.isArray(metadata.enabledTools)
848
+ ? metadata.enabledTools
849
+ : undefined,
828
850
  };
829
851
  }
830
852
  catch (e) {
@@ -835,6 +857,8 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
835
857
  }
836
858
  async resumeFromMessages(options) {
837
859
  const { agentName, input, threads, messageId, taskId } = options;
860
+ const action = options.fork ? "forking" : "resuming";
861
+ const remoteTaskId = asRemoteTaskId(options.remoteTaskId);
838
862
  let originalRequest = "";
839
863
  if (threads && threads.length > 0) {
840
864
  const firstThread = threads[0];
@@ -849,16 +873,19 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
849
873
  }
850
874
  }
851
875
  const resumePrompt = [
852
- "You are resuming a previously started task.",
876
+ `You are ${action} a previously started task.`,
853
877
  originalRequest ? `ORIGINAL REQUEST: ${originalRequest}` : "",
854
878
  "Please continue from where you left off.",
855
879
  input ? input : "",
856
880
  ]
857
881
  .filter(Boolean)
858
882
  .join("\n");
859
- const lastThread = threads && threads.length > 0 ? threads[threads.length - 1] : [];
883
+ const rolledBackThreads = (0, historyRollback_1.rollbackAgentInteractions)(threads || [], options.rollback || 0);
884
+ const lastThread = rolledBackThreads.length > 0
885
+ ? rolledBackThreads[rolledBackThreads.length - 1]
886
+ : [];
860
887
  const resumeMessages = [...lastThread];
861
- const resumeIndex = lastThread
888
+ const resumeIndex = [...lastThread]
862
889
  .reverse()
863
890
  .findIndex((e) => e.role === "user" && typeof e.content === "string");
864
891
  if (resumeIndex === -1) {
@@ -868,29 +895,43 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
868
895
  });
869
896
  }
870
897
  else {
871
- const actualIndex = lastThread.length - 1 - resumeIndex;
872
- const lastUserMessage = resumeMessages[actualIndex];
873
- lastUserMessage.content += `\n\n<Workflow>[RESUME CONTEXT]: ${resumePrompt}</Workflow>`;
898
+ const actualIndex = resumeMessages.length - 1 - resumeIndex;
899
+ resumeMessages[actualIndex] = {
900
+ ...resumeMessages[actualIndex],
901
+ content: `${resumeMessages[actualIndex].content}\n\n<Workflow>[RESUME CONTEXT]: ${resumePrompt}</Workflow>`,
902
+ };
874
903
  }
875
904
  const result = await this.setupAgent({
876
905
  agentName,
877
906
  input: resumePrompt,
878
- messageId,
907
+ messageId: remoteTaskId ? undefined : messageId,
908
+ remoteMessageId: remoteTaskId ? messageId : undefined,
879
909
  taskId,
880
- syncRemote: !messageId && !!taskId,
910
+ syncFs: options.syncFs,
911
+ remoteTaskId,
881
912
  run: false,
913
+ syncRemote: !options.fork && !!remoteTaskId,
882
914
  model: options.model,
883
915
  provider: options.provider,
884
916
  reasoningEffort: options.reasoningEffort,
885
917
  summarizeReasoning: options.summarizeReasoning,
918
+ enabledTools: options.enabledTools,
886
919
  });
887
920
  if (options.interactive) {
921
+ if (!options.fork &&
922
+ !remoteTaskId &&
923
+ this.remoteSyncModule?.isAutoSyncEnabled()) {
924
+ await this.remoteSyncModule.syncTask(result.taskId);
925
+ }
888
926
  await this.attachedAgentChatLoop(result.taskId, result.agent, resumePrompt, resumeMessages);
889
- return { taskCompleted: result.taskCompleted };
927
+ return {
928
+ taskCompleted: result.taskCompleted,
929
+ taskId: result.taskId,
930
+ };
890
931
  }
891
932
  this.wireAgentRendering(result.taskId, result.agent.agentEvents, result.agent.eventTypes, result.agent.name);
892
933
  result.agent.call(resumePrompt, resumeMessages);
893
- return { taskCompleted: result.taskCompleted };
934
+ return { taskCompleted: result.taskCompleted, taskId: result.taskId };
894
935
  }
895
936
  getActiveTasks() {
896
937
  return Array.from(this.taskRegistry.getEntries()).map(([taskId, taskInfo]) => ({
@@ -962,7 +1003,9 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
962
1003
  found.output = agentFinalOutput;
963
1004
  }
964
1005
  resolve("done");
965
- this.detachFromAgent();
1006
+ if (this.attachedAgent === agent) {
1007
+ this.detachFromAgent();
1008
+ }
966
1009
  });
967
1010
  });
968
1011
  if (initialInput) {
@@ -974,6 +1017,16 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
974
1017
  console.error("Agent execution failed:", error);
975
1018
  }
976
1019
  }
977
- }
1020
+ };
978
1021
  exports.AgentModule = AgentModule;
1022
+ exports.AgentModule = AgentModule = __decorate([
1023
+ (0, Trace_1.TraceAll)(),
1024
+ __metadata("design:paramtypes", [])
1025
+ ], AgentModule);
1026
+ function asRemoteTaskId(value) {
1027
+ return value &&
1028
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)
1029
+ ? value
1030
+ : undefined;
1031
+ }
979
1032
  //# sourceMappingURL=AgentModule.js.map