@tyvm/knowhow 0.0.146 → 0.0.148

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 (271) 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 +51 -23
  5. package/src/agents/historyRollback.ts +36 -0
  6. package/src/agents/tools/execCommand.ts +102 -320
  7. package/src/agents/tools/list.ts +2 -2
  8. package/src/agents/tools/startAgentTask.ts +91 -34
  9. package/src/ai.ts +4 -1
  10. package/src/auth/browserLogin.ts +9 -3
  11. package/src/auth/keyAuth.ts +115 -0
  12. package/src/auth/keyManager.ts +166 -0
  13. package/src/chat/CliChatService.ts +23 -2
  14. package/src/chat/modules/AgentModule.ts +114 -33
  15. package/src/chat/modules/AskModule.ts +2 -0
  16. package/src/chat/modules/BaseChatModule.ts +0 -1
  17. package/src/chat/modules/CustomCommandsModule.ts +2 -0
  18. package/src/chat/modules/InternalChatModule.ts +7 -0
  19. package/src/chat/modules/RemoteSyncModule.ts +4 -0
  20. package/src/chat/modules/RendererModule.ts +2 -0
  21. package/src/chat/modules/SearchModule.ts +2 -0
  22. package/src/chat/modules/SessionsModule.ts +103 -34
  23. package/src/chat/modules/SetupModule.ts +2 -0
  24. package/src/chat/modules/ShellCommandModule.ts +2 -0
  25. package/src/chat/modules/SystemModule.ts +2 -0
  26. package/src/chat/modules/ToolCommandModule.ts +102 -0
  27. package/src/chat/modules/index.ts +1 -0
  28. package/src/chat/types.ts +3 -1
  29. package/src/cli.ts +10 -3
  30. package/src/clients/http.ts +67 -7
  31. package/src/clients/index.ts +4 -0
  32. package/src/commands/agent.ts +1 -38
  33. package/src/commands/agents.ts +455 -60
  34. package/src/commands/misc.ts +3 -2
  35. package/src/commands/processes.ts +138 -0
  36. package/src/commands/services.ts +23 -1
  37. package/src/index.ts +1 -0
  38. package/src/login.ts +89 -28
  39. package/src/processes/ProcessManager.ts +95 -0
  40. package/src/processes/managedProcessShim.ts +115 -0
  41. package/src/services/AgentService.ts +2 -0
  42. package/src/services/AgentSyncFs.ts +77 -1
  43. package/src/services/AgentSyncKnowhowWeb.ts +22 -4
  44. package/src/services/BehaviorsService.ts +2 -0
  45. package/src/services/DockerService.ts +2 -0
  46. package/src/services/EmbeddingService.ts +2 -0
  47. package/src/services/EmbeddingsService.ts +3 -0
  48. package/src/services/ExtensionsService.ts +25 -0
  49. package/src/services/KnowhowClient.ts +68 -7
  50. package/src/services/LazyToolsService.ts +24 -20
  51. package/src/services/Mcp.ts +2 -0
  52. package/src/services/McpServer.ts +2 -0
  53. package/src/services/MessageProcessor.ts +2 -0
  54. package/src/services/MinimalToolsService.ts +2 -0
  55. package/src/services/SessionManager.ts +5 -0
  56. package/src/services/SkillsService.ts +2 -0
  57. package/src/services/SyncedAgentWatcher.ts +2 -0
  58. package/src/services/SyncerService.ts +23 -8
  59. package/src/services/TaskRegistry.ts +2 -0
  60. package/src/services/Tools.ts +12 -0
  61. package/src/services/index.ts +6 -0
  62. package/src/services/modules/index.ts +10 -1
  63. package/src/services/modules/types.ts +4 -0
  64. package/src/types.ts +2 -0
  65. package/src/util/Trace.ts +1 -1
  66. package/src/utils/http.ts +18 -2
  67. package/tests/unit/agents/historyRollback.test.ts +53 -0
  68. package/tests/unit/auth/keyAuth.test.ts +102 -0
  69. package/tests/unit/auth/keyManager.test.ts +67 -0
  70. package/tests/unit/chat/ToolCommandModule.test.ts +71 -0
  71. package/tests/unit/chat/historyCommandArgs.test.ts +37 -0
  72. package/tests/unit/commands/agents.test.ts +111 -0
  73. package/tests/unit/login.test.ts +119 -0
  74. package/tests/unit/services/AgentSyncKnowhowWeb.test.ts +38 -0
  75. package/tests/unit/services/LazyToolsService.test.ts +53 -0
  76. package/tests/unit/services/SessionManager.test.ts +43 -0
  77. package/tests/unit/services/SyncerService.test.ts +45 -0
  78. package/tests/unit/util/Trace.test.ts +119 -0
  79. package/tests/unit/utils/http.test.ts +43 -0
  80. package/ts_build/package.json +1 -1
  81. package/ts_build/src/agents/base/base.d.ts +2 -1
  82. package/ts_build/src/agents/base/base.js +47 -14
  83. package/ts_build/src/agents/base/base.js.map +1 -1
  84. package/ts_build/src/agents/historyRollback.d.ts +2 -0
  85. package/ts_build/src/agents/historyRollback.js +22 -0
  86. package/ts_build/src/agents/historyRollback.js.map +1 -0
  87. package/ts_build/src/agents/tools/execCommand.d.ts +4 -1
  88. package/ts_build/src/agents/tools/execCommand.js +100 -223
  89. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  90. package/ts_build/src/agents/tools/list.js +2 -2
  91. package/ts_build/src/agents/tools/list.js.map +1 -1
  92. package/ts_build/src/agents/tools/startAgentTask.d.ts +16 -1
  93. package/ts_build/src/agents/tools/startAgentTask.js +71 -28
  94. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  95. package/ts_build/src/ai.js +2 -1
  96. package/ts_build/src/ai.js.map +1 -1
  97. package/ts_build/src/auth/browserLogin.d.ts +1 -0
  98. package/ts_build/src/auth/browserLogin.js +5 -2
  99. package/ts_build/src/auth/browserLogin.js.map +1 -1
  100. package/ts_build/src/auth/keyAuth.d.ts +5 -0
  101. package/ts_build/src/auth/keyAuth.js +79 -0
  102. package/ts_build/src/auth/keyAuth.js.map +1 -0
  103. package/ts_build/src/auth/keyManager.d.ts +14 -0
  104. package/ts_build/src/auth/keyManager.js +145 -0
  105. package/ts_build/src/auth/keyManager.js.map +1 -0
  106. package/ts_build/src/chat/CliChatService.d.ts +6 -0
  107. package/ts_build/src/chat/CliChatService.js +17 -2
  108. package/ts_build/src/chat/CliChatService.js.map +1 -1
  109. package/ts_build/src/chat/modules/AgentModule.d.ts +13 -1
  110. package/ts_build/src/chat/modules/AgentModule.js +83 -24
  111. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  112. package/ts_build/src/chat/modules/AskModule.js +12 -2
  113. package/ts_build/src/chat/modules/AskModule.js.map +1 -1
  114. package/ts_build/src/chat/modules/BaseChatModule.js.map +1 -1
  115. package/ts_build/src/chat/modules/CustomCommandsModule.js +12 -2
  116. package/ts_build/src/chat/modules/CustomCommandsModule.js.map +1 -1
  117. package/ts_build/src/chat/modules/InternalChatModule.d.ts +1 -0
  118. package/ts_build/src/chat/modules/InternalChatModule.js +21 -2
  119. package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -1
  120. package/ts_build/src/chat/modules/RemoteSyncModule.js +19 -2
  121. package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
  122. package/ts_build/src/chat/modules/RendererModule.js +17 -2
  123. package/ts_build/src/chat/modules/RendererModule.js.map +1 -1
  124. package/ts_build/src/chat/modules/SearchModule.js +12 -2
  125. package/ts_build/src/chat/modules/SearchModule.js.map +1 -1
  126. package/ts_build/src/chat/modules/SessionsModule.d.ts +6 -0
  127. package/ts_build/src/chat/modules/SessionsModule.js +113 -18
  128. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
  129. package/ts_build/src/chat/modules/SetupModule.js +17 -2
  130. package/ts_build/src/chat/modules/SetupModule.js.map +1 -1
  131. package/ts_build/src/chat/modules/ShellCommandModule.js +12 -2
  132. package/ts_build/src/chat/modules/ShellCommandModule.js.map +1 -1
  133. package/ts_build/src/chat/modules/SystemModule.js +12 -2
  134. package/ts_build/src/chat/modules/SystemModule.js.map +1 -1
  135. package/ts_build/src/chat/modules/ToolCommandModule.d.ts +10 -0
  136. package/ts_build/src/chat/modules/ToolCommandModule.js +86 -0
  137. package/ts_build/src/chat/modules/ToolCommandModule.js.map +1 -0
  138. package/ts_build/src/chat/modules/index.d.ts +1 -0
  139. package/ts_build/src/chat/modules/index.js +3 -1
  140. package/ts_build/src/chat/modules/index.js.map +1 -1
  141. package/ts_build/src/chat/types.d.ts +3 -1
  142. package/ts_build/src/cli.js +7 -3
  143. package/ts_build/src/cli.js.map +1 -1
  144. package/ts_build/src/clients/http.d.ts +4 -0
  145. package/ts_build/src/clients/http.js +68 -6
  146. package/ts_build/src/clients/http.js.map +1 -1
  147. package/ts_build/src/clients/index.js +23 -4
  148. package/ts_build/src/clients/index.js.map +1 -1
  149. package/ts_build/src/commands/agent.js +1 -21
  150. package/ts_build/src/commands/agent.js.map +1 -1
  151. package/ts_build/src/commands/agents.d.ts +2 -1
  152. package/ts_build/src/commands/agents.js +216 -23
  153. package/ts_build/src/commands/agents.js.map +1 -1
  154. package/ts_build/src/commands/misc.js +3 -2
  155. package/ts_build/src/commands/misc.js.map +1 -1
  156. package/ts_build/src/commands/processes.d.ts +2 -0
  157. package/ts_build/src/commands/processes.js +213 -0
  158. package/ts_build/src/commands/processes.js.map +1 -0
  159. package/ts_build/src/commands/services.js +11 -1
  160. package/ts_build/src/commands/services.js.map +1 -1
  161. package/ts_build/src/index.d.ts +1 -0
  162. package/ts_build/src/index.js +1 -0
  163. package/ts_build/src/index.js.map +1 -1
  164. package/ts_build/src/login.d.ts +1 -1
  165. package/ts_build/src/login.js +53 -15
  166. package/ts_build/src/login.js.map +1 -1
  167. package/ts_build/src/processes/ProcessManager.d.ts +51 -0
  168. package/ts_build/src/processes/ProcessManager.js +160 -0
  169. package/ts_build/src/processes/ProcessManager.js.map +1 -0
  170. package/ts_build/src/processes/managedProcessShim.d.ts +1 -0
  171. package/ts_build/src/processes/managedProcessShim.js +161 -0
  172. package/ts_build/src/processes/managedProcessShim.js.map +1 -0
  173. package/ts_build/src/services/AgentService.js +18 -2
  174. package/ts_build/src/services/AgentService.js.map +1 -1
  175. package/ts_build/src/services/AgentSyncFs.d.ts +3 -0
  176. package/ts_build/src/services/AgentSyncFs.js +68 -16
  177. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  178. package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +2 -0
  179. package/ts_build/src/services/AgentSyncKnowhowWeb.js +28 -6
  180. package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +1 -1
  181. package/ts_build/src/services/BehaviorsService.js +12 -2
  182. package/ts_build/src/services/BehaviorsService.js.map +1 -1
  183. package/ts_build/src/services/DockerService.js +20 -8
  184. package/ts_build/src/services/DockerService.js.map +1 -1
  185. package/ts_build/src/services/EmbeddingService.js +16 -2
  186. package/ts_build/src/services/EmbeddingService.js.map +1 -1
  187. package/ts_build/src/services/EmbeddingsService.js +12 -2
  188. package/ts_build/src/services/EmbeddingsService.js.map +1 -1
  189. package/ts_build/src/services/ExtensionsService.d.ts +10 -0
  190. package/ts_build/src/services/ExtensionsService.js +17 -0
  191. package/ts_build/src/services/ExtensionsService.js.map +1 -0
  192. package/ts_build/src/services/KnowhowClient.d.ts +7 -2
  193. package/ts_build/src/services/KnowhowClient.js +108 -10
  194. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  195. package/ts_build/src/services/LazyToolsService.d.ts +2 -0
  196. package/ts_build/src/services/LazyToolsService.js +26 -9
  197. package/ts_build/src/services/LazyToolsService.js.map +1 -1
  198. package/ts_build/src/services/Mcp.js +12 -2
  199. package/ts_build/src/services/Mcp.js.map +1 -1
  200. package/ts_build/src/services/McpServer.js +17 -2
  201. package/ts_build/src/services/McpServer.js.map +1 -1
  202. package/ts_build/src/services/MessageProcessor.js +16 -2
  203. package/ts_build/src/services/MessageProcessor.js.map +1 -1
  204. package/ts_build/src/services/MinimalToolsService.js +16 -2
  205. package/ts_build/src/services/MinimalToolsService.js.map +1 -1
  206. package/ts_build/src/services/SessionManager.js +19 -2
  207. package/ts_build/src/services/SessionManager.js.map +1 -1
  208. package/ts_build/src/services/SkillsService.js +16 -2
  209. package/ts_build/src/services/SkillsService.js.map +1 -1
  210. package/ts_build/src/services/SyncedAgentWatcher.js +16 -2
  211. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
  212. package/ts_build/src/services/SyncerService.d.ts +1 -0
  213. package/ts_build/src/services/SyncerService.js +27 -5
  214. package/ts_build/src/services/SyncerService.js.map +1 -1
  215. package/ts_build/src/services/TaskRegistry.js +12 -2
  216. package/ts_build/src/services/TaskRegistry.js.map +1 -1
  217. package/ts_build/src/services/Tools.d.ts +1 -0
  218. package/ts_build/src/services/Tools.js +19 -2
  219. package/ts_build/src/services/Tools.js.map +1 -1
  220. package/ts_build/src/services/index.d.ts +5 -0
  221. package/ts_build/src/services/index.js +7 -2
  222. package/ts_build/src/services/index.js.map +1 -1
  223. package/ts_build/src/services/modules/index.d.ts +4 -1
  224. package/ts_build/src/services/modules/index.js +6 -1
  225. package/ts_build/src/services/modules/index.js.map +1 -1
  226. package/ts_build/src/services/modules/types.d.ts +3 -0
  227. package/ts_build/src/types.d.ts +1 -0
  228. package/ts_build/src/types.js.map +1 -1
  229. package/ts_build/src/util/Trace.d.ts +1 -3
  230. package/ts_build/src/utils/http.d.ts +6 -2
  231. package/ts_build/src/utils/http.js +8 -2
  232. package/ts_build/src/utils/http.js.map +1 -1
  233. package/ts_build/tests/unit/agents/historyRollback.test.d.ts +1 -0
  234. package/ts_build/tests/unit/agents/historyRollback.test.js +42 -0
  235. package/ts_build/tests/unit/agents/historyRollback.test.js.map +1 -0
  236. package/ts_build/tests/unit/auth/keyAuth.test.d.ts +1 -0
  237. package/ts_build/tests/unit/auth/keyAuth.test.js +77 -0
  238. package/ts_build/tests/unit/auth/keyAuth.test.js.map +1 -0
  239. package/ts_build/tests/unit/auth/keyManager.test.d.ts +1 -0
  240. package/ts_build/tests/unit/auth/keyManager.test.js +52 -0
  241. package/ts_build/tests/unit/auth/keyManager.test.js.map +1 -0
  242. package/ts_build/tests/unit/chat/ToolCommandModule.test.d.ts +1 -0
  243. package/ts_build/tests/unit/chat/ToolCommandModule.test.js +61 -0
  244. package/ts_build/tests/unit/chat/ToolCommandModule.test.js.map +1 -0
  245. package/ts_build/tests/unit/chat/historyCommandArgs.test.d.ts +1 -0
  246. package/ts_build/tests/unit/chat/historyCommandArgs.test.js +29 -0
  247. package/ts_build/tests/unit/chat/historyCommandArgs.test.js.map +1 -0
  248. package/ts_build/tests/unit/commands/agents.test.d.ts +1 -0
  249. package/ts_build/tests/unit/commands/agents.test.js +119 -0
  250. package/ts_build/tests/unit/commands/agents.test.js.map +1 -0
  251. package/ts_build/tests/unit/login.test.d.ts +1 -0
  252. package/ts_build/tests/unit/login.test.js +97 -0
  253. package/ts_build/tests/unit/login.test.js.map +1 -0
  254. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.d.ts +1 -0
  255. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js +32 -0
  256. package/ts_build/tests/unit/services/AgentSyncKnowhowWeb.test.js.map +1 -0
  257. package/ts_build/tests/unit/services/LazyToolsService.test.d.ts +1 -0
  258. package/ts_build/tests/unit/services/LazyToolsService.test.js +47 -0
  259. package/ts_build/tests/unit/services/LazyToolsService.test.js.map +1 -0
  260. package/ts_build/tests/unit/services/SessionManager.test.d.ts +1 -0
  261. package/ts_build/tests/unit/services/SessionManager.test.js +72 -0
  262. package/ts_build/tests/unit/services/SessionManager.test.js.map +1 -0
  263. package/ts_build/tests/unit/services/SyncerService.test.d.ts +1 -0
  264. package/ts_build/tests/unit/services/SyncerService.test.js +40 -0
  265. package/ts_build/tests/unit/services/SyncerService.test.js.map +1 -0
  266. package/ts_build/tests/unit/util/Trace.test.d.ts +1 -0
  267. package/ts_build/tests/unit/util/Trace.test.js +107 -0
  268. package/ts_build/tests/unit/util/Trace.test.js.map +1 -0
  269. package/ts_build/tests/unit/utils/http.test.d.ts +1 -0
  270. package/ts_build/tests/unit/utils/http.test.js +69 -0
  271. package/ts_build/tests/unit/utils/http.test.js.map +1 -0
