charness 3.7.0 → 3.9.0

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 (393) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/DEVELOPMENT.md +8 -2
  3. package/README.md +5 -5
  4. package/SETUP.md +17 -5
  5. package/agent-plugin/skills/charness-manager/SKILL.md +3 -3
  6. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  7. package/dist/adapters/openCodeAdapter.js +2 -1
  8. package/dist/adapters/openCodeAdapter.js.map +1 -1
  9. package/dist/bot.d.ts.map +1 -1
  10. package/dist/bot.js +50 -9
  11. package/dist/bot.js.map +1 -1
  12. package/dist/cli.d.ts +2 -0
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +56 -6
  15. package/dist/cli.js.map +1 -1
  16. package/dist/configDirFile.d.ts +7 -3
  17. package/dist/configDirFile.d.ts.map +1 -1
  18. package/dist/configDirFile.js +12 -5
  19. package/dist/configDirFile.js.map +1 -1
  20. package/dist/connectors/telegram/commands/botCore.d.ts +5 -1
  21. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -1
  22. package/dist/connectors/telegram/commands/runners.d.ts +52 -0
  23. package/dist/connectors/telegram/commands/runners.d.ts.map +1 -0
  24. package/dist/connectors/telegram/commands/runners.js +524 -0
  25. package/dist/connectors/telegram/commands/runners.js.map +1 -0
  26. package/dist/connectors/telegram/runnerPairingMessages.d.ts +29 -0
  27. package/dist/connectors/telegram/runnerPairingMessages.d.ts.map +1 -0
  28. package/dist/connectors/telegram/runnerPairingMessages.js +112 -0
  29. package/dist/connectors/telegram/runnerPairingMessages.js.map +1 -0
  30. package/dist/i18n/de.d.ts.map +1 -1
  31. package/dist/i18n/de.js +60 -0
  32. package/dist/i18n/de.js.map +1 -1
  33. package/dist/i18n/en.d.ts.map +1 -1
  34. package/dist/i18n/en.js +60 -0
  35. package/dist/i18n/en.js.map +1 -1
  36. package/dist/i18n/es.d.ts.map +1 -1
  37. package/dist/i18n/es.js +60 -0
  38. package/dist/i18n/es.js.map +1 -1
  39. package/dist/i18n/fr.d.ts.map +1 -1
  40. package/dist/i18n/fr.js +60 -0
  41. package/dist/i18n/fr.js.map +1 -1
  42. package/dist/i18n/hi.d.ts.map +1 -1
  43. package/dist/i18n/hi.js +60 -0
  44. package/dist/i18n/hi.js.map +1 -1
  45. package/dist/i18n/ja.d.ts.map +1 -1
  46. package/dist/i18n/ja.js +60 -0
  47. package/dist/i18n/ja.js.map +1 -1
  48. package/dist/i18n/ka.d.ts.map +1 -1
  49. package/dist/i18n/ka.js +60 -0
  50. package/dist/i18n/ka.js.map +1 -1
  51. package/dist/i18n/pt.d.ts.map +1 -1
  52. package/dist/i18n/pt.js +60 -0
  53. package/dist/i18n/pt.js.map +1 -1
  54. package/dist/i18n/ru.d.ts.map +1 -1
  55. package/dist/i18n/ru.js +60 -0
  56. package/dist/i18n/ru.js.map +1 -1
  57. package/dist/i18n/uk.d.ts.map +1 -1
  58. package/dist/i18n/uk.js +60 -0
  59. package/dist/i18n/uk.js.map +1 -1
  60. package/dist/i18n/uz.d.ts.map +1 -1
  61. package/dist/i18n/uz.js +60 -0
  62. package/dist/i18n/uz.js.map +1 -1
  63. package/dist/i18n/zh.d.ts.map +1 -1
  64. package/dist/i18n/zh.js +60 -0
  65. package/dist/i18n/zh.js.map +1 -1
  66. package/dist/index.d.ts +1 -1
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/installManager.d.ts +57 -1
  71. package/dist/installManager.d.ts.map +1 -1
  72. package/dist/installManager.js +88 -10
  73. package/dist/installManager.js.map +1 -1
  74. package/dist/instanceSettings.d.ts +12 -2
  75. package/dist/instanceSettings.d.ts.map +1 -1
  76. package/dist/instanceSettings.js +17 -3
  77. package/dist/instanceSettings.js.map +1 -1
  78. package/dist/outputTrace.d.ts +6 -0
  79. package/dist/outputTrace.d.ts.map +1 -1
  80. package/dist/outputTrace.js +24 -1
  81. package/dist/outputTrace.js.map +1 -1
  82. package/dist/remoteRun/cliArgs.d.ts +2 -0
  83. package/dist/remoteRun/cliArgs.d.ts.map +1 -1
  84. package/dist/remoteRun/cliArgs.js +11 -2
  85. package/dist/remoteRun/cliArgs.js.map +1 -1
  86. package/dist/remoteRun/commands.d.ts +21 -0
  87. package/dist/remoteRun/commands.d.ts.map +1 -1
  88. package/dist/remoteRun/commands.js +38 -17
  89. package/dist/remoteRun/commands.js.map +1 -1
  90. package/dist/remoteRun/interrupts.d.ts +10 -0
  91. package/dist/remoteRun/interrupts.d.ts.map +1 -1
  92. package/dist/remoteRun/interrupts.js +43 -6
  93. package/dist/remoteRun/interrupts.js.map +1 -1
  94. package/dist/remoteRun/output.d.ts +2 -0
  95. package/dist/remoteRun/output.d.ts.map +1 -1
  96. package/dist/remoteRun/output.js +45 -0
  97. package/dist/remoteRun/output.js.map +1 -1
  98. package/dist/remoteRun/pairedRunners.d.ts +51 -0
  99. package/dist/remoteRun/pairedRunners.d.ts.map +1 -0
  100. package/dist/remoteRun/pairedRunners.js +165 -0
  101. package/dist/remoteRun/pairedRunners.js.map +1 -0
  102. package/dist/remoteRun/probe.d.ts +23 -1
  103. package/dist/remoteRun/probe.d.ts.map +1 -1
  104. package/dist/remoteRun/probe.js +45 -11
  105. package/dist/remoteRun/probe.js.map +1 -1
  106. package/dist/remoteRun/remoteRunCli.d.ts +13 -6
  107. package/dist/remoteRun/remoteRunCli.d.ts.map +1 -1
  108. package/dist/remoteRun/remoteRunCli.js +34 -59
  109. package/dist/remoteRun/remoteRunCli.js.map +1 -1
  110. package/dist/remoteRun/runnerClient.d.ts +2 -0
  111. package/dist/remoteRun/runnerClient.d.ts.map +1 -1
  112. package/dist/remoteRun/runnerClient.js +5 -1
  113. package/dist/remoteRun/runnerClient.js.map +1 -1
  114. package/dist/remoteRun/runnerSummary.d.ts +24 -0
  115. package/dist/remoteRun/runnerSummary.d.ts.map +1 -0
  116. package/dist/remoteRun/runnerSummary.js +86 -0
  117. package/dist/remoteRun/runnerSummary.js.map +1 -0
  118. package/dist/remoteRun/runnerWait.d.ts +68 -0
  119. package/dist/remoteRun/runnerWait.d.ts.map +1 -0
  120. package/dist/remoteRun/runnerWait.js +137 -0
  121. package/dist/remoteRun/runnerWait.js.map +1 -0
  122. package/dist/remoteRun/runnerWaitTiming.d.ts +16 -0
  123. package/dist/remoteRun/runnerWaitTiming.d.ts.map +1 -0
  124. package/dist/remoteRun/runnerWaitTiming.js +37 -0
  125. package/dist/remoteRun/runnerWaitTiming.js.map +1 -0
  126. package/dist/remoteRun/runners.d.ts +15 -8
  127. package/dist/remoteRun/runners.d.ts.map +1 -1
  128. package/dist/remoteRun/runners.js +59 -19
  129. package/dist/remoteRun/runners.js.map +1 -1
  130. package/dist/remoteRun/runnersCatalog.d.ts +14 -0
  131. package/dist/remoteRun/runnersCatalog.d.ts.map +1 -0
  132. package/dist/remoteRun/runnersCatalog.js +68 -0
  133. package/dist/remoteRun/runnersCatalog.js.map +1 -0
  134. package/dist/remoteRun/runnersConfig.d.ts +31 -20
  135. package/dist/remoteRun/runnersConfig.d.ts.map +1 -1
  136. package/dist/remoteRun/runnersConfig.js +14 -12
  137. package/dist/remoteRun/runnersConfig.js.map +1 -1
  138. package/dist/remoteRun/ssh.d.ts +22 -2
  139. package/dist/remoteRun/ssh.d.ts.map +1 -1
  140. package/dist/remoteRun/ssh.js +41 -7
  141. package/dist/remoteRun/ssh.js.map +1 -1
  142. package/dist/runnerUtility/adminCheck.d.ts +18 -0
  143. package/dist/runnerUtility/adminCheck.d.ts.map +1 -0
  144. package/dist/runnerUtility/adminCheck.js +69 -0
  145. package/dist/runnerUtility/adminCheck.js.map +1 -0
  146. package/dist/runnerUtility/adminService.d.ts +22 -0
  147. package/dist/runnerUtility/adminService.d.ts.map +1 -0
  148. package/dist/runnerUtility/adminService.js +145 -0
  149. package/dist/runnerUtility/adminService.js.map +1 -0
  150. package/dist/runnerUtility/appInstall.d.ts +25 -0
  151. package/dist/runnerUtility/appInstall.d.ts.map +1 -0
  152. package/dist/runnerUtility/appInstall.js +147 -0
  153. package/dist/runnerUtility/appInstall.js.map +1 -0
  154. package/dist/runnerUtility/appUpdate.d.ts +39 -0
  155. package/dist/runnerUtility/appUpdate.d.ts.map +1 -0
  156. package/dist/runnerUtility/appUpdate.js +90 -0
  157. package/dist/runnerUtility/appUpdate.js.map +1 -0
  158. package/dist/runnerUtility/execEnv.d.ts +21 -0
  159. package/dist/runnerUtility/execEnv.d.ts.map +1 -0
  160. package/dist/runnerUtility/execEnv.js +109 -0
  161. package/dist/runnerUtility/execEnv.js.map +1 -0
  162. package/dist/runnerUtility/execSession.d.ts +13 -0
  163. package/dist/runnerUtility/execSession.d.ts.map +1 -0
  164. package/dist/runnerUtility/execSession.js +58 -0
  165. package/dist/runnerUtility/execSession.js.map +1 -0
  166. package/dist/runnerUtility/hubClient.d.ts +30 -0
  167. package/dist/runnerUtility/hubClient.d.ts.map +1 -0
  168. package/dist/runnerUtility/hubClient.js +127 -0
  169. package/dist/runnerUtility/hubClient.js.map +1 -0
  170. package/dist/runnerUtility/injectStream.d.ts +9 -0
  171. package/dist/runnerUtility/injectStream.d.ts.map +1 -0
  172. package/dist/runnerUtility/injectStream.js +12 -0
  173. package/dist/runnerUtility/injectStream.js.map +1 -0
  174. package/dist/runnerUtility/iosCheck.d.ts +62 -0
  175. package/dist/runnerUtility/iosCheck.d.ts.map +1 -0
  176. package/dist/runnerUtility/iosCheck.js +200 -0
  177. package/dist/runnerUtility/iosCheck.js.map +1 -0
  178. package/dist/runnerUtility/launcher.d.ts +5 -0
  179. package/dist/runnerUtility/launcher.d.ts.map +1 -0
  180. package/dist/runnerUtility/launcher.js +85 -0
  181. package/dist/runnerUtility/launcher.js.map +1 -0
  182. package/dist/runnerUtility/linkLoop.d.ts +39 -0
  183. package/dist/runnerUtility/linkLoop.d.ts.map +1 -0
  184. package/dist/runnerUtility/linkLoop.js +274 -0
  185. package/dist/runnerUtility/linkLoop.js.map +1 -0
  186. package/dist/runnerUtility/localLinkStop.d.ts +23 -0
  187. package/dist/runnerUtility/localLinkStop.d.ts.map +1 -0
  188. package/dist/runnerUtility/localLinkStop.js +79 -0
  189. package/dist/runnerUtility/localLinkStop.js.map +1 -0
  190. package/dist/runnerUtility/machineReport.d.ts +39 -0
  191. package/dist/runnerUtility/machineReport.d.ts.map +1 -0
  192. package/dist/runnerUtility/machineReport.js +161 -0
  193. package/dist/runnerUtility/machineReport.js.map +1 -0
  194. package/dist/runnerUtility/packageId.d.ts +5 -0
  195. package/dist/runnerUtility/packageId.d.ts.map +1 -0
  196. package/dist/runnerUtility/packageId.js +64 -0
  197. package/dist/runnerUtility/packageId.js.map +1 -0
  198. package/dist/runnerUtility/pairArgs.d.ts +16 -0
  199. package/dist/runnerUtility/pairArgs.d.ts.map +1 -0
  200. package/dist/runnerUtility/pairArgs.js +17 -0
  201. package/dist/runnerUtility/pairArgs.js.map +1 -0
  202. package/dist/runnerUtility/pairingRecovery.d.ts +31 -0
  203. package/dist/runnerUtility/pairingRecovery.d.ts.map +1 -0
  204. package/dist/runnerUtility/pairingRecovery.js +24 -0
  205. package/dist/runnerUtility/pairingRecovery.js.map +1 -0
  206. package/dist/runnerUtility/pueueDaemon.d.ts +36 -0
  207. package/dist/runnerUtility/pueueDaemon.d.ts.map +1 -0
  208. package/dist/runnerUtility/pueueDaemon.js +165 -0
  209. package/dist/runnerUtility/pueueDaemon.js.map +1 -0
  210. package/dist/runnerUtility/rootServiceCli.d.ts +8 -0
  211. package/dist/runnerUtility/rootServiceCli.d.ts.map +1 -0
  212. package/dist/runnerUtility/rootServiceCli.js +31 -0
  213. package/dist/runnerUtility/rootServiceCli.js.map +1 -0
  214. package/dist/runnerUtility/runnerCli.d.ts +18 -0
  215. package/dist/runnerUtility/runnerCli.d.ts.map +1 -0
  216. package/dist/runnerUtility/runnerCli.js +190 -0
  217. package/dist/runnerUtility/runnerCli.js.map +1 -0
  218. package/dist/runnerUtility/runnerCommands.d.ts +76 -0
  219. package/dist/runnerUtility/runnerCommands.d.ts.map +1 -0
  220. package/dist/runnerUtility/runnerCommands.js +464 -0
  221. package/dist/runnerUtility/runnerCommands.js.map +1 -0
  222. package/dist/runnerUtility/runnerConfig.d.ts +63 -0
  223. package/dist/runnerUtility/runnerConfig.d.ts.map +1 -0
  224. package/dist/runnerUtility/runnerConfig.js +153 -0
  225. package/dist/runnerUtility/runnerConfig.js.map +1 -0
  226. package/dist/runnerUtility/runnerFlags.d.ts +9 -0
  227. package/dist/runnerUtility/runnerFlags.d.ts.map +1 -0
  228. package/dist/runnerUtility/runnerFlags.js +53 -0
  229. package/dist/runnerUtility/runnerFlags.js.map +1 -0
  230. package/dist/runnerUtility/runnerHome.d.ts +30 -0
  231. package/dist/runnerUtility/runnerHome.d.ts.map +1 -0
  232. package/dist/runnerUtility/runnerHome.js +82 -0
  233. package/dist/runnerUtility/runnerHome.js.map +1 -0
  234. package/dist/runnerUtility/runnerKeys.d.ts +11 -0
  235. package/dist/runnerUtility/runnerKeys.d.ts.map +1 -0
  236. package/dist/runnerUtility/runnerKeys.js +80 -0
  237. package/dist/runnerUtility/runnerKeys.js.map +1 -0
  238. package/dist/runnerUtility/runnerServers.d.ts +40 -0
  239. package/dist/runnerUtility/runnerServers.d.ts.map +1 -0
  240. package/dist/runnerUtility/runnerServers.js +79 -0
  241. package/dist/runnerUtility/runnerServers.js.map +1 -0
  242. package/dist/runnerUtility/serviceCommon.d.ts +97 -0
  243. package/dist/runnerUtility/serviceCommon.d.ts.map +1 -0
  244. package/dist/runnerUtility/serviceCommon.js +209 -0
  245. package/dist/runnerUtility/serviceCommon.js.map +1 -0
  246. package/dist/runnerUtility/serviceManager.d.ts +51 -0
  247. package/dist/runnerUtility/serviceManager.d.ts.map +1 -0
  248. package/dist/runnerUtility/serviceManager.js +344 -0
  249. package/dist/runnerUtility/serviceManager.js.map +1 -0
  250. package/dist/runnerUtility/serviceUnits.d.ts +38 -0
  251. package/dist/runnerUtility/serviceUnits.d.ts.map +1 -0
  252. package/dist/runnerUtility/serviceUnits.js +189 -0
  253. package/dist/runnerUtility/serviceUnits.js.map +1 -0
  254. package/dist/runnerUtility/toolInstall.d.ts +95 -0
  255. package/dist/runnerUtility/toolInstall.d.ts.map +1 -0
  256. package/dist/runnerUtility/toolInstall.js +232 -0
  257. package/dist/runnerUtility/toolInstall.js.map +1 -0
  258. package/dist/runnerUtility/versionPollTiming.d.ts +16 -0
  259. package/dist/runnerUtility/versionPollTiming.d.ts.map +1 -0
  260. package/dist/runnerUtility/versionPollTiming.js +36 -0
  261. package/dist/runnerUtility/versionPollTiming.js.map +1 -0
  262. package/dist/runners/authorizedKeys.d.ts +52 -0
  263. package/dist/runners/authorizedKeys.d.ts.map +1 -0
  264. package/dist/runners/authorizedKeys.js +153 -0
  265. package/dist/runners/authorizedKeys.js.map +1 -0
  266. package/dist/runners/bootstrapLine.d.ts +13 -0
  267. package/dist/runners/bootstrapLine.d.ts.map +1 -0
  268. package/dist/runners/bootstrapLine.js +154 -0
  269. package/dist/runners/bootstrapLine.js.map +1 -0
  270. package/dist/runners/gate.d.ts +41 -0
  271. package/dist/runners/gate.d.ts.map +1 -0
  272. package/dist/runners/gate.js +225 -0
  273. package/dist/runners/gate.js.map +1 -0
  274. package/dist/runners/gateLink.d.ts +26 -0
  275. package/dist/runners/gateLink.d.ts.map +1 -0
  276. package/dist/runners/gateLink.js +240 -0
  277. package/dist/runners/gateLink.js.map +1 -0
  278. package/dist/runners/gateProtocol.d.ts +104 -0
  279. package/dist/runners/gateProtocol.d.ts.map +1 -0
  280. package/dist/runners/gateProtocol.js +151 -0
  281. package/dist/runners/gateProtocol.js.map +1 -0
  282. package/dist/runners/gateWrapper.d.ts +6 -0
  283. package/dist/runners/gateWrapper.d.ts.map +1 -0
  284. package/dist/runners/gateWrapper.js +70 -0
  285. package/dist/runners/gateWrapper.js.map +1 -0
  286. package/dist/runners/hubAddress.d.ts +33 -0
  287. package/dist/runners/hubAddress.d.ts.map +1 -0
  288. package/dist/runners/hubAddress.js +88 -0
  289. package/dist/runners/hubAddress.js.map +1 -0
  290. package/dist/runners/hubAddressCandidates.d.ts +16 -0
  291. package/dist/runners/hubAddressCandidates.d.ts.map +1 -0
  292. package/dist/runners/hubAddressCandidates.js +96 -0
  293. package/dist/runners/hubAddressCandidates.js.map +1 -0
  294. package/dist/runners/hubIds.d.ts +16 -0
  295. package/dist/runners/hubIds.d.ts.map +1 -0
  296. package/dist/runners/hubIds.js +25 -0
  297. package/dist/runners/hubIds.js.map +1 -0
  298. package/dist/runners/hubKey.d.ts +6 -0
  299. package/dist/runners/hubKey.d.ts.map +1 -0
  300. package/dist/runners/hubKey.js +78 -0
  301. package/dist/runners/hubKey.js.map +1 -0
  302. package/dist/runners/hubLock.d.ts +7 -0
  303. package/dist/runners/hubLock.d.ts.map +1 -0
  304. package/dist/runners/hubLock.js +230 -0
  305. package/dist/runners/hubLock.js.map +1 -0
  306. package/dist/runners/hubPackage.d.ts +23 -0
  307. package/dist/runners/hubPackage.d.ts.map +1 -0
  308. package/dist/runners/hubPackage.js +184 -0
  309. package/dist/runners/hubPackage.js.map +1 -0
  310. package/dist/runners/hubPairing.d.ts +70 -0
  311. package/dist/runners/hubPairing.d.ts.map +1 -0
  312. package/dist/runners/hubPairing.js +277 -0
  313. package/dist/runners/hubPairing.js.map +1 -0
  314. package/dist/runners/hubPaths.d.ts +42 -0
  315. package/dist/runners/hubPaths.d.ts.map +1 -0
  316. package/dist/runners/hubPaths.js +96 -0
  317. package/dist/runners/hubPaths.js.map +1 -0
  318. package/dist/runners/hubRegistry.d.ts +134 -0
  319. package/dist/runners/hubRegistry.d.ts.map +1 -0
  320. package/dist/runners/hubRegistry.js +256 -0
  321. package/dist/runners/hubRegistry.js.map +1 -0
  322. package/dist/runners/linkControl.d.ts +38 -0
  323. package/dist/runners/linkControl.d.ts.map +1 -0
  324. package/dist/runners/linkControl.js +171 -0
  325. package/dist/runners/linkControl.js.map +1 -0
  326. package/dist/runners/pairCode.d.ts +30 -0
  327. package/dist/runners/pairCode.d.ts.map +1 -0
  328. package/dist/runners/pairCode.js +46 -0
  329. package/dist/runners/pairCode.js.map +1 -0
  330. package/dist/runners/pairingTiming.d.ts +18 -0
  331. package/dist/runners/pairingTiming.d.ts.map +1 -0
  332. package/dist/runners/pairingTiming.js +42 -0
  333. package/dist/runners/pairingTiming.js.map +1 -0
  334. package/dist/runners/removalTiming.d.ts +13 -0
  335. package/dist/runners/removalTiming.d.ts.map +1 -0
  336. package/dist/runners/removalTiming.js +17 -0
  337. package/dist/runners/removalTiming.js.map +1 -0
  338. package/dist/runners/runnerProxy.d.ts +9 -0
  339. package/dist/runners/runnerProxy.d.ts.map +1 -0
  340. package/dist/runners/runnerProxy.js +67 -0
  341. package/dist/runners/runnerProxy.js.map +1 -0
  342. package/dist/runners/runnerRemoval.d.ts +21 -0
  343. package/dist/runners/runnerRemoval.d.ts.map +1 -0
  344. package/dist/runners/runnerRemoval.js +94 -0
  345. package/dist/runners/runnerRemoval.js.map +1 -0
  346. package/dist/runners/runnerServiceKind.d.ts +10 -0
  347. package/dist/runners/runnerServiceKind.d.ts.map +1 -0
  348. package/dist/runners/runnerServiceKind.js +13 -0
  349. package/dist/runners/runnerServiceKind.js.map +1 -0
  350. package/dist/runners/runnersCli.d.ts +25 -0
  351. package/dist/runners/runnersCli.d.ts.map +1 -0
  352. package/dist/runners/runnersCli.js +239 -0
  353. package/dist/runners/runnersCli.js.map +1 -0
  354. package/dist/runners/runnersList.d.ts +14 -0
  355. package/dist/runners/runnersList.d.ts.map +1 -0
  356. package/dist/runners/runnersList.js +51 -0
  357. package/dist/runners/runnersList.js.map +1 -0
  358. package/dist/runners/runnersOverview.d.ts +20 -0
  359. package/dist/runners/runnersOverview.d.ts.map +1 -0
  360. package/dist/runners/runnersOverview.js +56 -0
  361. package/dist/runners/runnersOverview.js.map +1 -0
  362. package/dist/runners/sshKeys.d.ts +26 -0
  363. package/dist/runners/sshKeys.d.ts.map +1 -0
  364. package/dist/runners/sshKeys.js +60 -0
  365. package/dist/runners/sshKeys.js.map +1 -0
  366. package/dist/runners/tarArchive.d.ts +20 -0
  367. package/dist/runners/tarArchive.d.ts.map +1 -0
  368. package/dist/runners/tarArchive.js +70 -0
  369. package/dist/runners/tarArchive.js.map +1 -0
  370. package/dist/scheduler/mcpSurface.d.ts +11 -5
  371. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  372. package/dist/scheduler/mcpSurface.js +59 -26
  373. package/dist/scheduler/mcpSurface.js.map +1 -1
  374. package/dist/selfUpdate/selfCheck.d.ts +13 -0
  375. package/dist/selfUpdate/selfCheck.d.ts.map +1 -1
  376. package/dist/selfUpdate/selfCheck.js +9 -3
  377. package/dist/selfUpdate/selfCheck.js.map +1 -1
  378. package/dist/stt/sttInstallEntry.js +7 -4
  379. package/dist/stt/sttInstallEntry.js.map +1 -1
  380. package/dist/testTimings.d.ts +5 -2
  381. package/dist/testTimings.d.ts.map +1 -1
  382. package/dist/testTimings.js +10 -1
  383. package/dist/testTimings.js.map +1 -1
  384. package/dist/utils/agentEnvironment.d.ts +6 -2
  385. package/dist/utils/agentEnvironment.d.ts.map +1 -1
  386. package/dist/utils/agentEnvironment.js +13 -2
  387. package/dist/utils/agentEnvironment.js.map +1 -1
  388. package/dist/utils/runnersScreenPlan.d.ts +141 -0
  389. package/dist/utils/runnersScreenPlan.d.ts.map +1 -0
  390. package/dist/utils/runnersScreenPlan.js +272 -0
  391. package/dist/utils/runnersScreenPlan.js.map +1 -0
  392. package/package.json +5 -2
  393. package/remoteRun/runner.sh +81 -6
