charness 3.6.0 → 3.7.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 (582) hide show
  1. package/CHANGELOG.md +274 -0
  2. package/DEVELOPMENT.md +31 -5
  3. package/MIGRATION_RENAME_TO_CHARNESS.md +3 -2
  4. package/README.md +84 -782
  5. package/SETUP.md +37 -10
  6. package/agent-plugin/.claude-plugin/plugin.json +7 -0
  7. package/agent-plugin/README.md +35 -0
  8. package/agent-plugin/skills/charness-delegate-claude/SKILL.md +85 -0
  9. package/agent-plugin/skills/charness-delegate-claude/summarize-events.py +90 -0
  10. package/agent-plugin/skills/charness-delegate-opencode/SKILL.md +68 -0
  11. package/agent-plugin/skills/charness-manager/SKILL.md +152 -0
  12. package/dist/adapters/adapterNames.d.ts +6 -0
  13. package/dist/adapters/adapterNames.d.ts.map +1 -1
  14. package/dist/adapters/adapterNames.js +8 -2
  15. package/dist/adapters/adapterNames.js.map +1 -1
  16. package/dist/adapters/claudeCliAdapter.d.ts +8 -0
  17. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
  18. package/dist/adapters/claudeCliAdapter.js +42 -5
  19. package/dist/adapters/claudeCliAdapter.js.map +1 -1
  20. package/dist/adapters/claudeJsonStreamAdapter.d.ts +10 -9
  21. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
  22. package/dist/adapters/claudeJsonStreamAdapter.js +53 -55
  23. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
  24. package/dist/adapters/createAdapter.d.ts +8 -0
  25. package/dist/adapters/createAdapter.d.ts.map +1 -1
  26. package/dist/adapters/createAdapter.js +14 -2
  27. package/dist/adapters/createAdapter.js.map +1 -1
  28. package/dist/adapters/openCodeAdapter.d.ts +43 -6
  29. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  30. package/dist/adapters/openCodeAdapter.js +95 -6
  31. package/dist/adapters/openCodeAdapter.js.map +1 -1
  32. package/dist/agentLogin/agentLogin.d.ts +1 -1
  33. package/dist/agentLogin/agentLogin.d.ts.map +1 -1
  34. package/dist/apiRetryKick.d.ts +4 -3
  35. package/dist/apiRetryKick.d.ts.map +1 -1
  36. package/dist/apiRetryKick.js +16 -9
  37. package/dist/apiRetryKick.js.map +1 -1
  38. package/dist/bot.d.ts.map +1 -1
  39. package/dist/bot.js +1313 -381
  40. package/dist/bot.js.map +1 -1
  41. package/dist/cli/claudeProfiles.d.ts +11 -6
  42. package/dist/cli/claudeProfiles.d.ts.map +1 -1
  43. package/dist/cli/claudeProfiles.js +50 -22
  44. package/dist/cli/claudeProfiles.js.map +1 -1
  45. package/dist/cli/hot.d.ts +5 -0
  46. package/dist/cli/hot.d.ts.map +1 -1
  47. package/dist/cli/hot.js +71 -25
  48. package/dist/cli/hot.js.map +1 -1
  49. package/dist/cli/tscWatchGuard.d.ts +95 -0
  50. package/dist/cli/tscWatchGuard.d.ts.map +1 -0
  51. package/dist/cli/tscWatchGuard.js +295 -0
  52. package/dist/cli/tscWatchGuard.js.map +1 -0
  53. package/dist/cli.js +12 -1
  54. package/dist/cli.js.map +1 -1
  55. package/dist/connectors/jira/answerSink.d.ts +10 -0
  56. package/dist/connectors/jira/answerSink.d.ts.map +1 -1
  57. package/dist/connectors/jira/answerSink.js +13 -0
  58. package/dist/connectors/jira/answerSink.js.map +1 -1
  59. package/dist/connectors/jira/config.d.ts +2 -0
  60. package/dist/connectors/jira/config.d.ts.map +1 -1
  61. package/dist/connectors/jira/config.js +9 -1
  62. package/dist/connectors/jira/config.js.map +1 -1
  63. package/dist/connectors/jira/connector.d.ts +11 -1
  64. package/dist/connectors/jira/connector.d.ts.map +1 -1
  65. package/dist/connectors/jira/connector.js +13 -1
  66. package/dist/connectors/jira/connector.js.map +1 -1
  67. package/dist/connectors/jira/inbound.d.ts +29 -4
  68. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  69. package/dist/connectors/jira/inbound.js +71 -8
  70. package/dist/connectors/jira/inbound.js.map +1 -1
  71. package/dist/connectors/jira/issueBlocks.d.ts +5 -0
  72. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
  73. package/dist/connectors/jira/issueBlocks.js +11 -0
  74. package/dist/connectors/jira/issueBlocks.js.map +1 -1
  75. package/dist/connectors/jira/prompt.d.ts +4 -0
  76. package/dist/connectors/jira/prompt.d.ts.map +1 -1
  77. package/dist/connectors/jira/prompt.js +11 -2
  78. package/dist/connectors/jira/prompt.js.map +1 -1
  79. package/dist/connectors/telegram/bindPicker.d.ts +5 -0
  80. package/dist/connectors/telegram/bindPicker.d.ts.map +1 -1
  81. package/dist/connectors/telegram/bindPicker.js +18 -1
  82. package/dist/connectors/telegram/bindPicker.js.map +1 -1
  83. package/dist/connectors/telegram/bindPickerClaims.d.ts +46 -0
  84. package/dist/connectors/telegram/bindPickerClaims.d.ts.map +1 -0
  85. package/dist/connectors/telegram/bindPickerClaims.js +83 -0
  86. package/dist/connectors/telegram/bindPickerClaims.js.map +1 -0
  87. package/dist/connectors/telegram/bindSweep.d.ts +32 -0
  88. package/dist/connectors/telegram/bindSweep.d.ts.map +1 -0
  89. package/dist/connectors/telegram/bindSweep.js +47 -0
  90. package/dist/connectors/telegram/bindSweep.js.map +1 -0
  91. package/dist/connectors/telegram/bindingWelcome.d.ts +23 -0
  92. package/dist/connectors/telegram/bindingWelcome.d.ts.map +1 -0
  93. package/dist/connectors/telegram/bindingWelcome.js +26 -0
  94. package/dist/connectors/telegram/bindingWelcome.js.map +1 -0
  95. package/dist/connectors/telegram/botApiConnection.d.ts +74 -0
  96. package/dist/connectors/telegram/botApiConnection.d.ts.map +1 -0
  97. package/dist/connectors/telegram/botApiConnection.js +201 -0
  98. package/dist/connectors/telegram/botApiConnection.js.map +1 -0
  99. package/dist/connectors/telegram/commands/botCore.d.ts +8 -2
  100. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -1
  101. package/dist/connectors/telegram/commands/botSkills.d.ts +21 -0
  102. package/dist/connectors/telegram/commands/botSkills.d.ts.map +1 -0
  103. package/dist/connectors/telegram/commands/botSkills.js +133 -0
  104. package/dist/connectors/telegram/commands/botSkills.js.map +1 -0
  105. package/dist/connectors/telegram/commands/callbackMessage.d.ts +5 -0
  106. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
  107. package/dist/connectors/telegram/commands/callbackMessage.js +9 -0
  108. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
  109. package/dist/connectors/telegram/commands/compaction.d.ts +65 -3
  110. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
  111. package/dist/connectors/telegram/commands/compaction.js +512 -94
  112. package/dist/connectors/telegram/commands/compaction.js.map +1 -1
  113. package/dist/connectors/telegram/commands/displayModes.d.ts +1 -1
  114. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
  115. package/dist/connectors/telegram/commands/displayModes.js +6 -18
  116. package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
  117. package/dist/connectors/telegram/commands/fallbackChain.js +5 -5
  118. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
  119. package/dist/connectors/telegram/commands/reminders.d.ts +1 -1
  120. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -1
  121. package/dist/connectors/telegram/commands/reminders.js +4 -15
  122. package/dist/connectors/telegram/commands/reminders.js.map +1 -1
  123. package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -1
  124. package/dist/connectors/telegram/commands/selfUpdate.js +1 -11
  125. package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -1
  126. package/dist/connectors/telegram/commands/taskAgents.d.ts +22 -0
  127. package/dist/connectors/telegram/commands/taskAgents.d.ts.map +1 -0
  128. package/dist/connectors/telegram/commands/taskAgents.js +104 -0
  129. package/dist/connectors/telegram/commands/taskAgents.js.map +1 -0
  130. package/dist/connectors/telegram/commands/todo.d.ts +82 -0
  131. package/dist/connectors/telegram/commands/todo.d.ts.map +1 -0
  132. package/dist/connectors/telegram/commands/todo.js +384 -0
  133. package/dist/connectors/telegram/commands/todo.js.map +1 -0
  134. package/dist/connectors/telegram/commands/topicCommand.d.ts +6 -2
  135. package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -1
  136. package/dist/connectors/telegram/commands/topicCommand.js +6 -9
  137. package/dist/connectors/telegram/commands/topicCommand.js.map +1 -1
  138. package/dist/connectors/telegram/openBindMessages.d.ts +45 -0
  139. package/dist/connectors/telegram/openBindMessages.d.ts.map +1 -0
  140. package/dist/connectors/telegram/openBindMessages.js +67 -0
  141. package/dist/connectors/telegram/openBindMessages.js.map +1 -0
  142. package/dist/connectors/telegram/outputFlushPlan.d.ts +49 -0
  143. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -1
  144. package/dist/connectors/telegram/outputFlushPlan.js +46 -0
  145. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -1
  146. package/dist/connectors/telegram/pendingTopicName.d.ts +26 -0
  147. package/dist/connectors/telegram/pendingTopicName.d.ts.map +1 -0
  148. package/dist/connectors/telegram/pendingTopicName.js +27 -0
  149. package/dist/connectors/telegram/pendingTopicName.js.map +1 -0
  150. package/dist/connectors/test/connector.d.ts.map +1 -1
  151. package/dist/connectors/test/connector.js +6 -1
  152. package/dist/connectors/test/connector.js.map +1 -1
  153. package/dist/i18n/de.d.ts.map +1 -1
  154. package/dist/i18n/de.js +90 -7
  155. package/dist/i18n/de.js.map +1 -1
  156. package/dist/i18n/en.d.ts.map +1 -1
  157. package/dist/i18n/en.js +90 -7
  158. package/dist/i18n/en.js.map +1 -1
  159. package/dist/i18n/es.d.ts.map +1 -1
  160. package/dist/i18n/es.js +90 -7
  161. package/dist/i18n/es.js.map +1 -1
  162. package/dist/i18n/fr.d.ts.map +1 -1
  163. package/dist/i18n/fr.js +90 -7
  164. package/dist/i18n/fr.js.map +1 -1
  165. package/dist/i18n/hi.d.ts.map +1 -1
  166. package/dist/i18n/hi.js +90 -7
  167. package/dist/i18n/hi.js.map +1 -1
  168. package/dist/i18n/ja.d.ts.map +1 -1
  169. package/dist/i18n/ja.js +90 -7
  170. package/dist/i18n/ja.js.map +1 -1
  171. package/dist/i18n/ka.d.ts.map +1 -1
  172. package/dist/i18n/ka.js +90 -7
  173. package/dist/i18n/ka.js.map +1 -1
  174. package/dist/i18n/pt.d.ts.map +1 -1
  175. package/dist/i18n/pt.js +90 -7
  176. package/dist/i18n/pt.js.map +1 -1
  177. package/dist/i18n/ru.d.ts.map +1 -1
  178. package/dist/i18n/ru.js +90 -7
  179. package/dist/i18n/ru.js.map +1 -1
  180. package/dist/i18n/uk.d.ts.map +1 -1
  181. package/dist/i18n/uk.js +90 -7
  182. package/dist/i18n/uk.js.map +1 -1
  183. package/dist/i18n/uz.d.ts.map +1 -1
  184. package/dist/i18n/uz.js +90 -7
  185. package/dist/i18n/uz.js.map +1 -1
  186. package/dist/i18n/zh.d.ts.map +1 -1
  187. package/dist/i18n/zh.js +90 -7
  188. package/dist/i18n/zh.js.map +1 -1
  189. package/dist/i18n.d.ts +1 -1
  190. package/dist/i18n.js +1 -1
  191. package/dist/installManager.d.ts +13 -0
  192. package/dist/installManager.d.ts.map +1 -1
  193. package/dist/installManager.js +38 -4
  194. package/dist/installManager.js.map +1 -1
  195. package/dist/instanceSettings.d.ts +40 -1
  196. package/dist/instanceSettings.d.ts.map +1 -1
  197. package/dist/instanceSettings.js +105 -26
  198. package/dist/instanceSettings.js.map +1 -1
  199. package/dist/openCodeQuestionFlow.d.ts +30 -0
  200. package/dist/openCodeQuestionFlow.d.ts.map +1 -1
  201. package/dist/openCodeQuestionFlow.js +43 -0
  202. package/dist/openCodeQuestionFlow.js.map +1 -1
  203. package/dist/postToSession.d.ts +20 -5
  204. package/dist/postToSession.d.ts.map +1 -1
  205. package/dist/postToSession.js +38 -7
  206. package/dist/postToSession.js.map +1 -1
  207. package/dist/remoteRun/cliArgs.d.ts +73 -0
  208. package/dist/remoteRun/cliArgs.d.ts.map +1 -0
  209. package/dist/remoteRun/cliArgs.js +197 -0
  210. package/dist/remoteRun/cliArgs.js.map +1 -0
  211. package/dist/remoteRun/commands.d.ts +56 -0
  212. package/dist/remoteRun/commands.d.ts.map +1 -0
  213. package/dist/remoteRun/commands.js +306 -0
  214. package/dist/remoteRun/commands.js.map +1 -0
  215. package/dist/remoteRun/depsPlan.d.ts +16 -0
  216. package/dist/remoteRun/depsPlan.d.ts.map +1 -0
  217. package/dist/remoteRun/depsPlan.js +82 -0
  218. package/dist/remoteRun/depsPlan.js.map +1 -0
  219. package/dist/remoteRun/exitCodes.d.ts +34 -0
  220. package/dist/remoteRun/exitCodes.d.ts.map +1 -0
  221. package/dist/remoteRun/exitCodes.js +38 -0
  222. package/dist/remoteRun/exitCodes.js.map +1 -0
  223. package/dist/remoteRun/foreground.d.ts +29 -0
  224. package/dist/remoteRun/foreground.d.ts.map +1 -0
  225. package/dist/remoteRun/foreground.js +159 -0
  226. package/dist/remoteRun/foreground.js.map +1 -0
  227. package/dist/remoteRun/interrupts.d.ts +17 -0
  228. package/dist/remoteRun/interrupts.d.ts.map +1 -0
  229. package/dist/remoteRun/interrupts.js +41 -0
  230. package/dist/remoteRun/interrupts.js.map +1 -0
  231. package/dist/remoteRun/jobFiles.d.ts +31 -0
  232. package/dist/remoteRun/jobFiles.d.ts.map +1 -0
  233. package/dist/remoteRun/jobFiles.js +84 -0
  234. package/dist/remoteRun/jobFiles.js.map +1 -0
  235. package/dist/remoteRun/jobFormat.d.ts +16 -0
  236. package/dist/remoteRun/jobFormat.d.ts.map +1 -0
  237. package/dist/remoteRun/jobFormat.js +130 -0
  238. package/dist/remoteRun/jobFormat.js.map +1 -0
  239. package/dist/remoteRun/jobId.d.ts +15 -0
  240. package/dist/remoteRun/jobId.d.ts.map +1 -0
  241. package/dist/remoteRun/jobId.js +85 -0
  242. package/dist/remoteRun/jobId.js.map +1 -0
  243. package/dist/remoteRun/jobMeta.d.ts +18 -0
  244. package/dist/remoteRun/jobMeta.d.ts.map +1 -0
  245. package/dist/remoteRun/jobMeta.js +33 -0
  246. package/dist/remoteRun/jobMeta.js.map +1 -0
  247. package/dist/remoteRun/jobQuery.d.ts +12 -0
  248. package/dist/remoteRun/jobQuery.d.ts.map +1 -0
  249. package/dist/remoteRun/jobQuery.js +22 -0
  250. package/dist/remoteRun/jobQuery.js.map +1 -0
  251. package/dist/remoteRun/jobRecords.d.ts +22 -0
  252. package/dist/remoteRun/jobRecords.d.ts.map +1 -0
  253. package/dist/remoteRun/jobRecords.js +145 -0
  254. package/dist/remoteRun/jobRecords.js.map +1 -0
  255. package/dist/remoteRun/jobState.d.ts +62 -0
  256. package/dist/remoteRun/jobState.d.ts.map +1 -0
  257. package/dist/remoteRun/jobState.js +132 -0
  258. package/dist/remoteRun/jobState.js.map +1 -0
  259. package/dist/remoteRun/leaseTiming.d.ts +18 -0
  260. package/dist/remoteRun/leaseTiming.d.ts.map +1 -0
  261. package/dist/remoteRun/leaseTiming.js +43 -0
  262. package/dist/remoteRun/leaseTiming.js.map +1 -0
  263. package/dist/remoteRun/output.d.ts +35 -0
  264. package/dist/remoteRun/output.d.ts.map +1 -0
  265. package/dist/remoteRun/output.js +82 -0
  266. package/dist/remoteRun/output.js.map +1 -0
  267. package/dist/remoteRun/pathPatterns.d.ts +33 -0
  268. package/dist/remoteRun/pathPatterns.d.ts.map +1 -0
  269. package/dist/remoteRun/pathPatterns.js +115 -0
  270. package/dist/remoteRun/pathPatterns.js.map +1 -0
  271. package/dist/remoteRun/probe.d.ts +56 -0
  272. package/dist/remoteRun/probe.d.ts.map +1 -0
  273. package/dist/remoteRun/probe.js +123 -0
  274. package/dist/remoteRun/probe.js.map +1 -0
  275. package/dist/remoteRun/project.d.ts +26 -0
  276. package/dist/remoteRun/project.d.ts.map +1 -0
  277. package/dist/remoteRun/project.js +159 -0
  278. package/dist/remoteRun/project.js.map +1 -0
  279. package/dist/remoteRun/projectConfig.d.ts +38 -0
  280. package/dist/remoteRun/projectConfig.d.ts.map +1 -0
  281. package/dist/remoteRun/projectConfig.js +87 -0
  282. package/dist/remoteRun/projectConfig.js.map +1 -0
  283. package/dist/remoteRun/remoteRunCli.d.ts +15 -0
  284. package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
  285. package/dist/remoteRun/remoteRunCli.js +144 -0
  286. package/dist/remoteRun/remoteRunCli.js.map +1 -0
  287. package/dist/remoteRun/remoteRunError.d.ts +14 -0
  288. package/dist/remoteRun/remoteRunError.d.ts.map +1 -0
  289. package/dist/remoteRun/remoteRunError.js +28 -0
  290. package/dist/remoteRun/remoteRunError.js.map +1 -0
  291. package/dist/remoteRun/rsync.d.ts +17 -0
  292. package/dist/remoteRun/rsync.d.ts.map +1 -0
  293. package/dist/remoteRun/rsync.js +39 -0
  294. package/dist/remoteRun/rsync.js.map +1 -0
  295. package/dist/remoteRun/runnerClient.d.ts +50 -0
  296. package/dist/remoteRun/runnerClient.d.ts.map +1 -0
  297. package/dist/remoteRun/runnerClient.js +139 -0
  298. package/dist/remoteRun/runnerClient.js.map +1 -0
  299. package/dist/remoteRun/runners.d.ts +57 -0
  300. package/dist/remoteRun/runners.d.ts.map +1 -0
  301. package/dist/remoteRun/runners.js +181 -0
  302. package/dist/remoteRun/runners.js.map +1 -0
  303. package/dist/remoteRun/runnersConfig.d.ts +44 -0
  304. package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
  305. package/dist/remoteRun/runnersConfig.js +107 -0
  306. package/dist/remoteRun/runnersConfig.js.map +1 -0
  307. package/dist/remoteRun/safeCopy.d.ts +31 -0
  308. package/dist/remoteRun/safeCopy.d.ts.map +1 -0
  309. package/dist/remoteRun/safeCopy.js +137 -0
  310. package/dist/remoteRun/safeCopy.js.map +1 -0
  311. package/dist/remoteRun/sendPlan.d.ts +67 -0
  312. package/dist/remoteRun/sendPlan.d.ts.map +1 -0
  313. package/dist/remoteRun/sendPlan.js +139 -0
  314. package/dist/remoteRun/sendPlan.js.map +1 -0
  315. package/dist/remoteRun/ssh.d.ts +62 -0
  316. package/dist/remoteRun/ssh.d.ts.map +1 -0
  317. package/dist/remoteRun/ssh.js +202 -0
  318. package/dist/remoteRun/ssh.js.map +1 -0
  319. package/dist/remoteRun/submit.d.ts +29 -0
  320. package/dist/remoteRun/submit.d.ts.map +1 -0
  321. package/dist/remoteRun/submit.js +142 -0
  322. package/dist/remoteRun/submit.js.map +1 -0
  323. package/dist/requests/answerRequest.d.ts +5 -0
  324. package/dist/requests/answerRequest.d.ts.map +1 -1
  325. package/dist/requests/answerRequest.js +16 -1
  326. package/dist/requests/answerRequest.js.map +1 -1
  327. package/dist/requests/requestLedger.d.ts +13 -0
  328. package/dist/requests/requestLedger.d.ts.map +1 -1
  329. package/dist/requests/requestLedger.js +9 -0
  330. package/dist/requests/requestLedger.js.map +1 -1
  331. package/dist/requests/topicRequestSettle.d.ts +30 -0
  332. package/dist/requests/topicRequestSettle.d.ts.map +1 -0
  333. package/dist/requests/topicRequestSettle.js +23 -0
  334. package/dist/requests/topicRequestSettle.js.map +1 -0
  335. package/dist/requests/wakeUpEngine.d.ts +4 -0
  336. package/dist/requests/wakeUpEngine.d.ts.map +1 -1
  337. package/dist/requests/wakeUpEngine.js +5 -1
  338. package/dist/requests/wakeUpEngine.js.map +1 -1
  339. package/dist/scheduler/delivery.d.ts +2 -0
  340. package/dist/scheduler/delivery.d.ts.map +1 -1
  341. package/dist/scheduler/delivery.js +8 -4
  342. package/dist/scheduler/delivery.js.map +1 -1
  343. package/dist/scheduler/mcpSurface.d.ts +59 -10
  344. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  345. package/dist/scheduler/mcpSurface.js +276 -79
  346. package/dist/scheduler/mcpSurface.js.map +1 -1
  347. package/dist/scheduler/recurrence.d.ts +5 -0
  348. package/dist/scheduler/recurrence.d.ts.map +1 -1
  349. package/dist/scheduler/recurrence.js +12 -2
  350. package/dist/scheduler/recurrence.js.map +1 -1
  351. package/dist/scheduler/strictToolInput.d.ts +45 -0
  352. package/dist/scheduler/strictToolInput.d.ts.map +1 -0
  353. package/dist/scheduler/strictToolInput.js +155 -0
  354. package/dist/scheduler/strictToolInput.js.map +1 -0
  355. package/dist/scheduler/types.d.ts +5 -0
  356. package/dist/scheduler/types.d.ts.map +1 -1
  357. package/dist/scheduler/workerWatch.d.ts +23 -0
  358. package/dist/scheduler/workerWatch.d.ts.map +1 -0
  359. package/dist/scheduler/workerWatch.js +26 -0
  360. package/dist/scheduler/workerWatch.js.map +1 -0
  361. package/dist/selfUpdate/emittedSource.d.ts +11 -0
  362. package/dist/selfUpdate/emittedSource.d.ts.map +1 -0
  363. package/dist/selfUpdate/emittedSource.js +24 -0
  364. package/dist/selfUpdate/emittedSource.js.map +1 -0
  365. package/dist/selfUpdate/gitSource.d.ts +0 -6
  366. package/dist/selfUpdate/gitSource.d.ts.map +1 -1
  367. package/dist/selfUpdate/gitSource.js +2 -18
  368. package/dist/selfUpdate/gitSource.js.map +1 -1
  369. package/dist/selfUpdate/updatePending.d.ts +1 -1
  370. package/dist/sendErrorClassifier.d.ts +10 -0
  371. package/dist/sendErrorClassifier.d.ts.map +1 -1
  372. package/dist/sendErrorClassifier.js +22 -0
  373. package/dist/sendErrorClassifier.js.map +1 -1
  374. package/dist/state.d.ts +78 -7
  375. package/dist/state.d.ts.map +1 -1
  376. package/dist/state.js +125 -8
  377. package/dist/state.js.map +1 -1
  378. package/dist/stateFile.d.ts +9 -0
  379. package/dist/stateFile.d.ts.map +1 -0
  380. package/dist/stateFile.js +57 -0
  381. package/dist/stateFile.js.map +1 -0
  382. package/dist/stt/sttInstall.d.ts +7 -3
  383. package/dist/stt/sttInstall.d.ts.map +1 -1
  384. package/dist/stt/sttInstall.js +8 -4
  385. package/dist/stt/sttInstall.js.map +1 -1
  386. package/dist/stt/sttSettings.d.ts +2 -1
  387. package/dist/stt/sttSettings.d.ts.map +1 -1
  388. package/dist/stt/sttSettings.js +3 -2
  389. package/dist/stt/sttSettings.js.map +1 -1
  390. package/dist/stt/transcribeChain.js +2 -0
  391. package/dist/stt/transcribeChain.js.map +1 -1
  392. package/dist/testTimings.d.ts +13 -3
  393. package/dist/testTimings.d.ts.map +1 -1
  394. package/dist/testTimings.js +26 -2
  395. package/dist/testTimings.js.map +1 -1
  396. package/dist/todos/board.d.ts +83 -0
  397. package/dist/todos/board.d.ts.map +1 -0
  398. package/dist/todos/board.js +227 -0
  399. package/dist/todos/board.js.map +1 -0
  400. package/dist/todos/format.d.ts +33 -0
  401. package/dist/todos/format.d.ts.map +1 -0
  402. package/dist/todos/format.js +90 -0
  403. package/dist/todos/format.js.map +1 -0
  404. package/dist/todos/merge.d.ts +46 -0
  405. package/dist/todos/merge.d.ts.map +1 -0
  406. package/dist/todos/merge.js +137 -0
  407. package/dist/todos/merge.js.map +1 -0
  408. package/dist/todos/midTurn.d.ts +75 -0
  409. package/dist/todos/midTurn.d.ts.map +1 -0
  410. package/dist/todos/midTurn.js +214 -0
  411. package/dist/todos/midTurn.js.map +1 -0
  412. package/dist/todos/nag.d.ts +85 -0
  413. package/dist/todos/nag.d.ts.map +1 -0
  414. package/dist/todos/nag.js +103 -0
  415. package/dist/todos/nag.js.map +1 -0
  416. package/dist/todos/order.d.ts +25 -0
  417. package/dist/todos/order.d.ts.map +1 -0
  418. package/dist/todos/order.js +61 -0
  419. package/dist/todos/order.js.map +1 -0
  420. package/dist/todos/projects.d.ts +102 -0
  421. package/dist/todos/projects.d.ts.map +1 -0
  422. package/dist/todos/projects.js +342 -0
  423. package/dist/todos/projects.js.map +1 -0
  424. package/dist/todos/registry.d.ts +64 -0
  425. package/dist/todos/registry.d.ts.map +1 -0
  426. package/dist/todos/registry.js +116 -0
  427. package/dist/todos/registry.js.map +1 -0
  428. package/dist/todos/reminderEngine.d.ts +78 -0
  429. package/dist/todos/reminderEngine.d.ts.map +1 -0
  430. package/dist/todos/reminderEngine.js +162 -0
  431. package/dist/todos/reminderEngine.js.map +1 -0
  432. package/dist/todos/store.d.ts +34 -0
  433. package/dist/todos/store.d.ts.map +1 -0
  434. package/dist/todos/store.js +208 -0
  435. package/dist/todos/store.js.map +1 -0
  436. package/dist/todos/tools.d.ts +26 -0
  437. package/dist/todos/tools.d.ts.map +1 -0
  438. package/dist/todos/tools.js +25 -0
  439. package/dist/todos/tools.js.map +1 -0
  440. package/dist/todos/types.d.ts +85 -0
  441. package/dist/todos/types.d.ts.map +1 -0
  442. package/dist/todos/types.js +30 -0
  443. package/dist/todos/types.js.map +1 -0
  444. package/dist/trackers/taskAgentLimit.d.ts +58 -0
  445. package/dist/trackers/taskAgentLimit.d.ts.map +1 -0
  446. package/dist/trackers/taskAgentLimit.js +62 -0
  447. package/dist/trackers/taskAgentLimit.js.map +1 -0
  448. package/dist/trackers/taskAgentSlots.d.ts +109 -0
  449. package/dist/trackers/taskAgentSlots.d.ts.map +1 -0
  450. package/dist/trackers/taskAgentSlots.js +227 -0
  451. package/dist/trackers/taskAgentSlots.js.map +1 -0
  452. package/dist/trackers/types.d.ts +14 -0
  453. package/dist/trackers/types.d.ts.map +1 -0
  454. package/dist/trackers/types.js +3 -0
  455. package/dist/trackers/types.js.map +1 -0
  456. package/dist/types.d.ts +80 -4
  457. package/dist/types.d.ts.map +1 -1
  458. package/dist/utils/adoptReplayGate.d.ts +16 -0
  459. package/dist/utils/adoptReplayGate.d.ts.map +1 -0
  460. package/dist/utils/adoptReplayGate.js +35 -0
  461. package/dist/utils/adoptReplayGate.js.map +1 -0
  462. package/dist/utils/agentPlugin.d.ts +113 -0
  463. package/dist/utils/agentPlugin.d.ts.map +1 -0
  464. package/dist/utils/agentPlugin.js +192 -0
  465. package/dist/utils/agentPlugin.js.map +1 -0
  466. package/dist/utils/autoContinueOnLimit.d.ts +7 -4
  467. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
  468. package/dist/utils/autoContinueOnLimit.js +8 -5
  469. package/dist/utils/autoContinueOnLimit.js.map +1 -1
  470. package/dist/utils/botSkills.d.ts +62 -0
  471. package/dist/utils/botSkills.d.ts.map +1 -0
  472. package/dist/utils/botSkills.js +53 -0
  473. package/dist/utils/botSkills.js.map +1 -0
  474. package/dist/utils/botSkillsSetting.d.ts +7 -0
  475. package/dist/utils/botSkillsSetting.d.ts.map +1 -0
  476. package/dist/utils/botSkillsSetting.js +9 -0
  477. package/dist/utils/botSkillsSetting.js.map +1 -0
  478. package/dist/utils/claudeCodeVersion.d.ts +7 -0
  479. package/dist/utils/claudeCodeVersion.d.ts.map +1 -1
  480. package/dist/utils/claudeCodeVersion.js +14 -1
  481. package/dist/utils/claudeCodeVersion.js.map +1 -1
  482. package/dist/utils/claudeCompactHook.d.ts +33 -15
  483. package/dist/utils/claudeCompactHook.d.ts.map +1 -1
  484. package/dist/utils/claudeCompactHook.js +36 -17
  485. package/dist/utils/claudeCompactHook.js.map +1 -1
  486. package/dist/utils/claudeCompactSummary.d.ts +15 -0
  487. package/dist/utils/claudeCompactSummary.d.ts.map +1 -0
  488. package/dist/utils/claudeCompactSummary.js +96 -0
  489. package/dist/utils/claudeCompactSummary.js.map +1 -0
  490. package/dist/utils/claudeLimitSwitch.d.ts +11 -9
  491. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
  492. package/dist/utils/claudeLimitSwitch.js +18 -16
  493. package/dist/utils/claudeLimitSwitch.js.map +1 -1
  494. package/dist/utils/claudeProfiles.d.ts +5 -0
  495. package/dist/utils/claudeProfiles.d.ts.map +1 -1
  496. package/dist/utils/claudeProfiles.js +14 -0
  497. package/dist/utils/claudeProfiles.js.map +1 -1
  498. package/dist/utils/claudeSessionTitle.d.ts +2 -1
  499. package/dist/utils/claudeSessionTitle.d.ts.map +1 -1
  500. package/dist/utils/claudeSessionTitle.js +14 -14
  501. package/dist/utils/claudeSessionTitle.js.map +1 -1
  502. package/dist/utils/claudeUsage.d.ts +95 -15
  503. package/dist/utils/claudeUsage.d.ts.map +1 -1
  504. package/dist/utils/claudeUsage.js +241 -41
  505. package/dist/utils/claudeUsage.js.map +1 -1
  506. package/dist/utils/claudeUsageRefresher.d.ts +10 -0
  507. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
  508. package/dist/utils/claudeUsageRefresher.js +11 -0
  509. package/dist/utils/claudeUsageRefresher.js.map +1 -1
  510. package/dist/utils/claudeUserEntry.d.ts +50 -0
  511. package/dist/utils/claudeUserEntry.d.ts.map +1 -0
  512. package/dist/utils/claudeUserEntry.js +120 -0
  513. package/dist/utils/claudeUserEntry.js.map +1 -0
  514. package/dist/utils/clearThreadOutputQueues.d.ts +4 -3
  515. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -1
  516. package/dist/utils/clearThreadOutputQueues.js +1 -1
  517. package/dist/utils/clearThreadOutputQueues.js.map +1 -1
  518. package/dist/utils/compactOnIdle.d.ts +33 -13
  519. package/dist/utils/compactOnIdle.d.ts.map +1 -1
  520. package/dist/utils/compactOnIdle.js +35 -15
  521. package/dist/utils/compactOnIdle.js.map +1 -1
  522. package/dist/utils/fallbackBridge.d.ts +5 -0
  523. package/dist/utils/fallbackBridge.d.ts.map +1 -1
  524. package/dist/utils/fallbackBridge.js +19 -3
  525. package/dist/utils/fallbackBridge.js.map +1 -1
  526. package/dist/utils/fallbackChain.d.ts +9 -3
  527. package/dist/utils/fallbackChain.d.ts.map +1 -1
  528. package/dist/utils/fallbackChain.js +21 -3
  529. package/dist/utils/fallbackChain.js.map +1 -1
  530. package/dist/utils/fileSendPlan.d.ts +6 -0
  531. package/dist/utils/fileSendPlan.d.ts.map +1 -1
  532. package/dist/utils/fileSendPlan.js +11 -0
  533. package/dist/utils/fileSendPlan.js.map +1 -1
  534. package/dist/utils/fileSendService.d.ts +7 -1
  535. package/dist/utils/fileSendService.d.ts.map +1 -1
  536. package/dist/utils/fileSendService.js +6 -2
  537. package/dist/utils/fileSendService.js.map +1 -1
  538. package/dist/utils/groupFinalizePlan.d.ts +8 -10
  539. package/dist/utils/groupFinalizePlan.d.ts.map +1 -1
  540. package/dist/utils/groupFinalizePlan.js +8 -12
  541. package/dist/utils/groupFinalizePlan.js.map +1 -1
  542. package/dist/utils/jsonStreamHost.d.ts +13 -0
  543. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  544. package/dist/utils/jsonStreamHost.js +13 -0
  545. package/dist/utils/jsonStreamHost.js.map +1 -1
  546. package/dist/utils/messageSendService.d.ts +5 -3
  547. package/dist/utils/messageSendService.d.ts.map +1 -1
  548. package/dist/utils/messageSendService.js +12 -5
  549. package/dist/utils/messageSendService.js.map +1 -1
  550. package/dist/utils/openCodeCompactPlugin.d.ts +39 -14
  551. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
  552. package/dist/utils/openCodeCompactPlugin.js +106 -38
  553. package/dist/utils/openCodeCompactPlugin.js.map +1 -1
  554. package/dist/utils/promptDelivery.d.ts +29 -12
  555. package/dist/utils/promptDelivery.d.ts.map +1 -1
  556. package/dist/utils/promptDelivery.js +13 -5
  557. package/dist/utils/promptDelivery.js.map +1 -1
  558. package/dist/utils/sentKindsSummary.d.ts +10 -0
  559. package/dist/utils/sentKindsSummary.d.ts.map +1 -0
  560. package/dist/utils/sentKindsSummary.js +18 -0
  561. package/dist/utils/sentKindsSummary.js.map +1 -0
  562. package/dist/utils/telegramError.d.ts +6 -0
  563. package/dist/utils/telegramError.d.ts.map +1 -1
  564. package/dist/utils/telegramError.js +12 -0
  565. package/dist/utils/telegramError.js.map +1 -1
  566. package/dist/utils/topicView.d.ts +1 -1
  567. package/dist/utils/topicView.js +1 -1
  568. package/dist/utils/transcribeAudio.d.ts +10 -0
  569. package/dist/utils/transcribeAudio.d.ts.map +1 -1
  570. package/dist/utils/transcribeAudio.js +22 -3
  571. package/dist/utils/transcribeAudio.js.map +1 -1
  572. package/dist/utils/transcriptErrorTime.d.ts +8 -0
  573. package/dist/utils/transcriptErrorTime.d.ts.map +1 -0
  574. package/dist/utils/transcriptErrorTime.js +56 -0
  575. package/dist/utils/transcriptErrorTime.js.map +1 -0
  576. package/dist/utils/wedgeRecovery.d.ts +2 -0
  577. package/dist/utils/wedgeRecovery.d.ts.map +1 -1
  578. package/dist/utils/wedgeRecovery.js +1 -1
  579. package/dist/utils/wedgeRecovery.js.map +1 -1
  580. package/package.json +11 -3
  581. package/remoteRun/runner.sh +1242 -0
  582. package/stt/gigaam_sidecar.py +555 -50
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/remoteRun/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @description `.remote-run` in the project root: what a project tells remote-run about itself. Optional; `key: value` lines, `#`
3
+ * starts a comment at the start of a line or after whitespace, blank lines are ignored. An unknown key or a bad value is an error
4
+ * that names the line.
5
+ *
6
+ * pull: e2e/artifacts test-results files that come back (only what the job created or changed)
7
+ * install: yarn install --immutable replaces the detected dependencies command; `install: none` turns the step off
8
+ * install-key: yarn.lock package.json patches what the dependencies step is keyed on (replaces the default)
9
+ * exclude: fixtures/huge more paths that are never sent
10
+ * send: .env.test secret-looking files that ARE sent (also when git ignores them)
11
+ *
12
+ * The list keys (`pull`, `exclude`, `send`, `install-key`) take whitespace-separated patterns (`pathPatterns.ts`) and may repeat;
13
+ * `install` and `install-key` may each appear once.
14
+ */
15
+ /** The value of `install:` that turns the dependencies step off. */
16
+ export declare const installNone = "none";
17
+ export interface ProjectConfig {
18
+ pull: string[];
19
+ /** The command, `none` for no step, `null` when the file says nothing (the lockfile's default applies). */
20
+ install: string | null;
21
+ /** The patterns the dependencies step is keyed on; `null` = the default key set. */
22
+ installKey: string[] | null;
23
+ exclude: string[];
24
+ send: string[];
25
+ }
26
+ export type ProjectConfigParse = {
27
+ ok: true;
28
+ config: ProjectConfig;
29
+ } | {
30
+ ok: false;
31
+ errors: string[];
32
+ };
33
+ export declare function createEmptyProjectConfig(): ProjectConfig;
34
+ /** @description The file name, for messages. */
35
+ export declare const projectConfigName = ".remote-run";
36
+ /** @description Parse the text of a `.remote-run`; every problem is reported (not just the first), each naming its line. */
37
+ export declare function parseProjectConfig(text: string): ProjectConfigParse;
38
+ //# sourceMappingURL=projectConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/remoteRun/projectConfig.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,oEAAoE;AACpE,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2GAA2G;IAC3G,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oFAAoF;IACpF,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAMvG,wBAAgB,wBAAwB,IAAI,aAAa,CAExD;AAED,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,gBAAwB,CAAC;AAEvD,4HAA4H;AAC5H,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAiDnE"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectConfigName = exports.installNone = void 0;
4
+ exports.createEmptyProjectConfig = createEmptyProjectConfig;
5
+ exports.parseProjectConfig = parseProjectConfig;
6
+ const pathPatterns_1 = require("./pathPatterns");
7
+ /**
8
+ * @description `.remote-run` in the project root: what a project tells remote-run about itself. Optional; `key: value` lines, `#`
9
+ * starts a comment at the start of a line or after whitespace, blank lines are ignored. An unknown key or a bad value is an error
10
+ * that names the line.
11
+ *
12
+ * pull: e2e/artifacts test-results files that come back (only what the job created or changed)
13
+ * install: yarn install --immutable replaces the detected dependencies command; `install: none` turns the step off
14
+ * install-key: yarn.lock package.json patches what the dependencies step is keyed on (replaces the default)
15
+ * exclude: fixtures/huge more paths that are never sent
16
+ * send: .env.test secret-looking files that ARE sent (also when git ignores them)
17
+ *
18
+ * The list keys (`pull`, `exclude`, `send`, `install-key`) take whitespace-separated patterns (`pathPatterns.ts`) and may repeat;
19
+ * `install` and `install-key` may each appear once.
20
+ */
21
+ /** The value of `install:` that turns the dependencies step off. */
22
+ exports.installNone = 'none';
23
+ const projectConfigFileName = '.remote-run';
24
+ const listKeys = ['pull', 'exclude', 'send', 'install-key'];
25
+ const commentPattern = /(^|\s)#.*$/;
26
+ function createEmptyProjectConfig() {
27
+ return { pull: [], install: null, installKey: null, exclude: [], send: [] };
28
+ }
29
+ /** @description The file name, for messages. */
30
+ exports.projectConfigName = projectConfigFileName;
31
+ /** @description Parse the text of a `.remote-run`; every problem is reported (not just the first), each naming its line. */
32
+ function parseProjectConfig(text) {
33
+ const config = createEmptyProjectConfig();
34
+ const errors = [];
35
+ const seenKeys = new Set();
36
+ text.split(/\r?\n/).forEach((rawLine, index) => {
37
+ const lineNumber = index + 1;
38
+ const line = rawLine.replace(commentPattern, '$1').trim();
39
+ if (line === '')
40
+ return;
41
+ const separator = line.indexOf(':');
42
+ if (separator <= 0) {
43
+ errors.push(`${projectConfigFileName} line ${lineNumber}: expected "key: value"`);
44
+ return;
45
+ }
46
+ const key = line.slice(0, separator).trim();
47
+ const value = line.slice(separator + 1).trim();
48
+ const fail = (message) => {
49
+ errors.push(`${projectConfigFileName} line ${lineNumber}: ${message}`);
50
+ };
51
+ if (key !== 'install' && !listKeys.some((listKey) => listKey === key)) {
52
+ fail(`unknown key "${key}" (known: pull, install, install-key, exclude, send)`);
53
+ return;
54
+ }
55
+ if ((key === 'install' || key === 'install-key') && seenKeys.has(key)) {
56
+ fail(`"${key}" is given twice`);
57
+ return;
58
+ }
59
+ seenKeys.add(key);
60
+ if (value === '') {
61
+ fail(`"${key}" has no value`);
62
+ return;
63
+ }
64
+ if (key === 'install') {
65
+ config.install = value;
66
+ return;
67
+ }
68
+ const patterns = value.split(/\s+/);
69
+ for (const pattern of patterns) {
70
+ const problem = (0, pathPatterns_1.getPathPatternProblem)(pattern);
71
+ if (problem !== null) {
72
+ fail(`"${key}" pattern ${problem}`);
73
+ return;
74
+ }
75
+ }
76
+ if (key === 'install-key')
77
+ config.installKey = patterns;
78
+ else if (key === 'pull')
79
+ config.pull.push(...patterns);
80
+ else if (key === 'exclude')
81
+ config.exclude.push(...patterns);
82
+ else
83
+ config.send.push(...patterns);
84
+ });
85
+ return errors.length === 0 ? { ok: true, config } : { ok: false, errors };
86
+ }
87
+ //# sourceMappingURL=projectConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/remoteRun/projectConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { CliIo } from './output';
2
+ /**
3
+ * @description `charness remote-run …` — send a command to a runner (a machine reached by ordinary ssh, listed in
4
+ * `~/.config/charness/runners.json`) and get its output, exit code and declared result files back as if it had run here. The
5
+ * contracts are in `src/remoteRun/README.md`; the user-facing description is `docs/remote-run.md`.
6
+ *
7
+ * The CLI loads NO env file (it would read the PROJECT's `.env`: agents run it from project folders) and never touches `DATA_DIR` or
8
+ * the state store: it needs nothing from an instance.
9
+ */
10
+ export declare const remoteRunUsage = "Usage:\n charness remote-run [--runner <name>] [--needs android|ios|docker|playwright] [--group <g>] [--timeout <dur>]\n [--with-git] [-e NAME=VALUE]\u2026 [--bg] <command\u2026>\n run <command> on a runner, in the same folder of a copy of this git project;\n output and exit code come back, interrupt or timeout kills the remote job.\n --bg prints a job id and returns (long runs).\n Options go BEFORE the command; a command that starts with a subcommand name goes after --\n charness remote-run runners the runners: online, hardware, load, what each can do\n charness remote-run ls [--all] jobs of this project (all projects with --all)\n charness remote-run status <id> one job\n charness remote-run logs <id> [-f] [--tail N]\n charness remote-run wait <id> block until the job ends, fetch its files, exit with its code\n charness remote-run kill <id>\n charness remote-run fetch <id> bring a finished job's result files back (again)\n charness remote-run exec [--runner <name>] <command\u2026>\n one-off command in the runner's copy as the last job left it (no sync)\nExit codes: the command's own; 125 remote-run failed, 124 timeout, 130/143/129 interrupted (SIGINT/SIGTERM/SIGHUP), 137 job killed, 2 bad usage.\nSetup: docs/remote-run.md\n";
11
+ /** @description The io of the real process. */
12
+ export declare function createProcessIo(): CliIo;
13
+ /** @description Run the command line (the words after `remote-run`); resolves with the exit code. */
14
+ export declare function runRemoteRunCli(argv: readonly string[], io?: CliIo): Promise<number>;
15
+ //# sourceMappingURL=remoteRunCli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteRunCli.d.ts","sourceRoot":"","sources":["../../src/remoteRun/remoteRunCli.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMtC;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc,q9CAkB1B,CAAC;AAEF,+CAA+C;AAC/C,wBAAgB,eAAe,IAAI,KAAK,CAQvC;AAqBD,qGAAqG;AACrG,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,GAAE,KAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoC7G"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.remoteRunUsage = void 0;
37
+ exports.createProcessIo = createProcessIo;
38
+ exports.runRemoteRunCli = runRemoteRunCli;
39
+ const os = __importStar(require("os"));
40
+ const commands_1 = require("./commands");
41
+ const cliArgs_1 = require("./cliArgs");
42
+ const exitCodes_1 = require("./exitCodes");
43
+ const leaseTiming_1 = require("./leaseTiming");
44
+ const remoteRunError_1 = require("./remoteRunError");
45
+ const runnerClient_1 = require("./runnerClient");
46
+ const runnersConfig_1 = require("./runnersConfig");
47
+ const ssh_1 = require("./ssh");
48
+ /**
49
+ * @description `charness remote-run …` — send a command to a runner (a machine reached by ordinary ssh, listed in
50
+ * `~/.config/charness/runners.json`) and get its output, exit code and declared result files back as if it had run here. The
51
+ * contracts are in `src/remoteRun/README.md`; the user-facing description is `docs/remote-run.md`.
52
+ *
53
+ * The CLI loads NO env file (it would read the PROJECT's `.env`: agents run it from project folders) and never touches `DATA_DIR` or
54
+ * the state store: it needs nothing from an instance.
55
+ */
56
+ exports.remoteRunUsage = `Usage:
57
+ charness remote-run [--runner <name>] [--needs android|ios|docker|playwright] [--group <g>] [--timeout <dur>]
58
+ [--with-git] [-e NAME=VALUE]… [--bg] <command…>
59
+ run <command> on a runner, in the same folder of a copy of this git project;
60
+ output and exit code come back, interrupt or timeout kills the remote job.
61
+ --bg prints a job id and returns (long runs).
62
+ Options go BEFORE the command; a command that starts with a subcommand name goes after --
63
+ charness remote-run runners the runners: online, hardware, load, what each can do
64
+ charness remote-run ls [--all] jobs of this project (all projects with --all)
65
+ charness remote-run status <id> one job
66
+ charness remote-run logs <id> [-f] [--tail N]
67
+ charness remote-run wait <id> block until the job ends, fetch its files, exit with its code
68
+ charness remote-run kill <id>
69
+ charness remote-run fetch <id> bring a finished job's result files back (again)
70
+ charness remote-run exec [--runner <name>] <command…>
71
+ one-off command in the runner's copy as the last job left it (no sync)
72
+ Exit codes: the command's own; 125 remote-run failed, 124 timeout, 130/143/129 interrupted (SIGINT/SIGTERM/SIGHUP), 137 job killed, 2 bad usage.
73
+ Setup: docs/remote-run.md
74
+ `;
75
+ /** @description The io of the real process. */
76
+ function createProcessIo() {
77
+ return {
78
+ stdout: (text) => { process.stdout.write(text); },
79
+ stderr: (text) => { process.stderr.write(text); },
80
+ cwd: process.cwd(),
81
+ env: process.env,
82
+ homeDir: os.homedir(),
83
+ };
84
+ }
85
+ function createContext(io) {
86
+ const load = (0, runnersConfig_1.loadRunnersConfig)(io.homeDir);
87
+ if (load.status === 'missing') {
88
+ throw new remoteRunError_1.RemoteRunError(`no runners are set up: ${(0, runnersConfig_1.getRunnersConfigPath)(io.homeDir)} does not exist (docs/remote-run.md explains how to add one)`);
89
+ }
90
+ if (load.status === 'invalid')
91
+ throw new remoteRunError_1.RemoteRunError(load.errors.join('\n'));
92
+ if (load.config.runners.length === 0)
93
+ throw new remoteRunError_1.RemoteRunError(`${(0, runnersConfig_1.getRunnersConfigPath)(io.homeDir)} lists no runners`);
94
+ const cacheDir = (0, ssh_1.getRemoteRunCacheDir)(io.env, io.homeDir);
95
+ (0, ssh_1.ensureRemoteRunCacheDir)(cacheDir);
96
+ return {
97
+ io,
98
+ config: load.config,
99
+ cacheDir,
100
+ script: (0, runnerClient_1.readRunnerScript)(),
101
+ leaseMs: (0, leaseTiming_1.readRemoteRunLeaseMs)(io.env),
102
+ now: Date.now,
103
+ };
104
+ }
105
+ /** @description Run the command line (the words after `remote-run`); resolves with the exit code. */
106
+ async function runRemoteRunCli(argv, io = createProcessIo()) {
107
+ const parsed = (0, cliArgs_1.parseRemoteRunArgs)(argv);
108
+ if (!parsed.ok) {
109
+ io.stderr(`remote-run: ${parsed.error}\n\n${exports.remoteRunUsage}`);
110
+ return exitCodes_1.remoteRunExitCodes.usage;
111
+ }
112
+ const { command } = parsed;
113
+ if (command.kind === 'help') {
114
+ if (argv.length === 0) {
115
+ io.stderr(exports.remoteRunUsage);
116
+ return exitCodes_1.remoteRunExitCodes.usage;
117
+ }
118
+ io.stdout(exports.remoteRunUsage);
119
+ return 0;
120
+ }
121
+ try {
122
+ const context = createContext(io);
123
+ switch (command.kind) {
124
+ case 'run': return await (0, commands_1.runRunCommand)(command, context);
125
+ case 'runners': return await (0, commands_1.runRunnersCommand)(context);
126
+ case 'ls': return await (0, commands_1.runLsCommand)(command, context);
127
+ case 'status': return await (0, commands_1.runStatusCommand)(command, context);
128
+ case 'logs': return await (0, commands_1.runLogsCommand)(command, context);
129
+ case 'wait': return await (0, commands_1.runWaitCommand)(command, context);
130
+ case 'fetch': return await (0, commands_1.runFetchCommand)(command, context);
131
+ case 'kill': return await (0, commands_1.runKillCommand)(command, context);
132
+ case 'exec': return await (0, commands_1.runExecCommand)(command, context);
133
+ }
134
+ }
135
+ catch (error) {
136
+ if (error instanceof remoteRunError_1.RemoteRunError) {
137
+ io.stderr(`remote-run: ${error.message}\n`);
138
+ return error.exitCode;
139
+ }
140
+ io.stderr(`remote-run: unexpected error: ${error instanceof Error ? error.message : 'unknown'}\n`);
141
+ return exitCodes_1.remoteRunExitCodes.failed;
142
+ }
143
+ }
144
+ //# sourceMappingURL=remoteRunCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteRunCli.js","sourceRoot":"","sources":["../../src/remoteRun/remoteRunCli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description A failure remote-run reports as its own (never the command's): the message goes to stderr, the exit code is the
3
+ * given one (125 unless the cause is a usage mistake or a timeout).
4
+ */
5
+ export declare class RemoteRunError extends Error {
6
+ readonly exitCode: number;
7
+ constructor(message: string, exitCode?: number);
8
+ }
9
+ /** @description The runner could not be reached (ssh failed before the script ran): `reason` is the short ssh-side cause the `runners` view shows. */
10
+ export declare class RunnerUnreachableError extends RemoteRunError {
11
+ readonly reason: string;
12
+ constructor(runnerName: string, reason: string);
13
+ }
14
+ //# sourceMappingURL=remoteRunError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteRunError.d.ts","sourceRoot":"","sources":["../../src/remoteRun/remoteRunError.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC;CAK1E;AAED,sJAAsJ;AACtJ,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK/C"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunnerUnreachableError = exports.RemoteRunError = void 0;
4
+ const exitCodes_1 = require("./exitCodes");
5
+ /**
6
+ * @description A failure remote-run reports as its own (never the command's): the message goes to stderr, the exit code is the
7
+ * given one (125 unless the cause is a usage mistake or a timeout).
8
+ */
9
+ class RemoteRunError extends Error {
10
+ exitCode;
11
+ constructor(message, exitCode = exitCodes_1.remoteRunExitCodes.failed) {
12
+ super(message);
13
+ this.name = 'RemoteRunError';
14
+ this.exitCode = exitCode;
15
+ }
16
+ }
17
+ exports.RemoteRunError = RemoteRunError;
18
+ /** @description The runner could not be reached (ssh failed before the script ran): `reason` is the short ssh-side cause the `runners` view shows. */
19
+ class RunnerUnreachableError extends RemoteRunError {
20
+ reason;
21
+ constructor(runnerName, reason) {
22
+ super(`runner "${runnerName}" is unreachable — ${reason}`);
23
+ this.name = 'RunnerUnreachableError';
24
+ this.reason = reason;
25
+ }
26
+ }
27
+ exports.RunnerUnreachableError = RunnerUnreachableError;
28
+ //# sourceMappingURL=remoteRunError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteRunError.js","sourceRoot":"","sources":["../../src/remoteRun/remoteRunError.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AAEjD;;;GAGG;AACH,MAAa,cAAe,SAAQ,KAAK;IAC9B,QAAQ,CAAS;IAE1B,YAAY,OAAe,EAAE,WAAmB,8BAAkB,CAAC,MAAM;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,wCAQC;AAED,sJAAsJ;AACtJ,MAAa,sBAAuB,SAAQ,cAAc;IAC/C,MAAM,CAAS;IAExB,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,WAAW,UAAU,sBAAsB,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AARD,wDAQC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description `rsync` as a spawned process with a deadline. Exit 24 ("some source files vanished", a file edited while it was being
3
+ * sent) is not a failure: the next submit sends the new state. The ssh half is the `-e` command the caller built.
4
+ */
5
+ /** A first send of a large project is the slowest thing remote-run does. */
6
+ export declare const syncTimeoutMs: number;
7
+ export interface RsyncResult {
8
+ isOk: boolean;
9
+ /** The last of rsync's stderr, for a message. */
10
+ errorTail: string;
11
+ }
12
+ /** @description Run rsync with `args`, `input` on its stdin (the NUL-separated file list). */
13
+ export declare function runRsync(args: readonly string[], options?: {
14
+ input?: string;
15
+ timeoutMs?: number;
16
+ }): Promise<RsyncResult>;
17
+ //# sourceMappingURL=rsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsync.d.ts","sourceRoot":"","sources":["../../src/remoteRun/rsync.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,aAAa,QAAiB,CAAC;AAI5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB5H"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncTimeoutMs = void 0;
4
+ exports.runRsync = runRsync;
5
+ const child_process_1 = require("child_process");
6
+ /**
7
+ * @description `rsync` as a spawned process with a deadline. Exit 24 ("some source files vanished", a file edited while it was being
8
+ * sent) is not a failure: the next submit sends the new state. The ssh half is the `-e` command the caller built.
9
+ */
10
+ /** A first send of a large project is the slowest thing remote-run does. */
11
+ exports.syncTimeoutMs = 30 * 60 * 1000;
12
+ const rsyncVanishedFilesExitCode = 24;
13
+ const stderrTailLength = 600;
14
+ /** @description Run rsync with `args`, `input` on its stdin (the NUL-separated file list). */
15
+ function runRsync(args, options = {}) {
16
+ return new Promise((resolve) => {
17
+ const child = (0, child_process_1.spawn)('rsync', [...args], { stdio: ['pipe', 'ignore', 'pipe'] });
18
+ let stderr = '';
19
+ let isTimedOut = false;
20
+ const timer = setTimeout(() => {
21
+ isTimedOut = true;
22
+ child.kill('SIGKILL');
23
+ }, options.timeoutMs ?? exports.syncTimeoutMs);
24
+ child.stderr.setEncoding('utf8');
25
+ child.stderr.on('data', (chunk) => { stderr += chunk; });
26
+ child.stdin.on('error', () => { });
27
+ child.on('error', (error) => {
28
+ clearTimeout(timer);
29
+ resolve({ isOk: false, errorTail: `could not start rsync: ${error.message}` });
30
+ });
31
+ child.on('close', (exitCode) => {
32
+ clearTimeout(timer);
33
+ const isOk = exitCode === 0 || exitCode === rsyncVanishedFilesExitCode;
34
+ resolve({ isOk, errorTail: isTimedOut ? 'rsync ran past its deadline' : stderr.trim().slice(-stderrTailLength) });
35
+ });
36
+ child.stdin.end(options.input ?? '');
37
+ });
38
+ }
39
+ //# sourceMappingURL=rsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsync.js","sourceRoot":"","sources":["../../src/remoteRun/rsync.ts"],"names":[],"mappings":";;;AAmBA,4BAuBC;AA1CD,iDAAsC;AAEtC;;;GAGG;AAEH,4EAA4E;AAC/D,QAAA,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAQ7B,8FAA8F;AAC9F,SAAgB,QAAQ,CAAC,IAAuB,EAAE,UAAkD,EAAE;IACpG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,qBAAa,CAAC,CAAC;QACvC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAmD,CAAC,CAAC,CAAC;QACnF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC7B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,0BAA0B,CAAC;YACvE,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { RunnerConfig } from './runnersConfig';
2
+ import { spawnSshStream, type SshRunResult } from './ssh';
3
+ /** An ordinary call: a prepare may start the Pueue daemon, a result or a kill is quicker. */
4
+ export declare const shortCallTimeoutMs: number;
5
+ export interface RunnerScript {
6
+ /** `runner-<sha8>.sh` */
7
+ name: string;
8
+ text: string;
9
+ }
10
+ /** @description `remoteRun/runner.sh` at the package root, resolved from both `src/remoteRun` (tsx) and `dist/remoteRun` (built): two levels up. */
11
+ export declare function getRunnerScriptPath(): string;
12
+ export declare function readRunnerScript(scriptPath?: string): RunnerScript;
13
+ export interface RunnerClient {
14
+ readonly runner: RunnerConfig;
15
+ readonly cacheDir: string;
16
+ /** The `-e` command of rsync for this runner. */
17
+ readonly rsyncSshCommand: string;
18
+ /**
19
+ * Upload the script when the runner does not have this version; throws a {@link RunnerUnreachableError} when the runner cannot be
20
+ * reached. `signal` ends the ssh calls it makes from outside (a shared deadline).
21
+ */
22
+ ensureScript: (signal?: AbortSignal) => Promise<void>;
23
+ /** The runner's work dir as an absolute path (a configured `~/…` is resolved on the runner once). */
24
+ getAbsoluteWorkDir: () => Promise<string>;
25
+ /** One subcommand of the script; never throws for a non-zero exit (the caller reads it). */
26
+ call: (subcommand: string, args: readonly string[], options?: {
27
+ input?: string;
28
+ timeoutMs?: number;
29
+ signal?: AbortSignal;
30
+ }) => Promise<SshRunResult>;
31
+ /** The same, but a non-zero exit or a timeout is a {@link RemoteRunError} carrying the runner's own message. */
32
+ callOrThrow: (subcommand: string, args: readonly string[], options?: {
33
+ input?: string;
34
+ timeoutMs?: number;
35
+ signal?: AbortSignal;
36
+ }) => Promise<string>;
37
+ /** The long-lived form: a spawned ssh whose streams the caller handles. */
38
+ stream: (subcommand: string, args: readonly string[]) => ReturnType<typeof spawnSshStream>;
39
+ }
40
+ /**
41
+ * @description The first useful line of a failed ssh's stderr, for a message (never the whole text: it may quote the destination). A
42
+ * rejected key from a process with no ssh-agent (`SSH_AUTH_SOCK` unset — a tracker agent such as Jira's starts with a minimal environment
43
+ * that has none) says what that means and the way out: a key that is only held by an agent works for a Telegram agent and not for that one.
44
+ */
45
+ export declare function describeSshFailure(result: SshRunResult, env?: NodeJS.ProcessEnv): string;
46
+ /** @description The runner script's own refusal in a stderr text («remote-run-runner: no such job: x» → «no such job: x»): the last line, without the script's prefix. */
47
+ export declare function describeRunnerRefusal(stderr: string, fallback: string): string;
48
+ /** @description Create the client of `runner`. `script` and the spawn functions are injectable for the tests. */
49
+ export declare function createRunnerClient(runner: RunnerConfig, cacheDir: string, script?: RunnerScript): RunnerClient;
50
+ //# sourceMappingURL=runnerClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runnerClient.d.ts","sourceRoot":"","sources":["../../src/remoteRun/runnerClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAOL,cAAc,EACd,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAUf,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oJAAoJ;AACpJ,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,MAA8B,GAAG,YAAY,CAGzF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,qGAAqG;IACrG,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,4FAA4F;IAC5F,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrJ,gHAAgH;IAChH,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtJ,2EAA2E;IAC3E,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CAC5F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAYrG;AAED,0KAA0K;AAC1K,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,YAAiC,GAAG,YAAY,CA8ClI"}