@@ -0,0 +1,160 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ManagedProcess = void 0;
37
+ exports.getProcessesDir = getProcessesDir;
38
+ exports.processDirectory = processDirectory;
39
+ exports.readManagedStatus = readManagedStatus;
40
+ exports.listManagedProcesses = listManagedProcesses;
41
+ exports.spawnManaged = spawnManaged;
42
+ const child_process_1 = require("child_process");
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const crypto_1 = require("crypto");
46
+ function getProcessesDir(cwd = process.cwd()) {
47
+ return process.env.KNOWHOW_PROCESSES_DIR || path.join(cwd, ".knowhow", "processes");
48
+ }
49
+ function processDirectory(id, processesDir = getProcessesDir()) {
50
+ if (!/^[a-zA-Z0-9._-]+$/.test(id))
51
+ throw new Error(`Invalid process id: ${id}`);
52
+ return path.join(processesDir, id);
53
+ }
54
+ function readManagedStatus(id, processesDir = getProcessesDir()) {
55
+ return JSON.parse(fs.readFileSync(path.join(processDirectory(id, processesDir), "status.json"), "utf8"));
56
+ }
57
+ function listManagedProcesses(processesDir = getProcessesDir()) {
58
+ if (!fs.existsSync(processesDir))
59
+ return [];
60
+ return fs.readdirSync(processesDir, { withFileTypes: true })
61
+ .filter((entry) => entry.isDirectory() && fs.existsSync(path.join(processesDir, entry.name, "status.json")))
62
+ .flatMap((entry) => { try {
63
+ return [{ id: entry.name, directory: path.join(processesDir, entry.name), status: readManagedStatus(entry.name, processesDir) }];
64
+ }
65
+ catch {
66
+ return [];
67
+ } })
68
+ .sort((a, b) => b.status.startedAt.localeCompare(a.status.startedAt));
69
+ }
70
+ function makeId(command) {
71
+ const name = path.basename(command).replace(/[^a-zA-Z0-9._-]/g, "-").slice(0, 28) || "process";
72
+ return `${name}-${Date.now()}-${(0, crypto_1.randomBytes)(3).toString("hex")}`;
73
+ }
74
+ function waitForFile(file, timeoutMs) {
75
+ const started = Date.now();
76
+ return new Promise((resolve, reject) => {
77
+ const check = () => {
78
+ if (fs.existsSync(file))
79
+ return resolve();
80
+ if (Date.now() - started >= timeoutMs)
81
+ return reject(new Error(`Managed process did not initialize: ${file}`));
82
+ setTimeout(check, 20);
83
+ };
84
+ check();
85
+ });
86
+ }
87
+ class ManagedProcess {
88
+ id;
89
+ directory;
90
+ constructor(id, directory) {
91
+ this.id = id;
92
+ this.directory = directory;
93
+ }
94
+ get status() { return readManagedStatus(this.id, path.dirname(this.directory)); }
95
+ get stdoutPath() { return path.join(this.directory, "stdout"); }
96
+ get stderrPath() { return path.join(this.directory, "stderr"); }
97
+ get inputLogPath() { return path.join(this.directory, "input.log"); }
98
+ get stdinPath() { return path.join(this.directory, "stdin"); }
99
+ async write(input) {
100
+ if (process.platform === "win32") {
101
+ await fs.promises.appendFile(this.stdinPath, input);
102
+ return;
103
+ }
104
+ const handle = await fs.promises.open(this.stdinPath, fs.constants.O_WRONLY | fs.constants.O_NONBLOCK);
105
+ try {
106
+ await handle.writeFile(input);
107
+ }
108
+ finally {
109
+ await handle.close();
110
+ }
111
+ }
112
+ signal(signal = "SIGTERM") {
113
+ const status = this.status;
114
+ if (!status.pid)
115
+ throw new Error(`Process ${this.id} has no active pid`);
116
+ try {
117
+ process.kill(-status.pid, signal);
118
+ }
119
+ catch {
120
+ process.kill(status.pid, signal);
121
+ }
122
+ }
123
+ async wait(timeoutMs) {
124
+ const started = Date.now();
125
+ while (true) {
126
+ const status = this.status;
127
+ if (!["starting", "running"].includes(status.state))
128
+ return status;
129
+ if (timeoutMs !== undefined && Date.now() - started >= timeoutMs)
130
+ throw new Error(`Timed out waiting for managed process ${this.id} after ${timeoutMs}ms`);
131
+ await new Promise((resolve) => setTimeout(resolve, 100));
132
+ }
133
+ }
134
+ }
135
+ exports.ManagedProcess = ManagedProcess;
136
+ async function spawnManaged(command, args = [], options = {}) {
137
+ const cwd = path.resolve(options.cwd || process.cwd());
138
+ const processesDir = options.processesDir || getProcessesDir(cwd);
139
+ const id = options.id || makeId(command);
140
+ const directory = processDirectory(id, processesDir);
141
+ fs.mkdirSync(processesDir, { recursive: true });
142
+ fs.mkdirSync(directory);
143
+ const configPath = path.join(directory, "launch.json");
144
+ fs.writeFileSync(configPath, JSON.stringify({ id, command, args, cwd, env: options.env || {}, background: options.background === true, parentProcessId: options.parentProcessId || null, parentPid: options.parentPid ?? process.pid, shell: options.shell === true, processesDir }, null, 2));
145
+ const cliPath = path.resolve(__dirname, "..", "cli.js");
146
+ const shim = (0, child_process_1.spawn)(process.execPath, [cliPath, "processes", "run", "--config", configPath], { cwd, detached: true, stdio: "ignore", env: process.env });
147
+ shim.unref();
148
+ try {
149
+ await waitForFile(path.join(directory, "status.json"), 5000);
150
+ }
151
+ catch (error) {
152
+ try {
153
+ fs.rmSync(directory, { recursive: true, force: true });
154
+ }
155
+ catch { }
156
+ throw error;
157
+ }
158
+ return new ManagedProcess(id, directory);
159
+ }
160
+ //# sourceMappingURL=ProcessManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../../src/processes/ProcessManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runManagedProcessShim(configPath: string): Promise<void>;
@@ -0,0 +1,161 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runManagedProcessShim = runManagedProcessShim;
37
+ const child_process_1 = require("child_process");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ function atomicJson(file, value) {
41
+ const tmp = `${file}.${process.pid}.tmp`;
42
+ fs.writeFileSync(tmp, JSON.stringify(value, null, 2));
43
+ fs.renameSync(tmp, file);
44
+ }
45
+ function alive(pid) {
46
+ try {
47
+ process.kill(pid, 0);
48
+ return true;
49
+ }
50
+ catch (error) {
51
+ return error?.code === "EPERM";
52
+ }
53
+ }
54
+ function terminateGroup(child, signal) {
55
+ if (!child.pid)
56
+ return;
57
+ try {
58
+ process.kill(-child.pid, signal);
59
+ }
60
+ catch {
61
+ try {
62
+ child.kill(signal);
63
+ }
64
+ catch { }
65
+ }
66
+ }
67
+ async function runManagedProcessShim(configPath) {
68
+ const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
69
+ const dir = path.dirname(configPath);
70
+ const startedAt = new Date().toISOString();
71
+ const statusPath = path.join(dir, "status.json");
72
+ const stdoutPath = path.join(dir, "stdout");
73
+ const stderrPath = path.join(dir, "stderr");
74
+ const inputLogPath = path.join(dir, "input.log");
75
+ const fifoPath = path.join(dir, "stdin");
76
+ fs.closeSync(fs.openSync(stdoutPath, "a"));
77
+ fs.closeSync(fs.openSync(stderrPath, "a"));
78
+ fs.closeSync(fs.openSync(inputLogPath, "a"));
79
+ if (process.platform !== "win32") {
80
+ const result = (0, child_process_1.spawnSync)("mkfifo", [fifoPath]);
81
+ if (result.status !== 0 && !fs.existsSync(fifoPath))
82
+ throw new Error(`Unable to create stdin FIFO: ${result.stderr?.toString()}`);
83
+ }
84
+ else {
85
+ fs.closeSync(fs.openSync(fifoPath, "a"));
86
+ }
87
+ let status = {
88
+ id: config.id, pid: null, shimPid: process.pid, state: "starting", command: config.command,
89
+ args: config.args, cwd: config.cwd, parentProcessId: config.parentProcessId,
90
+ parentPid: config.parentPid, background: config.background, startedAt, endedAt: null,
91
+ exitCode: null, signal: null,
92
+ };
93
+ const writeStatus = () => atomicJson(statusPath, status);
94
+ atomicJson(path.join(dir, "metadata.json"), {
95
+ id: config.id, command: config.command, args: config.args, cwd: config.cwd,
96
+ parentProcessId: config.parentProcessId, parentPid: config.parentPid,
97
+ background: config.background, createdAt: startedAt, shimPid: process.pid,
98
+ });
99
+ fs.writeFileSync(path.join(dir, "pid"), "");
100
+ writeStatus();
101
+ const stdoutFd = fs.openSync(stdoutPath, "a");
102
+ const stderrFd = fs.openSync(stderrPath, "a");
103
+ const child = (0, child_process_1.spawn)(config.command, config.args, {
104
+ cwd: config.cwd, shell: config.shell, detached: process.platform !== "win32",
105
+ stdio: ["pipe", stdoutFd, stderrFd],
106
+ env: { ...process.env, ...config.env, KNOWHOW_MANAGED_PROCESS_ID: config.id, KNOWHOW_MANAGED_PROCESS_DIR: dir },
107
+ });
108
+ fs.closeSync(stdoutFd);
109
+ fs.closeSync(stderrFd);
110
+ status = { ...status, pid: child.pid || null, state: "running" };
111
+ fs.writeFileSync(path.join(dir, "pid"), child.pid ? `${child.pid}\n` : "");
112
+ writeStatus();
113
+ let fifoFd;
114
+ let fifoStream;
115
+ if (process.platform !== "win32") {
116
+ fifoFd = fs.openSync(fifoPath, fs.constants.O_RDWR);
117
+ fifoStream = fs.createReadStream("", { fd: fifoFd, autoClose: false });
118
+ fifoStream.on("data", (chunk) => {
119
+ fs.appendFileSync(inputLogPath, chunk);
120
+ if (child.stdin?.writable)
121
+ child.stdin.write(chunk);
122
+ });
123
+ }
124
+ let stoppingForParent = false;
125
+ const parentTimer = !config.background && config.parentPid
126
+ ? setInterval(() => {
127
+ if (!alive(config.parentPid)) {
128
+ stoppingForParent = true;
129
+ terminateGroup(child, "SIGTERM");
130
+ setTimeout(() => { if (alive(child.pid || -1))
131
+ terminateGroup(child, "SIGKILL"); }, 3000).unref();
132
+ }
133
+ }, 500)
134
+ : undefined;
135
+ parentTimer?.unref();
136
+ const forward = (signal) => terminateGroup(child, signal);
137
+ process.once("SIGINT", () => forward("SIGINT"));
138
+ process.once("SIGTERM", () => forward("SIGTERM"));
139
+ process.once("SIGHUP", () => forward("SIGHUP"));
140
+ await new Promise((resolve) => {
141
+ child.once("error", (error) => {
142
+ status = { ...status, state: "failed", error: error.message, endedAt: new Date().toISOString() };
143
+ writeStatus();
144
+ resolve();
145
+ });
146
+ child.once("exit", (code, signal) => {
147
+ status = { ...status, state: stoppingForParent || signal ? "stopped" : code === 0 ? "exited" : "failed", endedAt: new Date().toISOString(), exitCode: code, signal };
148
+ writeStatus();
149
+ resolve();
150
+ });
151
+ });
152
+ if (parentTimer)
153
+ clearInterval(parentTimer);
154
+ fifoStream?.destroy();
155
+ if (fifoFd !== undefined)
156
+ try {
157
+ fs.closeSync(fifoFd);
158
+ }
159
+ catch { }
160
+ }
161
+ //# sourceMappingURL=managedProcessShim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managedProcessShim.js","sourceRoot":"","sources":["../../../src/processes/managedProcessShim.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.AgentService = void 0;
4
13
  const config_1 = require("../config");