package/dist/bot.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAuC5E,OAAO,KAAK,EAAE,YAAY,EAAqK,aAAa,EAAuD,MAAM,SAAS,CAAC;AACnR,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAW3D,OAAO,mCAAmC,CAAC;AAwH3C,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,oBAAoB,CAAC;AA0PvE,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAuVtF;;;;GAIG;AACH,QAAA,MAAM,eAAe,kEAGnB,CAAC;AAguIH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAUR;AAkLD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,+BAA+B,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAEhI;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAgsBD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAuCD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB,CAAC,QAAQ;IAChD,kFAAkF;IAClF,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,KAAK,cAAc,GAAG,IAAI,CAAC;IACpE,yEAAyE;IACzE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,mFAAmF;IACnF,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,qEAAqE;IACrE,qBAAqB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,gFAAgF;IAChF,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,cAAc,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAA;CAAE,EAChG,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACzB,IAAI,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAA;CAAE,EACpF,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAAwB,CAAC,cAAc,CAO7E,CAAC;AAMF,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,CAAC;AAguM3B,eAAO,MAAM,aAAa;;;GAyDzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,UAAU,qBAAqB;IAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gBAAgB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;CACvE;AASD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC/C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,WAAW,EAAE,OAAO,EACpB,IAAI,GAAE,qBAAoD,GACzD,OAAO,CAAC,IAAI,CAAC,CAsBf;AAwsBD;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,qFAAqF;IACrF,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;CAC1C;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAClC,IAAI,GAAE,4BAAkE,GACvE,MAAM,CAqBR;AAsrBD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAitB9C"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
package/dist/bot.js CHANGED
@@ -239,6 +239,14 @@ const compaction_1 = require("./connectors/telegram/commands/compaction");
239
239
  const autoContinueLimits_1 = require("./connectors/telegram/commands/autoContinueLimits");
