@tyvm/knowhow 0.0.161 → 0.0.163

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 (281) hide show
  1. package/package.json +6 -6
  2. package/sdk.d.ts +1 -0
  3. package/sdk.js +1 -0
  4. package/ts_build/package.json +6 -6
  5. package/ts_build/src/agents/base/base.d.ts +1 -0
  6. package/ts_build/src/agents/base/base.js +26 -6
  7. package/ts_build/src/agents/base/base.js.map +1 -1
  8. package/ts_build/src/agents/developer/developer.js +2 -2
  9. package/ts_build/src/agents/developer/developer.js.map +1 -1
  10. package/ts_build/src/agents/patcher/patcher.js +3 -3
  11. package/ts_build/src/agents/patcher/patcher.js.map +1 -1
  12. package/ts_build/src/agents/researcher/researcher.js +2 -2
  13. package/ts_build/src/agents/researcher/researcher.js.map +1 -1
  14. package/ts_build/src/agents/tools/connectAgent.js +2 -7
  15. package/ts_build/src/agents/tools/connectAgent.js.map +1 -1
  16. package/ts_build/src/agents/tools/execCommand.js +7 -2
  17. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  18. package/ts_build/src/agents/tools/index.d.ts +2 -0
  19. package/ts_build/src/agents/tools/index.js +2 -0
  20. package/ts_build/src/agents/tools/index.js.map +1 -1
  21. package/ts_build/src/agents/tools/list.js +4 -0
  22. package/ts_build/src/agents/tools/list.js.map +1 -1
  23. package/ts_build/src/agents/tools/listWorkers.d.ts +9 -0
  24. package/ts_build/src/agents/tools/listWorkers.js +55 -0
  25. package/ts_build/src/agents/tools/listWorkers.js.map +1 -0
  26. package/ts_build/src/agents/tools/minimal/callTool.js.map +1 -1
  27. package/ts_build/src/agents/tools/replyToParent.js +2 -7
  28. package/ts_build/src/agents/tools/replyToParent.js.map +1 -1
  29. package/ts_build/src/agents/tools/sendAgentMessage.js +28 -9
  30. package/ts_build/src/agents/tools/sendAgentMessage.js.map +1 -1
  31. package/ts_build/src/agents/tools/startAgentTask.d.ts +7 -0
  32. package/ts_build/src/agents/tools/startAgentTask.js +56 -2
  33. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  34. package/ts_build/src/agents/tools/waitForAgentCompleted.d.ts +2 -0
  35. package/ts_build/src/agents/tools/waitForAgentCompleted.js +35 -1
  36. package/ts_build/src/agents/tools/waitForAgentCompleted.js.map +1 -1
  37. package/ts_build/src/agents/tools/workerExec.d.ts +8 -0
  38. package/ts_build/src/agents/tools/workerExec.js +53 -0
  39. package/ts_build/src/agents/tools/workerExec.js.map +1 -0
  40. package/ts_build/src/chat/CliChatService.js +6 -2
  41. package/ts_build/src/chat/CliChatService.js.map +1 -1
  42. package/ts_build/src/chat/modules/AgentModule.d.ts +10 -0
  43. package/ts_build/src/chat/modules/AgentModule.js +84 -117
  44. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  45. package/ts_build/src/chat/modules/InternalChatModule.d.ts +1 -0
  46. package/ts_build/src/chat/modules/InternalChatModule.js +8 -0
  47. package/ts_build/src/chat/modules/InternalChatModule.js.map +1 -1
  48. package/ts_build/src/chat/modules/RemoteSyncModule.js +15 -8
  49. package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
  50. package/ts_build/src/chat/modules/WorkerModule.d.ts +22 -0
  51. package/ts_build/src/chat/modules/WorkerModule.js +195 -0
  52. package/ts_build/src/chat/modules/WorkerModule.js.map +1 -0
  53. package/ts_build/src/chat/modules/index.d.ts +1 -0
  54. package/ts_build/src/chat/modules/index.js +3 -1
  55. package/ts_build/src/chat/modules/index.js.map +1 -1
  56. package/ts_build/src/cli.js +3 -0
  57. package/ts_build/src/cli.js.map +1 -1
  58. package/ts_build/src/clients/anthropic.js +65 -43
  59. package/ts_build/src/clients/anthropic.js.map +1 -1
  60. package/ts_build/src/clients/contextLimits.js +12 -0
  61. package/ts_build/src/clients/contextLimits.js.map +1 -1
  62. package/ts_build/src/clients/gemini.js +57 -27
  63. package/ts_build/src/clients/gemini.js.map +1 -1
  64. package/ts_build/src/clients/index.d.ts +5 -1
  65. package/ts_build/src/clients/index.js +57 -1
  66. package/ts_build/src/clients/index.js.map +1 -1
  67. package/ts_build/src/clients/jev.d.ts +14 -0
  68. package/ts_build/src/clients/jev.js +69 -0
  69. package/ts_build/src/clients/jev.js.map +1 -0
  70. package/ts_build/src/clients/knowhow.js +9 -1
  71. package/ts_build/src/clients/knowhow.js.map +1 -1
  72. package/ts_build/src/clients/openai.js +5 -0
  73. package/ts_build/src/clients/openai.js.map +1 -1
  74. package/ts_build/src/clients/pricing/anthropic.d.ts +3 -0
  75. package/ts_build/src/clients/pricing/anthropic.js +13 -0
  76. package/ts_build/src/clients/pricing/anthropic.js.map +1 -1
  77. package/ts_build/src/clients/pricing/fireworks.d.ts +0 -1
  78. package/ts_build/src/clients/pricing/fireworks.js +0 -3
  79. package/ts_build/src/clients/pricing/fireworks.js.map +1 -1
  80. package/ts_build/src/clients/pricing/google.d.ts +2 -0
  81. package/ts_build/src/clients/pricing/google.js +14 -0
  82. package/ts_build/src/clients/pricing/google.js.map +1 -1
  83. package/ts_build/src/clients/pricing/index.d.ts +2 -1
  84. package/ts_build/src/clients/pricing/index.js +7 -2
  85. package/ts_build/src/clients/pricing/index.js.map +1 -1
  86. package/ts_build/src/clients/pricing/jev.d.ts +7 -0
  87. package/ts_build/src/clients/pricing/jev.js +14 -0
  88. package/ts_build/src/clients/pricing/jev.js.map +1 -0
  89. package/ts_build/src/clients/pricing/models.js +2 -0
  90. package/ts_build/src/clients/pricing/models.js.map +1 -1
  91. package/ts_build/src/clients/pricing/openai.d.ts +3 -0
  92. package/ts_build/src/clients/pricing/openai.js +34 -0
  93. package/ts_build/src/clients/pricing/openai.js.map +1 -1
  94. package/ts_build/src/clients/pricing/types.d.ts +2 -1
  95. package/ts_build/src/clients/pricing/types.js +3 -1
  96. package/ts_build/src/clients/pricing/types.js.map +1 -1
  97. package/ts_build/src/clients/pricing/xai.d.ts +1 -0
  98. package/ts_build/src/clients/pricing/xai.js +4 -1
  99. package/ts_build/src/clients/pricing/xai.js.map +1 -1
  100. package/ts_build/src/clients/types.d.ts +62 -1
  101. package/ts_build/src/clients/types.js.map +1 -1
  102. package/ts_build/src/commands/agent.js +66 -0
  103. package/ts_build/src/commands/agent.js.map +1 -1
  104. package/ts_build/src/commands/agents.js +7 -1
  105. package/ts_build/src/commands/agents.js.map +1 -1
  106. package/ts_build/src/commands/convert.js +11 -10
  107. package/ts_build/src/commands/convert.js.map +1 -1
  108. package/ts_build/src/commands/mcp.js +132 -0
  109. package/ts_build/src/commands/mcp.js.map +1 -1
  110. package/ts_build/src/commands/processes.js +79 -37
  111. package/ts_build/src/commands/processes.js.map +1 -1
  112. package/ts_build/src/commands/remote.js +13 -0
  113. package/ts_build/src/commands/remote.js.map +1 -1
  114. package/ts_build/src/commands/services.d.ts +3 -0
  115. package/ts_build/src/commands/services.js +7 -4
  116. package/ts_build/src/commands/services.js.map +1 -1
  117. package/ts_build/src/commands/workers.d.ts +1 -0
  118. package/ts_build/src/commands/workers.js +134 -3
  119. package/ts_build/src/commands/workers.js.map +1 -1
  120. package/ts_build/src/config.js +1 -0
  121. package/ts_build/src/config.js.map +1 -1
  122. package/ts_build/src/fileSync.d.ts +1 -1
  123. package/ts_build/src/fileSync.js +7 -6
  124. package/ts_build/src/fileSync.js.map +1 -1
  125. package/ts_build/src/hashes.d.ts +2 -1
  126. package/ts_build/src/hashes.js +10 -1
  127. package/ts_build/src/hashes.js.map +1 -1
  128. package/ts_build/src/index.d.ts +0 -1
  129. package/ts_build/src/index.js +0 -1
  130. package/ts_build/src/index.js.map +1 -1
  131. package/ts_build/src/microphone.d.ts +1 -0
  132. package/ts_build/src/microphone.js +14 -6
  133. package/ts_build/src/microphone.js.map +1 -1
  134. package/ts_build/src/plugins/GitPlugin.d.ts +1 -0
  135. package/ts_build/src/plugins/GitPlugin.js +3 -0
  136. package/ts_build/src/plugins/GitPlugin.js.map +1 -1
  137. package/ts_build/src/plugins/embedding.js +21 -8
  138. package/ts_build/src/plugins/embedding.js.map +1 -1
  139. package/ts_build/src/processes/ProcessManager.js +5 -1
  140. package/ts_build/src/processes/ProcessManager.js.map +1 -1
  141. package/ts_build/src/processes/registry.d.ts +26 -0
  142. package/ts_build/src/processes/registry.js +228 -0
  143. package/ts_build/src/processes/registry.js.map +1 -0
  144. package/ts_build/src/processors/defaultProcessors.d.ts +8 -0
  145. package/ts_build/src/processors/defaultProcessors.js +38 -0
  146. package/ts_build/src/processors/defaultProcessors.js.map +1 -0
  147. package/ts_build/src/sdk.d.ts +30 -0
  148. package/ts_build/src/sdk.js +65 -0
  149. package/ts_build/src/sdk.js.map +1 -0
  150. package/ts_build/src/services/AgentService.d.ts +3 -0
  151. package/ts_build/src/services/AgentService.js +25 -0
  152. package/ts_build/src/services/AgentService.js.map +1 -1
  153. package/ts_build/src/services/AgentTaskCleanup.d.ts +5 -0
  154. package/ts_build/src/services/AgentTaskCleanup.js +155 -0
  155. package/ts_build/src/services/AgentTaskCleanup.js.map +1 -0
  156. package/ts_build/src/services/ExtensionsService.d.ts +18 -0
  157. package/ts_build/src/services/ExtensionsService.js +51 -1
  158. package/ts_build/src/services/ExtensionsService.js.map +1 -1
  159. package/ts_build/src/services/InteractiveAgentRuntime.d.ts +104 -0
  160. package/ts_build/src/services/InteractiveAgentRuntime.js +238 -0
  161. package/ts_build/src/services/InteractiveAgentRuntime.js.map +1 -0
  162. package/ts_build/src/services/KnowhowClient.d.ts +74 -1
  163. package/ts_build/src/services/KnowhowClient.js +24 -2
  164. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  165. package/ts_build/src/services/Mcp.d.ts +1 -0
  166. package/ts_build/src/services/Mcp.js +78 -19
  167. package/ts_build/src/services/Mcp.js.map +1 -1
  168. package/ts_build/src/services/RemoteWorkers.d.ts +115 -0
  169. package/ts_build/src/services/RemoteWorkers.js +561 -0
  170. package/ts_build/src/services/RemoteWorkers.js.map +1 -0
  171. package/ts_build/src/services/Tools.d.ts +2 -1
  172. package/ts_build/src/services/Tools.js.map +1 -1
  173. package/ts_build/src/services/conversion/ConversionService.d.ts +6 -1
  174. package/ts_build/src/services/conversion/ConversionService.js +54 -1
  175. package/ts_build/src/services/conversion/ConversionService.js.map +1 -1
  176. package/ts_build/src/services/conversion/types.d.ts +10 -0
  177. package/ts_build/src/services/index.d.ts +1 -3
  178. package/ts_build/src/services/index.js +2 -3
  179. package/ts_build/src/services/index.js.map +1 -1
  180. package/ts_build/src/services/modules/index.d.ts +1 -2
  181. package/ts_build/src/services/modules/runtime.d.ts +11 -0
  182. package/ts_build/src/services/modules/runtime.js +81 -0
  183. package/ts_build/src/services/modules/runtime.js.map +1 -0
  184. package/ts_build/src/services/modules/types.d.ts +0 -2
  185. package/ts_build/src/services/stateful/ProcessMirror.d.ts +32 -0
  186. package/ts_build/src/services/stateful/ProcessMirror.js +120 -0
  187. package/ts_build/src/services/stateful/ProcessMirror.js.map +1 -0
  188. package/ts_build/src/services/stateful/ResumableProcess.d.ts +11 -0
  189. package/ts_build/src/services/stateful/ResumableProcess.js +20 -0
  190. package/ts_build/src/services/stateful/ResumableProcess.js.map +1 -0
  191. package/ts_build/src/services/stateful/StatefulProcess.d.ts +92 -0
  192. package/ts_build/src/services/stateful/StatefulProcess.js +513 -0
  193. package/ts_build/src/services/stateful/StatefulProcess.js.map +1 -0
  194. package/ts_build/src/services/stateful/agent/AgentFsChannel.d.ts +68 -0
  195. package/ts_build/src/services/stateful/agent/AgentFsChannel.js +448 -0
  196. package/ts_build/src/services/stateful/agent/AgentFsChannel.js.map +1 -0
  197. package/ts_build/src/services/stateful/agent/AgentSession.d.ts +68 -0
  198. package/ts_build/src/services/stateful/agent/AgentSession.js +340 -0
  199. package/ts_build/src/services/stateful/agent/AgentSession.js.map +1 -0
  200. package/ts_build/src/services/stateful/agent/KnowhowWebChannel.d.ts +54 -0
  201. package/ts_build/src/services/stateful/agent/KnowhowWebChannel.js +294 -0
  202. package/ts_build/src/services/stateful/agent/KnowhowWebChannel.js.map +1 -0
  203. package/ts_build/src/services/stateful/agent/agentChannels.d.ts +14 -0
  204. package/ts_build/src/services/stateful/agent/agentChannels.js +23 -0
  205. package/ts_build/src/services/stateful/agent/agentChannels.js.map +1 -0
  206. package/ts_build/src/services/stateful/agent/agentMirror.d.ts +59 -0
  207. package/ts_build/src/services/stateful/agent/agentMirror.js +203 -0
  208. package/ts_build/src/services/stateful/agent/agentMirror.js.map +1 -0
  209. package/ts_build/src/services/stateful/agent/agentProjection.d.ts +27 -0
  210. package/ts_build/src/services/stateful/agent/agentProjection.js +108 -0
  211. package/ts_build/src/services/stateful/agent/agentProjection.js.map +1 -0
  212. package/ts_build/src/services/stateful/agent/index.d.ts +7 -0
  213. package/ts_build/src/services/stateful/agent/index.js +24 -0
  214. package/ts_build/src/services/stateful/agent/index.js.map +1 -0
  215. package/ts_build/src/services/stateful/agent/types.d.ts +44 -0
  216. package/ts_build/src/services/{modules/computerUse.js → stateful/agent/types.js} +1 -1
  217. package/ts_build/src/services/stateful/agent/types.js.map +1 -0
  218. package/ts_build/src/services/stateful/changesIterable.d.ts +2 -0
  219. package/ts_build/src/services/stateful/changesIterable.js +51 -0
  220. package/ts_build/src/services/stateful/changesIterable.js.map +1 -0
  221. package/ts_build/src/services/stateful/channels/Channel.d.ts +71 -0
  222. package/ts_build/src/services/stateful/channels/Channel.js +158 -0
  223. package/ts_build/src/services/stateful/channels/Channel.js.map +1 -0
  224. package/ts_build/src/services/stateful/channels/JsonFileChannel.d.ts +65 -0
  225. package/ts_build/src/services/stateful/channels/JsonFileChannel.js +258 -0
  226. package/ts_build/src/services/stateful/channels/JsonFileChannel.js.map +1 -0
  227. package/ts_build/src/services/stateful/channels/MemoryChannel.d.ts +32 -0
  228. package/ts_build/src/services/stateful/channels/MemoryChannel.js +58 -0
  229. package/ts_build/src/services/stateful/channels/MemoryChannel.js.map +1 -0
  230. package/ts_build/src/services/stateful/channels/base.d.ts +29 -0
  231. package/ts_build/src/services/stateful/channels/base.js +36 -0
  232. package/ts_build/src/services/stateful/channels/base.js.map +1 -0
  233. package/ts_build/src/services/stateful/channels/delta.d.ts +34 -0
  234. package/ts_build/src/services/stateful/channels/delta.js +68 -0
  235. package/ts_build/src/services/stateful/channels/delta.js.map +1 -0
  236. package/ts_build/src/services/stateful/channels/inputStream.d.ts +67 -0
  237. package/ts_build/src/services/stateful/channels/inputStream.js +354 -0
  238. package/ts_build/src/services/stateful/channels/inputStream.js.map +1 -0
  239. package/ts_build/src/services/stateful/index.d.ts +12 -0
  240. package/ts_build/src/services/stateful/index.js +29 -0
  241. package/ts_build/src/services/stateful/index.js.map +1 -0
  242. package/ts_build/src/services/stateful/types.d.ts +93 -0
  243. package/ts_build/src/services/stateful/types.js +20 -0
  244. package/ts_build/src/services/stateful/types.js.map +1 -0
  245. package/ts_build/src/services/watchers/index.d.ts +1 -2
  246. package/ts_build/src/services/watchers/index.js +4 -16
  247. package/ts_build/src/services/watchers/index.js.map +1 -1
  248. package/ts_build/src/tunnel.d.ts +4 -0
  249. package/ts_build/src/tunnel.js +42 -1
  250. package/ts_build/src/tunnel.js.map +1 -1
  251. package/ts_build/src/types.d.ts +9 -1
  252. package/ts_build/src/utils/commandAction.d.ts +7 -0
  253. package/ts_build/src/utils/commandAction.js +48 -0
  254. package/ts_build/src/utils/commandAction.js.map +1 -0
  255. package/ts_build/src/utils/fallback.d.ts +38 -0
  256. package/ts_build/src/utils/fallback.js +91 -0
  257. package/ts_build/src/utils/fallback.js.map +1 -0
  258. package/ts_build/src/utils/knowhowCommand.d.ts +6 -0
  259. package/ts_build/src/utils/knowhowCommand.js +54 -0
  260. package/ts_build/src/utils/knowhowCommand.js.map +1 -0
  261. package/ts_build/src/worker.js +8 -4
  262. package/ts_build/src/worker.js.map +1 -1
  263. package/ts_build/src/workerRegistry.js +4 -1
  264. package/ts_build/src/workerRegistry.js.map +1 -1
  265. package/ts_build/src/services/AgentSyncFs.d.ts +0 -50
  266. package/ts_build/src/services/AgentSyncFs.js +0 -557
  267. package/ts_build/src/services/AgentSyncFs.js.map +0 -1
  268. package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +0 -36
  269. package/ts_build/src/services/AgentSyncKnowhowWeb.js +0 -245
  270. package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +0 -1
  271. package/ts_build/src/services/SyncerService.d.ts +0 -32
  272. package/ts_build/src/services/SyncerService.js +0 -100
  273. package/ts_build/src/services/SyncerService.js.map +0 -1
  274. package/ts_build/src/services/modules/computerUse.d.ts +0 -165
  275. package/ts_build/src/services/modules/computerUse.js.map +0 -1
  276. package/ts_build/src/services/watchers/FsSyncer.d.ts +0 -32
  277. package/ts_build/src/services/watchers/FsSyncer.js +0 -174
  278. package/ts_build/src/services/watchers/FsSyncer.js.map +0 -1
  279. package/ts_build/src/services/watchers/RemoteSyncer.d.ts +0 -33
  280. package/ts_build/src/services/watchers/RemoteSyncer.js +0 -164
  281. package/ts_build/src/services/watchers/RemoteSyncer.js.map +0 -1