14
+ const EventService_1 = require("./EventService");
15
+ const Tools_1 = require("./Tools");
5
16
  const ConfigAgent_1 = require("../agents/configurable/ConfigAgent");
6
- class AgentService {
17
+ const Trace_1 = require("../util/Trace");
18
+ let AgentService = class AgentService {
7
19
  tools;
8
20
  events;
9
21
  agents = new Map();
@@ -97,6 +109,10 @@ class AgentService {
97
109
  : 0;
98
110
  return { answer, costUsd };
99
111
  }
100
- }
112
+ };
101
113
  exports.AgentService = AgentService;
114
+ exports.AgentService = AgentService = __decorate([
115
+ (0, Trace_1.TraceAll)(),
116
+ __metadata("design:paramtypes", [Tools_1.ToolsService, EventService_1.EventService])
117
+ ], AgentService);
102
118
  //# sourceMappingURL=AgentService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentService.js","sourceRoot":"","sources":["../../../src/services/AgentService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentService.js","sourceRoot":"","sources":["../../../src/services/AgentService.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,9 @@ export declare class AgentSyncFs {
26
26
  private writeStatus;
27
27
  private writeInput;
28
28
  private writeMetadata;
29
+ static persistRemoteIdentity(taskId: string, remoteTaskId: string, remoteMessageId?: string): Promise<void>;
30
+ setRemoteIdentity(remoteTaskId: string, remoteMessageId?: string): Promise<void>;
31
+ private static writeRemoteIdentity;
29
32
  private appendUsageEntry;