240
240
  const botSkills_2 = require("./connectors/telegram/commands/botSkills");
241
241
  const taskAgents_1 = require("./connectors/telegram/commands/taskAgents");
242
+ const runners_1 = require("./connectors/telegram/commands/runners");
243
+ const gateWrapper_1 = require("./runners/gateWrapper");
244
+ const hubAddress_1 = require("./runners/hubAddress");
245
+ const hubAddressCandidates_1 = require("./runners/hubAddressCandidates");
246
+ const hubPaths_1 = require("./runners/hubPaths");
247
+ const hubPairing_1 = require("./runners/hubPairing");
248
+ const runnersOverview_1 = require("./runners/runnersOverview");
249
+ const ssh_1 = require("./remoteRun/ssh");
242
250
  const claudeAccounts_1 = require("./connectors/telegram/commands/claudeAccounts");
243
251
  const claudeProfiles_1 = require("./utils/claudeProfiles");
244
252
  const claudeUsage_1 = require("./utils/claudeUsage");
@@ -263,7 +271,7 @@ const stt_1 = require("./connectors/telegram/commands/stt");
263
271
  const claudeApiSpend_1 = require("./utils/claudeApiSpend");
264
272
  const claudeProfileUsageLines_1 = require("./utils/claudeProfileUsageLines");