@@ -0,0 +1,561 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseWorkerUserAgent = parseWorkerUserAgent;
4
+ exports.inferWorkerOs = inferWorkerOs;
5
+ exports.toRemoteWorkers = toRemoteWorkers;
6
+ exports.listRemoteWorkers = listRemoteWorkers;
7
+ exports.summarizeWorker = summarizeWorker;
8
+ exports.resolveWorker = resolveWorker;
9
+ exports.unwrapToolResponse = unwrapToolResponse;
10
+ exports._clearToolNameCache = _clearToolNameCache;
11
+ exports.callWorkerTool = callWorkerTool;
12
+ exports.execOnWorker = execOnWorker;
13
+ exports.probeWorkerOs = probeWorkerOs;
14
+ exports.startRemoteAgentTask = startRemoteAgentTask;
15
+ exports.getRemoteTaskStatus = getRemoteTaskStatus;
16
+ exports.waitForRemoteTaskRunning = waitForRemoteTaskRunning;
17
+ exports.extractRemoteFinalAnswer = extractRemoteFinalAnswer;
18
+ exports.waitForRemoteTask = waitForRemoteTask;
19
+ exports.sendRemoteTaskMessage = sendRemoteTaskMessage;
20
+ exports.killRemoteTask = killRemoteTask;
21
+ exports.isRemoteTaskId = isRemoteTaskId;
22
+ exports.stripRemotePrefix = stripRemotePrefix;
23
+ exports.relativeTime = relativeTime;
24
+ exports.formatWorkerTable = formatWorkerTable;
25
+ const KnowhowClient_1 = require("./KnowhowClient");
26
+ const waitForAgentCompleted_1 = require("../agents/tools/waitForAgentCompleted");
27
+ function parseWorkerUserAgent(ua) {
28
+ let raw = ua || "";
29
+ let platform;
30
+ let arch;
31
+ const m = raw.match(/\s*\(([^;()]+)(?:;\s*([^;()]+))?\)\s*$/);
32
+ if (m) {
33
+ platform = m[1].trim();
34
+ arch = m[2]?.trim();
35
+ raw = raw.slice(0, m.index);
36
+ }
37
+ const extra = { ...(platform && { platform }), ...(arch && { arch }) };
38
+ const parts = raw.split("/");
39
+ if (parts.length >= 3) {
40
+ return {
41
+ client: parts[0],
42
+ version: parts[1],
43
+ hostname: parts.slice(2).join("/"),
44
+ ...extra,
45
+ };
46
+ }
47
+ if (parts.length === 2) {
48
+ return { client: parts[0], hostname: parts[1], ...extra };
49
+ }
50
+ return { client: parts[0] || "", ...extra };
51
+ }
52
+ function inferWorkerOs(fsRoot, platform) {
53
+ if (platform)
54
+ return platform === "win32" ? "windows" : "posix";
55
+ const root = fsRoot || "";
56
+ if (/^[A-Za-z]:[\\/]/.test(root) || root.includes("\\"))
57
+ return "windows";
58
+ if (root.startsWith("/") || root.startsWith("~"))
59
+ return "posix";
60
+ return "unknown";
61
+ }
62
+ function folderOf(fsRoot) {
63
+ const root = (fsRoot || "").replace(/[\\/]+$/, "");
64
+ if (!root || root === "~")
65
+ return "";
66
+ const segs = root.split(/[\\/]/);
67
+ const last = segs[segs.length - 1];
68
+ return /^[A-Za-z]:$/.test(last) ? "" : last;
69
+ }
70
+ function toRemoteWorkers(infos) {
71
+ const mapped = infos.map((w) => {
72
+ const ua = parseWorkerUserAgent(w.userAgent);
73
+ const name = ua.hostname || w.id.slice(0, 8);
74
+ return {
75
+ ...w,
76
+ name,
77
+ os: inferWorkerOs(w.fsRoot, ua.platform),
78
+ platform: ua.platform,
79
+ arch: ua.arch,
80
+ folder: folderOf(w.fsRoot),
81
+ cliVersion: ua.version,
82
+ label: name,
83
+ };
84
+ });
85
+ const counts = new Map();
86
+ for (const w of mapped) {
87
+ const k = w.name.toLowerCase();
88
+ counts.set(k, (counts.get(k) || 0) + 1);
89
+ }
90
+ for (const w of mapped) {
91
+ if ((counts.get(w.name.toLowerCase()) || 0) > 1 && w.folder) {
92
+ w.label = `${w.name}:${w.folder}`;
93
+ }
94
+ }
95
+ return mapped;
96
+ }
97
+ async function listRemoteWorkers(client = new KnowhowClient_1.KnowhowSimpleClient(), opts = {}) {
98
+ const res = await client.listOrgWorkers({
99
+ includeClients: opts.includeClients,
100
+ });
101
+ let infos = (Array.isArray(res?.data) ? res.data : []);
102
+ if (!opts.all)
103
+ infos = infos.filter((w) => w.connected);
104
+ if (!opts.includeClients) {
105
+ infos = infos.filter((w) => !w.ephemeral && !w.clientKind);
106
+ }
107
+ const workers = toRemoteWorkers(infos);
108
+ workers.sort((a, b) => {
109
+ if (a.connected !== b.connected)
110
+ return a.connected ? -1 : 1;
111
+ return (new Date(b.lastConnected || 0).getTime() -
112
+ new Date(a.lastConnected || 0).getTime());
113
+ });
114
+ return workers;
115
+ }
116
+ function summarizeWorker(w) {
117
+ return {
118
+ id: w.id,
119
+ name: w.name,
120
+ os: w.os,
121
+ ...(w.platform && { platform: w.platform }),
122
+ ...(w.arch && { arch: w.arch }),
123
+ root: w.fsRoot,
124
+ connected: !!w.connected,
125
+ status: w.connected ? "online" : "offline",
126
+ shared: !!w.shared,
127
+ owner: w.user?.name || w.user?.email,
128
+ cloudWorkerId: w.cloudWorkerId ?? null,
129
+ lastConnected: w.lastConnected,
130
+ clientKind: w.clientKind,
131
+ };
132
+ }
133
+ async function resolveWorker(ref, client = new KnowhowClient_1.KnowhowSimpleClient(), opts = {}) {
134
+ const all = await listRemoteWorkers(client, {
135
+ all: true,
136
+ includeClients: false,
137
+ });
138
+ const q = (ref || "").trim();
139
+ const lower = q.toLowerCase();
140
+ const describe = (w) => ` ${w.id.slice(0, 8)} ${w.name} ${w.fsRoot}`;
141
+ const stages = [
142
+ (w) => w.id === q,
143
+ (w) => q.length >= 4 && w.id.toLowerCase().startsWith(lower),
144
+ (w) => w.name.toLowerCase() === lower,
145
+ (w) => w.label.toLowerCase() === lower || `${w.name}:${w.folder}`.toLowerCase() === lower,
146
+ (w) => w.name.toLowerCase().includes(lower),
147
+ ];
148
+ let matched;
149
+ if (q) {
150
+ for (const stage of stages) {
151
+ let found = all.filter(stage);
152
+ if (found.length === 0)
153
+ continue;
154
+ if (found.length > 1) {
155
+ const online = found.filter((w) => w.connected);
156
+ if (online.length === 1)
157
+ found = online;
158
+ }
159
+ if (found.length > 1) {
160
+ throw new Error(`Worker reference '${ref}' is ambiguous. Candidates:\n${found
161
+ .map(describe)
162
+ .join("\n")}\nUse the id (or id prefix) to be specific.`);
163
+ }
164
+ matched = found[0];
165
+ break;
166
+ }
167
+ }
168
+ if (!matched) {
169
+ throw new Error(`No worker matches '${ref}'. Run: knowhow workers list --all`);
170
+ }
171
+ if (!matched.connected && !opts.allowOffline) {
172
+ throw new Error(`Worker ${matched.name} (${matched.id.slice(0, 8)}) is offline (last seen ${matched.lastConnected})`);
173
+ }
174
+ return matched;
175
+ }
176
+ function unwrapToolResponse(envelope) {
177
+ let resp = envelope;
178
+ if (envelope && typeof envelope === "object" && "functionResp" in envelope) {
179
+ resp = envelope.functionResp;
180
+ }
181
+ else if (envelope && typeof envelope === "object" && envelope.toolMessages) {
182
+ const msg = envelope.toolMessages?.[0];
183
+ resp = msg?.content ?? envelope;
184
+ }
185
+ if (typeof resp === "string") {
186
+ try {
187
+ resp = JSON.parse(resp);
188
+ }
189
+ catch {
190
+ }
191
+ }
192
+ if (resp && typeof resp === "object" && resp.error === "WORKER_LOCKED") {
193
+ throw new Error("Worker is locked (passkey). Unlock it first (open the web app > Workers > unlock) and retry.");
194
+ }
195
+ return resp;
196
+ }
197
+ function errorText(e) {
198
+ const body = e?.body;
199
+ const parts = [
200
+ e?.message,
201
+ body?.message,
202
+ body?.error,
203
+ typeof body === "string" ? body : undefined,
204
+ ].filter(Boolean);
205
+ return parts.join(" | ");
206
+ }
207
+ const toolNameCache = new Map();
208
+ function _clearToolNameCache() {
209
+ toolNameCache.clear();
210
+ }
211
+ function looksLikeToolNotFound(e) {
212
+ const t = errorText(e).toLowerCase();
213
+ return (/not found|not enabled|unknown tool|no such tool|not allowed|not exposed/.test(t) && /tool|function/.test(t));
214
+ }
215
+ async function callWorkerTool(client, workerId, toolName, args) {
216
+ const cached = toolNameCache.get(workerId)?.get(toolName);
217
+ const first = cached || `worker_0_${toolName}`;
218
+ try {
219
+ const res = await client.callWorkerToolRaw(workerId, first, args);
220
+ return unwrapToolResponse(res?.data);
221
+ }
222
+ catch (e) {
223
+ if (!looksLikeToolNotFound(e)) {
224
+ const msg = errorText(e);
225
+ throw new Error(`Worker tool call '${toolName}' failed: ${msg}`);
226
+ }
227
+ }
228
+ let defs = [];
229
+ try {
230
+ const res = await client.listWorkerTools(workerId);
231
+ defs = (Array.isArray(res?.data) ? res.data : []);
232
+ }
233
+ catch {
234
+ }
235
+ const found = defs.find((d) => d.function?.name === toolName ||
236
+ d.function?.name?.endsWith(`_${toolName}`));
237
+ if (!found) {
238
+ throw new Error(`Tool '${toolName}' is not exposed by this worker. Add it to worker.allowedTools in the worker's knowhow.json and restart/reload (tool: reloadConfig).`);
239
+ }
240
+ if (!toolNameCache.has(workerId))
241
+ toolNameCache.set(workerId, new Map());
242
+ toolNameCache.get(workerId).set(toolName, found.function.name);
243
+ try {
244
+ const res = await client.callWorkerToolRaw(workerId, found.function.name, args);
245
+ return unwrapToolResponse(res?.data);
246
+ }
247
+ catch (e) {
248
+ throw new Error(`Worker tool call '${toolName}' failed: ${errorText(e)}`);
249
+ }
250
+ }
251
+ async function execOnWorker(client, worker, command, timeoutMs = 25000, extra = {}) {
252
+ const id = typeof worker === "string" ? worker : worker.id;
253
+ const raw = await callWorkerTool(client, id, "execCommand", {
254
+ command,
255
+ timeout: timeoutMs,
256
+ ...extra,
257
+ });
258
+ if (typeof raw === "string")
259
+ return { stdout: raw, raw };
260
+ if (raw && typeof raw === "object") {
261
+ if (raw.error && !("stdout" in raw)) {
262
+ throw new Error(typeof raw.error === "string" ? raw.error : JSON.stringify(raw.error));
263
+ }
264
+ return {
265
+ stdout: typeof raw.stdout === "string"
266
+ ? raw.stdout
267
+ : typeof raw.output === "string"
268
+ ? raw.output
269
+ : JSON.stringify(raw),
270
+ stderr: typeof raw.stderr === "string" ? raw.stderr : undefined,
271
+ exitCode: typeof raw.exitCode === "number" ? raw.exitCode : undefined,
272
+ raw,
273
+ };
274
+ }
275
+ return { stdout: String(raw ?? ""), raw };
276
+ }
277
+ async function probeWorkerOs(client, worker) {
278
+ try {
279
+ const r = await execOnWorker(client, worker, `node -e "console.log(process.platform+' '+process.arch)"`, 8000);
280
+ const m = r.stdout.trim().split(/\s+/);
281
+ if (!m[0])
282
+ return null;
283
+ return { platform: m[0], arch: m[1], hostname: worker.name };
284
+ }
285
+ catch {
286
+ return null;
287
+ }
288
+ }
289
+ const num = (v) => (typeof v === "number" && !isNaN(v) ? v : undefined);
290
+ async function startRemoteAgentTask(params, client = new KnowhowClient_1.KnowhowSimpleClient()) {
291
+ const w = typeof params.worker === "string"
292
+ ? await resolveWorker(params.worker, client)
293
+ : params.worker;
294
+ let taskId;
295
+ let sessionId;
296
+ let messageId;
297
+ const resumed = !!params.resumeTaskId;
298
+ if (params.resumeTaskId) {
299
+ taskId = stripRemotePrefix(params.resumeTaskId);
300
+ }
301
+ else {
302
+ const session = await client.createSessionPlaceholder({
303
+ title: (params.title ?? params.prompt).slice(0, 80),
304
+ workerId: w.id,
305
+ metadata: { source: "cli-remote-worker" },
306
+ });
307
+ sessionId = session.sessionId;
308
+ const msg = await client.createMessagePlaceholder(sessionId, {
309
+ content: params.prompt,
310
+ agentName: params.agentName,
311
+ modelName: params.model,
312
+ metadata: { source: "cli-remote-worker", worker: w.id },
313
+ });
314
+ messageId = msg.messageId;
315
+ taskId = msg.taskId;
316
+ if (!taskId) {
317
+ throw new Error("Backend did not return a taskId for the remote message placeholder");
318
+ }
319
+ }
320
+ const startArgs = {
321
+ prompt: params.prompt,
322
+ taskId,
323
+ syncRemote: true,
324
+ syncFs: true,
325
+ agentName: params.agentName,
326
+ provider: params.provider,
327
+ model: params.model,
328
+ maxTimeLimit: num(params.maxTimeLimit),
329
+ maxSpendLimit: num(params.maxSpendLimit),
330
+ ...(resumed ? { resume: true } : {}),
331
+ };
332
+ for (const k of Object.keys(startArgs)) {
333
+ if (startArgs[k] === undefined)
334
+ delete startArgs[k];
335
+ }
336
+ const startResult = await callWorkerTool(client, w.id, "startAgentTask", startArgs);
337
+ if (startResult &&
338
+ typeof startResult === "object" &&
339
+ (startResult.success === false || (startResult.error && !startResult.success))) {
340
+ const logHint = startResult.logPath
341
+ ? ` (worker log: ${startResult.logPath} on the worker; read it with: knowhow workers exec ${w.name} -- cat ${startResult.logPath})`
342
+ : "";
343
+ throw new Error(`Worker ${w.name} failed to start the agent: ${startResult.error || "unknown error"}${logHint}`);
344
+ }
345
+ if (typeof startResult === "string" && /error/i.test(startResult.slice(0, 40))) {
346
+ throw new Error(`Worker ${w.name} failed to start the agent: ${startResult}`);
347
+ }
348
+ return {
349
+ success: true,
350
+ taskId: taskId,
351
+ workerId: w.id,
352
+ workerName: w.name,
353
+ sessionId,
354
+ messageId,
355
+ resumed,
356
+ startResult,
357
+ };
358
+ }
359
+ async function getRemoteTaskStatus(taskId, client = new KnowhowClient_1.KnowhowSimpleClient()) {
360
+ const res = await client.getTaskDetails(stripRemotePrefix(taskId), false);
361
+ return res.data;
362
+ }
363
+ async function waitForRemoteTaskRunning(taskId, opts = {}) {
364
+ const client = opts.client ?? new KnowhowClient_1.KnowhowSimpleClient();
365
+ const deadline = Date.now() + (opts.timeoutMs ?? 45_000);
366
+ const interval = Math.max(500, opts.pollIntervalMs ?? 1500);
367
+ while (Date.now() < deadline) {
368
+ try {
369
+ const d = (await client.getTaskDetails(stripRemotePrefix(taskId), false))
370
+ .data;
371
+ if (d.inProgress === true || d.status === "running")
372
+ return true;
373
+ }
374
+ catch {
375
+ }
376
+ await new Promise((r) => setTimeout(r, interval));
377
+ }
378
+ return false;
379
+ }
380
+ function extractRemoteFinalAnswer(threads) {
381
+ const messages = Array.isArray(threads)
382
+ ? threads.length && Array.isArray(threads[0])
383
+ ? threads.flat()
384
+ : threads
385
+ : [];
386
+ for (let i = messages.length - 1; i >= 0; i--) {
387
+ const m = messages[i];
388
+ if (m?.role === "tool" && m?.name === "finalAnswer") {
389
+ const c = typeof m.content === "string" ? m.content : JSON.stringify(m.content);
390
+ if (c && c.trim())
391
+ return c.trim();
392
+ }
393
+ if (m?.role === "assistant" && Array.isArray(m.tool_calls)) {
394
+ for (const tc of m.tool_calls) {
395
+ if (tc?.function?.name === "finalAnswer") {
396
+ try {
397
+ const a = JSON.parse(tc.function.arguments || "{}");
398
+ if (typeof a.answer === "string" && a.answer.trim()) {
399
+ return a.answer.trim();
400
+ }
401
+ }
402
+ catch {
403
+ }
404
+ }
405
+ }
406
+ }
407
+ }
408
+ return (0, waitForAgentCompleted_1.lastAssistantText)(messages);
409
+ }
410
+ const TERMINAL = new Set(["completed", "killed", "failed", "error", "done"]);
411
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
412
+ async function waitForRemoteTask(taskId, opts = {}) {
413
+ const client = opts.client ?? new KnowhowClient_1.KnowhowSimpleClient();
414
+ const id = stripRemotePrefix(taskId);
415
+ const timeoutMs = opts.timeoutMs ?? 30 * 60 * 1000;
416
+ const interval = Math.max(1000, opts.pollIntervalMs ?? 3000);
417
+ const startupTimeoutMs = opts.startupTimeoutMs ?? 90_000;
418
+ const started = Date.now();
419
+ let cost = 0;
420
+ let startupChecked = false;
421
+ const finish = async (status, extra = {}) => {
422
+ let finalAnswer;
423
+ try {
424
+ const full = (await client.getTaskDetails(id, true)).data;
425
+ cost = full.totalUsdCost ?? cost;
426
+ finalAnswer = full.result ?? extractRemoteFinalAnswer(full.threads);
427
+ }
428
+ catch {
429
+ }
430
+ return {
431
+ taskId: id,
432
+ status,
433
+ costUsd: cost,
434
+ finalAnswer,
435
+ elapsedMs: Date.now() - started,
436
+ ...extra,
437
+ };
438
+ };
439
+ while (true) {
440
+ let d;
441
+ try {
442
+ d = (await client.getTaskDetails(id, false)).data;
443
+ }
444
+ catch (e) {
445
+ if (e?.status === 404) {
446
+ return {
447
+ taskId: id,
448
+ status: "failed",
449
+ costUsd: cost,
450
+ elapsedMs: Date.now() - started,
451
+ error: `Remote task ${id} not found`,
452
+ };
453
+ }
454
+ d = undefined;
455
+ }
456
+ if (d) {
457
+ cost = d.totalUsdCost ?? cost;
458
+ opts.onPoll?.(d);
459
+ const status = d.status;
460
+ if ((status && TERMINAL.has(status)) || d.inProgress === false) {
461
+ return finish(status && TERMINAL.has(status) ? status : "completed");
462
+ }
463
+ }
464
+ const elapsed = Date.now() - started;
465
+ if (!startupChecked && elapsed >= startupTimeoutMs) {
466
+ startupChecked = true;
467
+ try {
468
+ const full = (await client.getTaskDetails(id, true)).data;
469
+ const hasThreads = Array.isArray(full.threads) &&
470
+ full.threads.some((t) => Array.isArray(t) && t.length > 0);
471
+ if (!hasThreads) {
472
+ return {
473
+ taskId: id,
474
+ status: "failed",
475
+ costUsd: full.totalUsdCost ?? cost,
476
+ elapsedMs: elapsed,
477
+ error: "Remote agent never reported progress (check worker log: knowhow workers exec <worker> -- <cat|type> .knowhow/processes/agents/" +
478
+ id +
479
+ ")",
480
+ };
481
+ }
482
+ }
483
+ catch {
484
+ }
485
+ }
486
+ if (elapsed >= timeoutMs) {
487
+ const r = await finish(d?.status ?? "running", {
488
+ timedOut: true,
489
+ });
490
+ return r;
491
+ }
492
+ await sleep(Math.min(interval, Math.max(0, timeoutMs - elapsed)));
493
+ }
494
+ }
495
+ async function sendRemoteTaskMessage(taskId, message, role = "user", client = new KnowhowClient_1.KnowhowSimpleClient()) {
496
+ return client.sendMessageToAgent(stripRemotePrefix(taskId), message, role);
497
+ }
498
+ async function killRemoteTask(taskId, client = new KnowhowClient_1.KnowhowSimpleClient()) {
499
+ return client.killAgent(stripRemotePrefix(taskId));
500
+ }
501
+ const UUID_RE = /^(remote:)?[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
502
+ function isRemoteTaskId(id) {
503
+ return UUID_RE.test(id || "");
504
+ }
505
+ function stripRemotePrefix(id) {
506
+ return (id || "").replace(/^remote:/i, "");
507
+ }
508
+ function relativeTime(ts, now = Date.now()) {
509
+ if (!ts)
510
+ return "-";
511
+ const t = new Date(ts).getTime();
512
+ if (isNaN(t))
513
+ return "-";
514
+ const s = Math.max(0, Math.round((now - t) / 1000));
515
+ if (s < 60)
516
+ return `${s}s ago`;
517
+ if (s < 3600)
518
+ return `${Math.floor(s / 60)}m ago`;
519
+ if (s < 86400)
520
+ return `${Math.floor(s / 3600)}h ago`;
521
+ return `${Math.floor(s / 86400)}d ago`;
522
+ }
523
+ function formatWorkerTable(workers, probes = {}) {
524
+ const osLabel = (w) => {
525
+ const p = probes[w.id];
526
+ if (p)
527
+ return p.arch ? `${p.platform}/${p.arch}` : p.platform;
528
+ if (w.platform)
529
+ return w.arch ? `${w.platform}/${w.arch}` : w.platform;
530
+ return w.os === "windows" ? "win" : w.os === "posix" ? "posix" : "?";
531
+ };
532
+ const trunc = (s, n) => s.length > n ? s.slice(0, n - 1) + "…" : s;
533
+ const rows = workers.map((w) => [
534
+ w.id.slice(0, 8),
535
+ trunc(w.name, 28),
536
+ osLabel(w),
537
+ w.connected ? "online" : "offline",
538
+ trunc(w.fsRoot || "", 40),
539
+ trunc(w.user?.name || w.user?.email || "", 24),
540
+ w.shared ? "yes" : "-",
541
+ w.cloudWorkerId ? "cloud" : "-",
542
+ relativeTime(w.lastConnected),
543
+ ]);
544
+ const header = [
545
+ "ID",
546
+ "NAME",
547
+ "OS",
548
+ "STATUS",
549
+ "ROOT",
550
+ "OWNER",
551
+ "SHARED",
552
+ "CLOUD",
553
+ "SEEN",
554
+ ];
555
+ const all = [header, ...rows];
556
+ const widths = header.map((_, i) => Math.max(...all.map((r) => r[i].length)));
557
+ return all
558
+ .map((r) => r.map((c, i) => c.padEnd(widths[i])).join(" ").trimEnd())
559
+ .join("\n");
560
+ }
561
+ //# sourceMappingURL=RemoteWorkers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteWorkers.js","sourceRoot":"","sources":["../../../src/services/RemoteWorkers.ts"],"names":[],"mappings":";;AAmCA,oDA+BC;AAED,sCAMC;AAUD,0CA0BC;AAED,8CAqBC;AAED,0CAgBC;AAED,sCAsDC;AAED,gDAqBC;AAgBD,kDAEC;AAWD,wCAgDC;AAGD,oCAsCC;AAED,sCAiBC;AAiCD,oDAwFC;AAED,kDAMC;AAQD,4DAsBC;AAiBD,4DA6BC;AAKD,8CAgGC;AAED,sDAOC;AAED,wCAKC;AAKD,wCAEC;AAED,8CAEC;AAMD,oCASC;AAED,8CAuCC;AApvBD,mDAAqE;AACrE,iFAA0E;AAkC1E,SAAgB,oBAAoB,CAAC,EAAU;IAO7C,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IACnB,IAAI,QAA4B,CAAC;IACjC,IAAI,IAAwB,CAAC;IAE7B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC;QACN,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACpB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,aAAa,CAAC,MAAc,EAAE,QAAiB;IAC7D,IAAI,QAAQ;QAAE,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;IAC1B,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAgB,eAAe,CAAC,KAAsB;IACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO;YACL,GAAG,CAAC;YACJ,IAAI;YACJ,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC;YACxC,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1B,UAAU,EAAE,EAAE,CAAC,OAAO;YACtB,KAAK,EAAE,IAAI;SACI,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5D,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,SAA8B,IAAI,mCAAmB,EAAE,EACvD,OAAoD,EAAE;IAEtD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;QACtC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC;IACH,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAoB,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,CACL,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YACxC,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,eAAe,CAAC,CAAe;IAC7C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,CAAC,MAAM;QACd,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACxB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK;QACpC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;QACtC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,SAA8B,IAAI,mCAAmB,EAAE,EACvD,OAAmC,EAAE;IAErC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC1C,GAAG,EAAE,IAAI;QACT,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAe,EAAE,EAAE,CACnC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IAElD,MAAM,MAAM,GAAwC;QAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK;QACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK;QACzF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC5C,CAAC;IAEF,IAAI,OAAiC,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAErB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,KAAK,GAAG,MAAM,CAAC;YAC1C,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,qBAAqB,GAAG,gCAAgC,KAAK;qBAC1D,GAAG,CAAC,QAAQ,CAAC;qBACb,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAC3D,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,oCAAoC,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,2BAA2B,OAAO,CAAC,aAAa,GAAG,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAa;IAC9C,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC3E,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC;SAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE,OAAO,IAAI,QAAQ,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,CAAM;IACvB,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC;IACrB,MAAM,KAAK,GAAG;QACZ,CAAC,EAAE,OAAO;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,KAAK;QACX,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAC5C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;AAG7D,SAAgB,mBAAmB;IACjC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAM;IACnC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,CACL,yEAAyE,CAAC,IAAI,CAC5E,CAAC,CACF,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,MAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,IAAS;IAET,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,YAAY,QAAQ,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,aAAa,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAGD,IAAI,IAAI,GAA0C,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAQ,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,sIAAsI,CACxJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACzE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CACxC,QAAQ,EACR,KAAK,CAAC,QAAQ,CAAC,IAAI,EACnB,IAAI,CACL,CAAC;QACF,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAGM,KAAK,UAAU,YAAY,CAChC,MAA2B,EAC3B,MAA6B,EAC7B,OAAe,EACf,SAAS,GAAG,KAAK,EACjB,QAAkE,EAAE;IAOpE,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;QAC1D,OAAO;QACP,OAAO,EAAE,SAAS;QAClB,GAAG,KAAK;KACT,CAAC,CAAC;IACH,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACzD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CACtE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EACJ,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC,GAAG,CAAC,MAAM;gBACZ,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;oBAChC,CAAC,CAAC,GAAG,CAAC,MAAM;oBACZ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACzB,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC/D,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACrE,GAAG;SACJ,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,YAAY,CAC1B,MAAM,EACN,MAAM,EACN,0DAA0D,EAC1D,IAAI,CACL,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AA+BD,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEtE,KAAK,UAAU,oBAAoB,CACxC,MAA6B,EAC7B,SAA8B,IAAI,mCAAmB,EAAE;IAEvD,MAAM,CAAC,GACL,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAEpB,IAAI,MAA0B,CAAC;IAC/B,IAAI,SAA6B,CAAC;IAClC,IAAI,SAA6B,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAEtC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC;YACpD,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACnD,QAAQ,EAAE,CAAC,CAAC,EAAE;YACd,QAAQ,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;SACnC,CAAC,CAAC;QACV,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE;YAC3D,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,KAAK;YACvB,QAAQ,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;SACjD,CAAC,CAAC;QACV,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAQ;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QACtC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CACtC,MAAM,EACN,CAAC,CAAC,EAAE,EACJ,gBAAgB,EAChB,SAAS,CACV,CAAC;IACF,IACE,WAAW;QACX,OAAO,WAAW,KAAK,QAAQ;QAC/B,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAC9E,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO;YACjC,CAAC,CAAC,iBAAiB,WAAW,CAAC,OAAO,sDAAsD,CAAC,CAAC,IAAI,WAAW,WAAW,CAAC,OAAO,GAAG;YACnI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,UAAU,CAAC,CAAC,IAAI,+BACd,WAAW,CAAC,KAAK,IAAI,eACvB,GAAG,OAAO,EAAE,CACb,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,+BAA+B,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAO;QACf,QAAQ,EAAE,CAAC,CAAC,EAAE;QACd,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,SAAS;QACT,SAAS;QACT,OAAO;QACP,WAAW;KACZ,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,SAA8B,IAAI,mCAAmB,EAAE;IAEvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAQM,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,OAII,EAAE;IAEN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,mCAAmB,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;iBACtE,IAAI,CAAC;YACR,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAiBD,SAAgB,wBAAwB,CAAC,OAAY;IACnD,MAAM,QAAQ,GAAU,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;YAChB,CAAC,CAAC,OAAO;QACX,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;YACpD,MAAM,CAAC,GACL,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;wBACpD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;4BACpD,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACzB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAA,yCAAiB,EAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7E,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE7D,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,OAMI,EAAE;IAEN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,mCAAmB,EAAE,CAAC;IACxD,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,QAAmC,EAAE,EAAE,EAAE;QAC7E,IAAI,WAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;YACjC,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,OAAO;YACL,MAAM,EAAE,EAAE;YACV,MAAM;YACN,OAAO,EAAE,IAAI;YACb,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YAC/B,GAAG,KAAK;SACW,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAM,CAAC;QACX,IAAI,CAAC;YACH,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAEhB,IAAI,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACtB,OAAO;oBACL,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;oBAC/B,KAAK,EAAE,eAAe,EAAE,YAAY;iBACrC,CAAC;YACJ,CAAC;YACD,CAAC,GAAG,SAAS,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAW,CAAC,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,cAAc,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACnD,cAAc,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,MAAM,UAAU,GACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;wBACL,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;wBAClC,SAAS,EAAE,OAAO;wBAClB,KAAK,EACH,gIAAgI;4BAChI,EAAE;4BACF,GAAG;qBACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,EAAE;gBAC7C,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,OAAe,EACf,OAA0B,MAAM,EAChC,SAA8B,IAAI,mCAAmB,EAAE;IAEvD,OAAO,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,SAA8B,IAAI,mCAAmB,EAAE;IAEvD,OAAO,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,OAAO,GACX,sFAAsF,CAAC;AAEzF,SAAgB,cAAc,CAAC,EAAU;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAAU;IAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAMD,SAAgB,YAAY,CAAC,EAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACxD,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAClD,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AACzC,CAAC;AAED,SAAgB,iBAAiB,CAC/B,OAAuB,EACvB,SAAqE,EAAE;IAEvE,MAAM,OAAO,GAAG,CAAC,CAAe,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACrC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC;QACV,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAClC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;QACtB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC/B,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;KACP,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,GAAG;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;SACrE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -20,10 +20,11 @@ export interface ToolContext {
20
20
  Plugins?: PluginService;
21
21
  Mcp?: McpService;
22
22
  Behaviors?: BehaviorsService;
23
- ComputerUse?: import("./modules/computerUse").ComputerUseService;
23
+ Extensions?: import("./ExtensionsService").ExtensionsService;
24
24
  metadata?: {
25
25
  [key: string]: any;
26
26
  };
27
+ [key: string]: any;
27
28
  }
28
29
  export declare class ToolsService {
29
30
  private context;