30
33
  private updateMetadata;
31
34
  private readStatus;
@@ -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,12 +38,18 @@ 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
+ };
44
+ var AgentSyncFs_1;
35
45
  Object.defineProperty(exports, "__esModule", { value: true });
36
46
  exports.AgentSyncFs = void 0;
47
+ const Trace_1 = require("../util/Trace");
37
48
  const fs_1 = require("fs");
38
49
  const path = __importStar(require("path"));
39
50
  const fs_2 = require("fs");
40
- class AgentSyncFs {
51
+ let AgentSyncFs = class AgentSyncFs {
52
+ static { AgentSyncFs_1 = this; }
41
53
  static sharedCleanupInterval = null;
42
54
  static sharedBasePath = ".knowhow/processes/agents";
43
55
  static cleanupStarted = false;
@@ -54,7 +66,7 @@ class AgentSyncFs {
54
66
  tokenUsageHandler;
55
67
  pendingThreadUpdatePromise = null;
56
68
  constructor() {
57
- AgentSyncFs.startSharedCleanupProcess();
69
+ AgentSyncFs_1.startSharedCleanupProcess();
58
70
  }
59
71
  async createTask(options) {
60
72
  this.taskId = options.taskId;
@@ -108,12 +120,47 @@ class AgentSyncFs {
108
120
  return;
109
121
  try {
110
122
  const metadataPath = path.join(this.taskPath, "metadata.json");
111
- await fs_1.promises.writeFile(metadataPath, JSON.stringify(data, null, 2), "utf8");
123
+ let existing = {};
124
+ try {
125
+ existing = JSON.parse(await fs_1.promises.readFile(metadataPath, "utf8"));
126
+ }
127
+ catch { }
128
+ await fs_1.promises.writeFile(metadataPath, JSON.stringify({ ...existing, ...data }, null, 2), "utf8");
112
129
  }
113
130
  catch (error) {
114
131
  console.error(`❌ Failed to write metadata:`, error);
115
132
  }
116
133
  }
134
+ static async persistRemoteIdentity(taskId, remoteTaskId, remoteMessageId) {
135
+ const taskPath = path.join(AgentSyncFs_1.sharedBasePath, taskId);
136
+ await AgentSyncFs_1.writeRemoteIdentity(taskPath, remoteTaskId, remoteMessageId);
137
+ }
138
+ async setRemoteIdentity(remoteTaskId, remoteMessageId) {
139
+ if (!this.taskPath)
140
+ return;
141
+ await AgentSyncFs_1.writeRemoteIdentity(this.taskPath, remoteTaskId, remoteMessageId);
142
+ }
143
+ static async writeRemoteIdentity(taskPath, remoteTaskId, remoteMessageId) {
144
+ try {
145
+ const metadataPath = path.join(taskPath, "metadata.json");
146
+ let metadata = {};
147
+ try {
148
+ metadata = JSON.parse(await fs_1.promises.readFile(metadataPath, "utf8"));
149
+ }
150
+ catch {
151
+ }
152
+ metadata.remoteTaskId = remoteTaskId;
153
+ metadata.knowhowTaskId = remoteTaskId;
154
+ if (remoteMessageId) {
155
+ metadata.remoteMessageId = remoteMessageId;
156
+ metadata.knowhowMessageId = remoteMessageId;
157
+ }
158
+ await fs_1.promises.writeFile(metadataPath, JSON.stringify(metadata, null, 2), "utf8");
159
+ }
160
+ catch (error) {
161
+ console.error(`❌ Failed to persist remote task identity:`, error);
162
+ }
163
+ }
117
164
  async appendUsageEntry(entry) {
118
165
  if (!this.taskPath)
119
166
  return;
@@ -166,6 +213,7 @@ class AgentSyncFs {
166
213
  metadata.provider = agent.getProvider();
167
214
  metadata.reasoningEffort = agent.getReasoningEffort?.();
168
215
  metadata.summarizeReasoning = agent.getSummarizeReasoning?.();
216
+ metadata.enabledTools = agent.getEnabledToolNames();
169
217
  metadata.inProgress = inProgress;
170
218
  metadata.lastUpdate = new Date().toISOString();
171
219
  if (result !== undefined) {
@@ -362,7 +410,7 @@ class AgentSyncFs {
362
410
  }
363
411
  static async cleanupOldTasks() {
364
412
  try {
365
- const agentsPath = AgentSyncFs.sharedBasePath;
413
+ const agentsPath = AgentSyncFs_1.sharedBasePath;
366
414
  try {
367
415
  await fs_1.promises.access(agentsPath);
368
416
  }
@@ -388,7 +436,7 @@ class AgentSyncFs {
388
436
  console.error(`❌ Error cleaning up ${entry.name}:`, error);
389
437
  }
390
438
  }
391
- await AgentSyncFs.cleanupOldProcessLogs(threeDaysMs);
439
+ await AgentSyncFs_1.cleanupOldProcessLogs(threeDaysMs);
392
440
  }
393
441
  catch (error) {
394
442
  console.error(`❌ Error during cleanup:`, error);
@@ -396,7 +444,7 @@ class AgentSyncFs {
396
444
  }
397
445
  static async cleanupOldProcessLogs(maxAgeMs) {
398
446
  try {
399
- const processesPath = path.dirname(AgentSyncFs.sharedBasePath);
447
+ const processesPath = path.dirname(AgentSyncFs_1.sharedBasePath);
400
448
  try {
401
449
  await fs_1.promises.access(processesPath);
402
450
  }
@@ -427,19 +475,19 @@ class AgentSyncFs {
427
475
  }
428
476
  }
429
477
  static startSharedCleanupProcess() {
430
- if (AgentSyncFs.cleanupStarted)
478
+ if (AgentSyncFs_1.cleanupStarted)
431
479
  return;
432
- AgentSyncFs.cleanupStarted = true;
433
- AgentSyncFs.sharedCleanupInterval = setInterval(() => {
434
- AgentSyncFs.cleanupOldTasks();
480
+ AgentSyncFs_1.cleanupStarted = true;
481
+ AgentSyncFs_1.sharedCleanupInterval = setInterval(() => {
482
+ AgentSyncFs_1.cleanupOldTasks();
435
483
  }, 60 * 60 * 1000);
436
- AgentSyncFs.cleanupOldTasks();
484
+ AgentSyncFs_1.cleanupOldTasks();
437
485
  }
438
486
  stopCleanup() {
439
- if (AgentSyncFs.sharedCleanupInterval) {
440
- clearInterval(AgentSyncFs.sharedCleanupInterval);
441
- AgentSyncFs.sharedCleanupInterval = null;
442
- AgentSyncFs.cleanupStarted = false;
487
+ if (AgentSyncFs_1.sharedCleanupInterval) {
488
+ clearInterval(AgentSyncFs_1.sharedCleanupInterval);
489
+ AgentSyncFs_1.sharedCleanupInterval = null;
490
+ AgentSyncFs_1.cleanupStarted = false;
443
491
  }
444
492
  }
445
493
  reset() {
@@ -466,6 +514,10 @@ class AgentSyncFs {
466
514
  this.finalizationPromise = null;
467
515
  this.pendingThreadUpdatePromise = null;
468
516
  }
469
- }
517
+ };
470
518
  exports.AgentSyncFs = AgentSyncFs;
519
+ exports.AgentSyncFs = AgentSyncFs = AgentSyncFs_1 = __decorate([
520
+ (0, Trace_1.TraceAll)(),
521
+ __metadata("design:paramtypes", [])
522
+ ], AgentSyncFs);
471
523
  //# sourceMappingURL=AgentSyncFs.js.map