265
273
  const resolveBinary_1 = require("./utils/resolveBinary");
266
- const runnersConfig_1 = require("./remoteRun/runnersConfig");
274
+ const runnerSummary_1 = require("./remoteRun/runnerSummary");
267
275
  // ═══════════════════════════════════════════════════════════════════════════════
268
276
  // ENV parsing & fatal validation
269
277
  // ═══════════════════════════════════════════════════════════════════════════════
@@ -3140,6 +3148,7 @@ async function replyToThread(key, text, extra = {}, options = {}) {
3140
3148
  openBindMessages.remember((0, sessionKey_1.keyToString)(key), messageId, Date.now());
3141
3149
  return messageId;
3142
3150
  };
3151
+ const releaseSecret = options.isSecret ? (0, outputTrace_1.markOutboundTextSecret)(text) : null;
3143
3152
  try {
3144
3153
  return await trackSent(await sendOnce(buildSendExtra(key, extra)));
3145
3154
  }
@@ -3174,6 +3183,9 @@ async function replyToThread(key, text, extra = {}, options = {}) {
3174
3183
  await handleSendError(key, e);
3175
3184
  return null;
3176
3185
  }
3186
+ finally {
3187
+ releaseSecret?.();
3188
+ }
3177
3189
  }
3178
3190
  /**
3179
3191
  * @description Edit an existing assistant message in the thread.
@@ -4087,7 +4099,7 @@ function stopAllAdaptersFor(key, adapterNames) {
4087
4099
  return (0, createAdapter_1.stopAllAdaptersFor)(key, createAdapter_1.getAdapter, adapterNames);
4088
4100
  }
4089
4101
  /**
4090
- * @description Explicit-stop teardown used by `/new`/`/clear_session`:
4102
+ * @description Explicit-stop teardown used by `/new`:
4091
4103
  * sweep every adapter active for the thread, then RELEASE the persisted session
4092
4104
  * ids (even when nothing was running) so a later bot restart won't auto-reattach
4093
4105
  * and any half-dead state from a crash/SSE-giveup is cleared. The session stays
@@ -5874,7 +5886,7 @@ command('list', async (_ctx, key) => {
5874
5886
  await replyToThread(key, `${(0, i18n_1.t)('list.header', { count: rows.length })}\n${body}`, { parse_mode: 'Markdown' });
5875
5887
  });
5876
5888
  /**
5877
- * @description `/new` (alias `/clear_session`) — stop the thread's current agent
5889
+ * @description `/new` — stop the thread's current agent
5878
5890
  * session and immediately start a fresh one in the SAME topic with the SAME
5879
5891
  * adapter. The old session is RELEASED (not deleted): its transcript stays on
5880
5892
  * disk so it's still resumable via `/sessions`, but a bot restart won't
@@ -5884,7 +5896,7 @@ command('list', async (_ctx, key) => {
5884
5896
  * Guards mirror `handleStartCommand`: General has no binding/agent, so it just
5885
5897
  * hints; an unbound topic gets the standard bind-required reply.
5886
5898
  */
5887
- command(['new', 'clear_session'], async (_ctx, key) => {
5899
+ command('new', async (_ctx, key) => {
5888
5900
  if (checkIsGeneral(key)) {
5889
5901
  await replyToThread(key, (0, i18n_1.t)('new.general_hint'));
5890
5902
  return;
@@ -6585,6 +6597,26 @@ const { registerTaskAgentsCommands, registerTaskAgentsCallbacks } = (0, taskAgen
6585
6597
  readTaskAgentStatus: () => ([...ENV.servedPlatforms].some((platform) => platform !== 'telegram') ? taskAgentSlots?.getStatus() ?? null : null),
6586
6598
  });
6587
6599
  registerTaskAgentsCommands();
6600
+ // ── Paired runners (`/runners`): `connectors/telegram/commands/runners.ts`, the hub in `runners/` ──
6601
+ const runnersHub = (0, hubPaths_1.createHubContext)();
6602
+ const runnersCacheDir = (0, ssh_1.getRemoteRunCacheDir)();
6603
+ const { registerRunnersCommands, registerRunnersCallbacks, handleRunnersAddressText, cancelRunnersAddressWait, startRunnersWatcher } = (0, runners_1.createRunners)({
6604
+ ...botCore,
6605
+ hub: runnersHub,
6606
+ // The pairing messages this instance sent: its own record (the hub registry is shared by every instance of the OS user).
6607
+ pairingMessagesPath: path.join((0, state_1.resolveDataDir)(), 'runner-pairing-messages.json'),
6608
+ sweepExpiredCodes: async (nowMs) => { await (0, hubPairing_1.sweepExpiredPairings)(runnersHub, nowMs); },
6609
+ readRunnerHost: (0, instanceSettings_1.createRunnerHostReader)(() => (0, instanceSettings_1.getInstanceSettingsPath)(), (line) => console.error(line)),
6610
+ saveRunnerHost: (address) => (0, instanceSettings_1.saveInstanceSettingsChange)((0, instanceSettings_1.getInstanceSettingsPath)(), { runnerHost: address }),
6611
+ getBotLabel: () => (bot.botInfo?.username === undefined ? os.hostname() : `@${bot.botInfo.username}`),
6612
+ readOverview: (nowMs) => (0, runnersOverview_1.readRunnersOverview)(runnersHub, runnersCacheDir, nowMs),
6613
+ probeOverview: (overview, nowMs) => (0, runnersOverview_1.probeRunnersOverview)(runnersHub, overview, runnersCacheDir, nowMs),
6614
+ listAddressCandidates: () => (0, hubAddressCandidates_1.listPublicAddressCandidates)(),
6615
+ scanHostKey: hubAddress_1.scanHostKey,
6616
+ ensureGateWrapper: () => { (0, gateWrapper_1.ensureGateWrapper)(runnersHub); },
6617
+ now: Date.now,
6618
+ });
6619
+ registerRunnersCommands();
6588
6620
  // ── Claude account profiles (`/account`): `utils/claudeProfiles.ts`, `commands/claudeAccounts.ts` ──
6589
6621
  /**
6590
6622
  * @description The Claude config directory a conversation's NEXT process starts with: its resolved account
@@ -8053,8 +8085,8 @@ command('clear_messages', async (ctx, key) => {
8053
8085
  const botCommands = new Set([
8054
8086
  'start', 'claude', 'opencode', 'oc', 'terminal', 'agent', 'sessions', 'resume', 'cancel', 'model', 'connect',
8055
8087
  'disconnect', 'stop', 'stopall', 'stop-all', 'quit-all', 'status', 'c', 'y', 'n', 'enter', 'up', 'down', 'tab', 'esc', 'escape', 'interrupt', 'output', 'clear_messages',
8056
- 'bind', 'topic', 'unbind', 'where', 'ls', 'list', 'new', 'clear_session', 'whoami', 'version', 'help', 'language', 'lang',
8057
- 'doctor', 'mcp', 'rename_session', 'compact', 'compact_on_idle', 'compact_summary', 'bot_skills', 'task_agents', 'auto_continue_limits', 'limits', 'limits_autoswitch', 'trace', 'timestamps', 'timezone', 'schedule', 'reminders', 'todo', 'thinking', 'tool_results',
8088
+ 'bind', 'topic', 'unbind', 'where', 'ls', 'list', 'new', 'whoami', 'version', 'help', 'language', 'lang',
8089
+ 'doctor', 'mcp', 'rename_session', 'compact', 'compact_on_idle', 'compact_summary', 'bot_skills', 'task_agents', 'runners', 'auto_continue_limits', 'limits', 'limits_autoswitch', 'trace', 'timestamps', 'timezone', 'schedule', 'reminders', 'todo', 'thinking', 'tool_results',
8058
8090
  'subagent', 'claude_mode', 'effort', 'verbosity', 'quit', 'q', 'quitall', 'pair', 'account', 'accounts', 'fallback', 'stt', 'voice', 'speech', 'update',
8059
8091
  ]);
8060
8092
  /**
@@ -8091,6 +8123,8 @@ bot.on((0, filters_1.message)('text'), async (ctx) => {
8091
8123
  cancelTopicInput(key);
8092
8124
  // ... and an armed `/stt` address or key step.
8093
8125
  await cancelSttInput(key);
8126
+ // ... and the `/runners` address step.
8127
+ cancelRunnersAddressWait(key);
8094
8128
  if (botCommands.has(cmd))
8095
8129
  return;
8096
8130
  // `/login` on a json-stream Claude thread (idle or per-turn lifecycle) has no
@@ -8194,6 +8228,9 @@ bot.on((0, filters_1.message)('text'), async (ctx) => {
8194
8228
  return;
8195
8229
  }
8196
8230
  }
8231
+ // `/runners` → «Enter another address»: this General message is the address runners dial. A slash command wins over the wait.
8232
+ if (await handleRunnersAddressText(key, text))
8233
+ return;
8197
8234
  // Session is mid-startup → buffer the prompt and replay it once the agent is
8198
8235
  // ready, instead of dropping it into the "no agent running" guidance below.
8199
8236
  if (startupPromptBuffer.checkIsStarting(kStr)) {
@@ -9307,6 +9344,7 @@ registerCompactionCallbacks();
9307
9344
  registerAutoContinueLimitsCallbacks();
9308
9345
  registerBotSkillsCallbacks();
9309
9346
  registerTaskAgentsCallbacks();
9347
+ registerRunnersCallbacks();
9310
9348
  registerBackendSwitchCallbacks();
9311
9349
  registerClaudeAccountCallbacks();
9312
9350
  registerFallbackChainCallbacks();
@@ -11103,8 +11141,7 @@ exports.COMMANDS_MENU = [
11103
11141
  { command: 'opencode', description: '▶️ Start OpenCode' },
11104
11142
  { command: 'terminal', description: '🖥 Open a raw shell in the bound folder' },
11105
11143
  { command: 'claude_mode', description: '🔀 Claude backend: json-stream ⇄ per-turn ⇄ tmux (deprecated)' },
11106
- { command: 'new', description: '🆕 Restart session (alias /clear_session)' },
11107
- { command: 'clear_session', description: '🆕 Restart session (alias /new)' },
11144
+ { command: 'new', description: '🆕 Restart session' },
11108
11145
  { command: 'model', description: '🧠 Switch model' },
11109
11146
  { command: 'effort', description: '⚙️ Reasoning effort' },
11110
11147
  { command: 'verbosity', description: '🔊 Output verbosity (thinking+tools+sub-agents)' },
@@ -11121,6 +11158,7 @@ exports.COMMANDS_MENU = [
11121
11158
  { command: 'compact_summary', description: '📄 Post the compaction summary (toggle)' },
11122
11159
  { command: 'bot_skills', description: '🧰 The bot\'s own skills for agents (on/off)' },
11123
11160
  { command: 'task_agents', description: '🧵 How many tracker task agents work at once' },
11161
+ { command: 'runners', description: '🖥 Runners — machines for the agents\' tests and builds' },
11124
11162
  { command: 'accounts', description: '👤 Claude accounts and OpenCode providers (switch, add, re-login, remove, connect, disconnect)' },
11125
11163
  { command: 'limits', description: '🚧 Usage limits — switch this topic' },
11126
11164
  { command: 'limits_autoswitch', description: '🔁 Automatic switching on a usage limit' },
@@ -12273,7 +12311,7 @@ function wireScheduler(wiring) {
12273
12311
  sendMessagesToThread,
12274
12312
  compactConversation: (threadKeyStr) => armDeferredCompaction((0, sessionKey_1.keyFromString)(threadKeyStr)),
12275
12313
  listClaudeProfiles: listClaudeProfilesForAgent,
12276
- isRemoteRunOffered: () => (0, runnersConfig_1.checkIsRemoteRunOffered)(),
12314
+ getRemoteRunRunnerLines: () => (0, runnerSummary_1.getRunnerSummaryLines)(),
12277
12315
  // A refused tool call leaves one line in the bounded diagnostic log (agent-diag.log): the SDK refuses before the bot sees it.
12278
12316
  logDiagnostic: diagLog_1.appendDiagLog,
12279
12317
  ...(jiraConnector
@@ -13223,6 +13261,9 @@ async function startBot() {
13223
13261
  console.warn('[platform] native Windows notice failed:', e instanceof Error ? e.message : e);
13224
13262
  }
13225
13263
  await startUpdates();
13264
+ // Pairing messages of `/runners` turn into «paired» / «expired» (and survive this restart through the registry's notes).
13265
+ if (ENV.servedPlatforms.has('telegram'))
13266
+ startRunnersWatcher();
13226
13267
  // The local speech engine: clean up after an earlier run, re-attach to / start its install. Starts no process.
13227
13268
  void bootSttLocalEngine().catch((e) => console.warn('[STT] boot step failed:', e instanceof Error ? e.message : e));
13228
13269
  console.log(`Launching Telegraf bot (long polling, dropPendingUpdates=${bootMode.dropPendingUpdates})...`);