charness 3.6.1 → 3.8.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 (828) hide show
  1. package/CHANGELOG.md +297 -0
  2. package/DEVELOPMENT.md +35 -5
  3. package/MIGRATION_RENAME_TO_CHARNESS.md +3 -2
  4. package/README.md +84 -782
  5. package/SETUP.md +48 -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 +97 -7
  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 +1360 -387
  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 +55 -1
  54. package/dist/cli.js.map +1 -1
  55. package/dist/configDirFile.d.ts +7 -3
  56. package/dist/configDirFile.d.ts.map +1 -1
  57. package/dist/configDirFile.js +12 -5
  58. package/dist/configDirFile.js.map +1 -1
  59. package/dist/connectors/jira/answerSink.d.ts +10 -0
  60. package/dist/connectors/jira/answerSink.d.ts.map +1 -1
  61. package/dist/connectors/jira/answerSink.js +13 -0
  62. package/dist/connectors/jira/answerSink.js.map +1 -1
  63. package/dist/connectors/jira/config.d.ts +2 -0
  64. package/dist/connectors/jira/config.d.ts.map +1 -1
  65. package/dist/connectors/jira/config.js +9 -1
  66. package/dist/connectors/jira/config.js.map +1 -1
  67. package/dist/connectors/jira/connector.d.ts +11 -1
  68. package/dist/connectors/jira/connector.d.ts.map +1 -1
  69. package/dist/connectors/jira/connector.js +7 -0
  70. package/dist/connectors/jira/connector.js.map +1 -1
  71. package/dist/connectors/jira/inbound.d.ts +27 -4
  72. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  73. package/dist/connectors/jira/inbound.js +69 -8
  74. package/dist/connectors/jira/inbound.js.map +1 -1
  75. package/dist/connectors/jira/issueBlocks.d.ts +5 -0
  76. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
  77. package/dist/connectors/jira/issueBlocks.js +11 -0
  78. package/dist/connectors/jira/issueBlocks.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 +13 -3
  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/runners.d.ts +52 -0
  124. package/dist/connectors/telegram/commands/runners.d.ts.map +1 -0
  125. package/dist/connectors/telegram/commands/runners.js +486 -0
  126. package/dist/connectors/telegram/commands/runners.js.map +1 -0
  127. package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -1
  128. package/dist/connectors/telegram/commands/selfUpdate.js +1 -11
  129. package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -1
  130. package/dist/connectors/telegram/commands/taskAgents.d.ts +22 -0
  131. package/dist/connectors/telegram/commands/taskAgents.d.ts.map +1 -0
  132. package/dist/connectors/telegram/commands/taskAgents.js +104 -0
  133. package/dist/connectors/telegram/commands/taskAgents.js.map +1 -0
  134. package/dist/connectors/telegram/commands/todo.d.ts +82 -0
  135. package/dist/connectors/telegram/commands/todo.d.ts.map +1 -0
  136. package/dist/connectors/telegram/commands/todo.js +384 -0
  137. package/dist/connectors/telegram/commands/todo.js.map +1 -0
  138. package/dist/connectors/telegram/commands/topicCommand.d.ts +6 -2
  139. package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -1
  140. package/dist/connectors/telegram/commands/topicCommand.js +6 -9
  141. package/dist/connectors/telegram/commands/topicCommand.js.map +1 -1
  142. package/dist/connectors/telegram/openBindMessages.d.ts +45 -0
  143. package/dist/connectors/telegram/openBindMessages.d.ts.map +1 -0
  144. package/dist/connectors/telegram/openBindMessages.js +67 -0
  145. package/dist/connectors/telegram/openBindMessages.js.map +1 -0
  146. package/dist/connectors/telegram/outputFlushPlan.d.ts +49 -0
  147. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -1
  148. package/dist/connectors/telegram/outputFlushPlan.js +46 -0
  149. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -1
  150. package/dist/connectors/telegram/pendingTopicName.d.ts +26 -0
  151. package/dist/connectors/telegram/pendingTopicName.d.ts.map +1 -0
  152. package/dist/connectors/telegram/pendingTopicName.js +27 -0
  153. package/dist/connectors/telegram/pendingTopicName.js.map +1 -0
  154. package/dist/connectors/telegram/runnerPairingMessages.d.ts +27 -0
  155. package/dist/connectors/telegram/runnerPairingMessages.d.ts.map +1 -0
  156. package/dist/connectors/telegram/runnerPairingMessages.js +105 -0
  157. package/dist/connectors/telegram/runnerPairingMessages.js.map +1 -0
  158. package/dist/connectors/test/connector.d.ts.map +1 -1
  159. package/dist/connectors/test/connector.js +6 -1
  160. package/dist/connectors/test/connector.js.map +1 -1
  161. package/dist/i18n/de.d.ts.map +1 -1
  162. package/dist/i18n/de.js +148 -7
  163. package/dist/i18n/de.js.map +1 -1
  164. package/dist/i18n/en.d.ts.map +1 -1
  165. package/dist/i18n/en.js +148 -7
  166. package/dist/i18n/en.js.map +1 -1
  167. package/dist/i18n/es.d.ts.map +1 -1
  168. package/dist/i18n/es.js +148 -7
  169. package/dist/i18n/es.js.map +1 -1
  170. package/dist/i18n/fr.d.ts.map +1 -1
  171. package/dist/i18n/fr.js +148 -7
  172. package/dist/i18n/fr.js.map +1 -1
  173. package/dist/i18n/hi.d.ts.map +1 -1
  174. package/dist/i18n/hi.js +148 -7
  175. package/dist/i18n/hi.js.map +1 -1
  176. package/dist/i18n/ja.d.ts.map +1 -1
  177. package/dist/i18n/ja.js +148 -7
  178. package/dist/i18n/ja.js.map +1 -1
  179. package/dist/i18n/ka.d.ts.map +1 -1
  180. package/dist/i18n/ka.js +148 -7
  181. package/dist/i18n/ka.js.map +1 -1
  182. package/dist/i18n/pt.d.ts.map +1 -1
  183. package/dist/i18n/pt.js +148 -7
  184. package/dist/i18n/pt.js.map +1 -1
  185. package/dist/i18n/ru.d.ts.map +1 -1
  186. package/dist/i18n/ru.js +148 -7
  187. package/dist/i18n/ru.js.map +1 -1
  188. package/dist/i18n/uk.d.ts.map +1 -1
  189. package/dist/i18n/uk.js +148 -7
  190. package/dist/i18n/uk.js.map +1 -1
  191. package/dist/i18n/uz.d.ts.map +1 -1
  192. package/dist/i18n/uz.js +148 -7
  193. package/dist/i18n/uz.js.map +1 -1
  194. package/dist/i18n/zh.d.ts.map +1 -1
  195. package/dist/i18n/zh.js +148 -7
  196. package/dist/i18n/zh.js.map +1 -1
  197. package/dist/i18n.d.ts +1 -1
  198. package/dist/i18n.js +1 -1
  199. package/dist/installManager.d.ts +70 -1
  200. package/dist/installManager.d.ts.map +1 -1
  201. package/dist/installManager.js +125 -13
  202. package/dist/installManager.js.map +1 -1
  203. package/dist/instanceSettings.d.ts +50 -1
  204. package/dist/instanceSettings.d.ts.map +1 -1
  205. package/dist/instanceSettings.js +119 -26
  206. package/dist/instanceSettings.js.map +1 -1
  207. package/dist/openCodeQuestionFlow.d.ts +30 -0
  208. package/dist/openCodeQuestionFlow.d.ts.map +1 -1
  209. package/dist/openCodeQuestionFlow.js +43 -0
  210. package/dist/openCodeQuestionFlow.js.map +1 -1
  211. package/dist/outputTrace.d.ts +6 -0
  212. package/dist/outputTrace.d.ts.map +1 -1
  213. package/dist/outputTrace.js +24 -1
  214. package/dist/outputTrace.js.map +1 -1
  215. package/dist/postToSession.d.ts +20 -5
  216. package/dist/postToSession.d.ts.map +1 -1
  217. package/dist/postToSession.js +38 -7
  218. package/dist/postToSession.js.map +1 -1
  219. package/dist/remoteRun/cliArgs.d.ts +75 -0
  220. package/dist/remoteRun/cliArgs.d.ts.map +1 -0
  221. package/dist/remoteRun/cliArgs.js +206 -0
  222. package/dist/remoteRun/cliArgs.js.map +1 -0
  223. package/dist/remoteRun/commands.d.ts +77 -0
  224. package/dist/remoteRun/commands.d.ts.map +1 -0
  225. package/dist/remoteRun/commands.js +327 -0
  226. package/dist/remoteRun/commands.js.map +1 -0
  227. package/dist/remoteRun/depsPlan.d.ts +16 -0
  228. package/dist/remoteRun/depsPlan.d.ts.map +1 -0
  229. package/dist/remoteRun/depsPlan.js +82 -0
  230. package/dist/remoteRun/depsPlan.js.map +1 -0
  231. package/dist/remoteRun/exitCodes.d.ts +34 -0
  232. package/dist/remoteRun/exitCodes.d.ts.map +1 -0
  233. package/dist/remoteRun/exitCodes.js +38 -0
  234. package/dist/remoteRun/exitCodes.js.map +1 -0
  235. package/dist/remoteRun/foreground.d.ts +29 -0
  236. package/dist/remoteRun/foreground.d.ts.map +1 -0
  237. package/dist/remoteRun/foreground.js +159 -0
  238. package/dist/remoteRun/foreground.js.map +1 -0
  239. package/dist/remoteRun/interrupts.d.ts +27 -0
  240. package/dist/remoteRun/interrupts.d.ts.map +1 -0
  241. package/dist/remoteRun/interrupts.js +78 -0
  242. package/dist/remoteRun/interrupts.js.map +1 -0
  243. package/dist/remoteRun/jobFiles.d.ts +31 -0
  244. package/dist/remoteRun/jobFiles.d.ts.map +1 -0
  245. package/dist/remoteRun/jobFiles.js +84 -0
  246. package/dist/remoteRun/jobFiles.js.map +1 -0
  247. package/dist/remoteRun/jobFormat.d.ts +16 -0
  248. package/dist/remoteRun/jobFormat.d.ts.map +1 -0
  249. package/dist/remoteRun/jobFormat.js +130 -0
  250. package/dist/remoteRun/jobFormat.js.map +1 -0
  251. package/dist/remoteRun/jobId.d.ts +15 -0
  252. package/dist/remoteRun/jobId.d.ts.map +1 -0
  253. package/dist/remoteRun/jobId.js +85 -0
  254. package/dist/remoteRun/jobId.js.map +1 -0
  255. package/dist/remoteRun/jobMeta.d.ts +18 -0
  256. package/dist/remoteRun/jobMeta.d.ts.map +1 -0
  257. package/dist/remoteRun/jobMeta.js +33 -0
  258. package/dist/remoteRun/jobMeta.js.map +1 -0
  259. package/dist/remoteRun/jobQuery.d.ts +12 -0
  260. package/dist/remoteRun/jobQuery.d.ts.map +1 -0
  261. package/dist/remoteRun/jobQuery.js +22 -0
  262. package/dist/remoteRun/jobQuery.js.map +1 -0
  263. package/dist/remoteRun/jobRecords.d.ts +22 -0
  264. package/dist/remoteRun/jobRecords.d.ts.map +1 -0
  265. package/dist/remoteRun/jobRecords.js +145 -0
  266. package/dist/remoteRun/jobRecords.js.map +1 -0
  267. package/dist/remoteRun/jobState.d.ts +62 -0
  268. package/dist/remoteRun/jobState.d.ts.map +1 -0
  269. package/dist/remoteRun/jobState.js +132 -0
  270. package/dist/remoteRun/jobState.js.map +1 -0
  271. package/dist/remoteRun/leaseTiming.d.ts +18 -0
  272. package/dist/remoteRun/leaseTiming.d.ts.map +1 -0
  273. package/dist/remoteRun/leaseTiming.js +43 -0
  274. package/dist/remoteRun/leaseTiming.js.map +1 -0
  275. package/dist/remoteRun/output.d.ts +37 -0
  276. package/dist/remoteRun/output.d.ts.map +1 -0
  277. package/dist/remoteRun/output.js +127 -0
  278. package/dist/remoteRun/output.js.map +1 -0
  279. package/dist/remoteRun/pairedRunners.d.ts +51 -0
  280. package/dist/remoteRun/pairedRunners.d.ts.map +1 -0
  281. package/dist/remoteRun/pairedRunners.js +165 -0
  282. package/dist/remoteRun/pairedRunners.js.map +1 -0
  283. package/dist/remoteRun/pathPatterns.d.ts +33 -0
  284. package/dist/remoteRun/pathPatterns.d.ts.map +1 -0
  285. package/dist/remoteRun/pathPatterns.js +115 -0
  286. package/dist/remoteRun/pathPatterns.js.map +1 -0
  287. package/dist/remoteRun/probe.d.ts +78 -0
  288. package/dist/remoteRun/probe.d.ts.map +1 -0
  289. package/dist/remoteRun/probe.js +157 -0
  290. package/dist/remoteRun/probe.js.map +1 -0
  291. package/dist/remoteRun/project.d.ts +26 -0
  292. package/dist/remoteRun/project.d.ts.map +1 -0
  293. package/dist/remoteRun/project.js +159 -0
  294. package/dist/remoteRun/project.js.map +1 -0
  295. package/dist/remoteRun/projectConfig.d.ts +38 -0
  296. package/dist/remoteRun/projectConfig.d.ts.map +1 -0
  297. package/dist/remoteRun/projectConfig.js +87 -0
  298. package/dist/remoteRun/projectConfig.js.map +1 -0
  299. package/dist/remoteRun/remoteRunCli.d.ts +22 -0
  300. package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
  301. package/dist/remoteRun/remoteRunCli.js +119 -0
  302. package/dist/remoteRun/remoteRunCli.js.map +1 -0
  303. package/dist/remoteRun/remoteRunError.d.ts +14 -0
  304. package/dist/remoteRun/remoteRunError.d.ts.map +1 -0
  305. package/dist/remoteRun/remoteRunError.js +28 -0
  306. package/dist/remoteRun/remoteRunError.js.map +1 -0
  307. package/dist/remoteRun/rsync.d.ts +17 -0
  308. package/dist/remoteRun/rsync.d.ts.map +1 -0
  309. package/dist/remoteRun/rsync.js +39 -0
  310. package/dist/remoteRun/rsync.js.map +1 -0
  311. package/dist/remoteRun/runnerClient.d.ts +52 -0
  312. package/dist/remoteRun/runnerClient.d.ts.map +1 -0
  313. package/dist/remoteRun/runnerClient.js +143 -0
  314. package/dist/remoteRun/runnerClient.js.map +1 -0
  315. package/dist/remoteRun/runnerSummary.d.ts +24 -0
  316. package/dist/remoteRun/runnerSummary.d.ts.map +1 -0
  317. package/dist/remoteRun/runnerSummary.js +86 -0
  318. package/dist/remoteRun/runnerSummary.js.map +1 -0
  319. package/dist/remoteRun/runnerWait.d.ts +68 -0
  320. package/dist/remoteRun/runnerWait.d.ts.map +1 -0
  321. package/dist/remoteRun/runnerWait.js +137 -0
  322. package/dist/remoteRun/runnerWait.js.map +1 -0
  323. package/dist/remoteRun/runnerWaitTiming.d.ts +16 -0
  324. package/dist/remoteRun/runnerWaitTiming.d.ts.map +1 -0
  325. package/dist/remoteRun/runnerWaitTiming.js +37 -0
  326. package/dist/remoteRun/runnerWaitTiming.js.map +1 -0
  327. package/dist/remoteRun/runners.d.ts +57 -0
  328. package/dist/remoteRun/runners.d.ts.map +1 -0
  329. package/dist/remoteRun/runners.js +209 -0
  330. package/dist/remoteRun/runners.js.map +1 -0
  331. package/dist/remoteRun/runnersCatalog.d.ts +14 -0
  332. package/dist/remoteRun/runnersCatalog.d.ts.map +1 -0
  333. package/dist/remoteRun/runnersCatalog.js +68 -0
  334. package/dist/remoteRun/runnersCatalog.js.map +1 -0
  335. package/dist/remoteRun/runnersConfig.d.ts +53 -0
  336. package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
  337. package/dist/remoteRun/runnersConfig.js +109 -0
  338. package/dist/remoteRun/runnersConfig.js.map +1 -0
  339. package/dist/remoteRun/safeCopy.d.ts +31 -0
  340. package/dist/remoteRun/safeCopy.d.ts.map +1 -0
  341. package/dist/remoteRun/safeCopy.js +137 -0
  342. package/dist/remoteRun/safeCopy.js.map +1 -0
  343. package/dist/remoteRun/sendPlan.d.ts +67 -0
  344. package/dist/remoteRun/sendPlan.d.ts.map +1 -0
  345. package/dist/remoteRun/sendPlan.js +139 -0
  346. package/dist/remoteRun/sendPlan.js.map +1 -0
  347. package/dist/remoteRun/ssh.d.ts +82 -0
  348. package/dist/remoteRun/ssh.d.ts.map +1 -0
  349. package/dist/remoteRun/ssh.js +236 -0
  350. package/dist/remoteRun/ssh.js.map +1 -0
  351. package/dist/remoteRun/submit.d.ts +29 -0
  352. package/dist/remoteRun/submit.d.ts.map +1 -0
  353. package/dist/remoteRun/submit.js +142 -0
  354. package/dist/remoteRun/submit.js.map +1 -0
  355. package/dist/requests/answerRequest.d.ts +5 -0
  356. package/dist/requests/answerRequest.d.ts.map +1 -1
  357. package/dist/requests/answerRequest.js +16 -1
  358. package/dist/requests/answerRequest.js.map +1 -1
  359. package/dist/requests/requestLedger.d.ts +13 -0
  360. package/dist/requests/requestLedger.d.ts.map +1 -1
  361. package/dist/requests/requestLedger.js +9 -0
  362. package/dist/requests/requestLedger.js.map +1 -1
  363. package/dist/requests/topicRequestSettle.d.ts +30 -0
  364. package/dist/requests/topicRequestSettle.d.ts.map +1 -0
  365. package/dist/requests/topicRequestSettle.js +23 -0
  366. package/dist/requests/topicRequestSettle.js.map +1 -0
  367. package/dist/requests/wakeUpEngine.d.ts +4 -0
  368. package/dist/requests/wakeUpEngine.d.ts.map +1 -1
  369. package/dist/requests/wakeUpEngine.js +5 -1
  370. package/dist/requests/wakeUpEngine.js.map +1 -1
  371. package/dist/runnerUtility/adminCheck.d.ts +11 -0
  372. package/dist/runnerUtility/adminCheck.d.ts.map +1 -0
  373. package/dist/runnerUtility/adminCheck.js +68 -0
  374. package/dist/runnerUtility/adminCheck.js.map +1 -0
  375. package/dist/runnerUtility/appInstall.d.ts +25 -0
  376. package/dist/runnerUtility/appInstall.d.ts.map +1 -0
  377. package/dist/runnerUtility/appInstall.js +147 -0
  378. package/dist/runnerUtility/appInstall.js.map +1 -0
  379. package/dist/runnerUtility/appUpdate.d.ts +39 -0
  380. package/dist/runnerUtility/appUpdate.d.ts.map +1 -0
  381. package/dist/runnerUtility/appUpdate.js +90 -0
  382. package/dist/runnerUtility/appUpdate.js.map +1 -0
  383. package/dist/runnerUtility/execEnv.d.ts +21 -0
  384. package/dist/runnerUtility/execEnv.d.ts.map +1 -0
  385. package/dist/runnerUtility/execEnv.js +109 -0
  386. package/dist/runnerUtility/execEnv.js.map +1 -0
  387. package/dist/runnerUtility/execSession.d.ts +13 -0
  388. package/dist/runnerUtility/execSession.d.ts.map +1 -0
  389. package/dist/runnerUtility/execSession.js +58 -0
  390. package/dist/runnerUtility/execSession.js.map +1 -0
  391. package/dist/runnerUtility/hubClient.d.ts +30 -0
  392. package/dist/runnerUtility/hubClient.d.ts.map +1 -0
  393. package/dist/runnerUtility/hubClient.js +127 -0
  394. package/dist/runnerUtility/hubClient.js.map +1 -0
  395. package/dist/runnerUtility/injectStream.d.ts +9 -0
  396. package/dist/runnerUtility/injectStream.d.ts.map +1 -0
  397. package/dist/runnerUtility/injectStream.js +12 -0
  398. package/dist/runnerUtility/injectStream.js.map +1 -0
  399. package/dist/runnerUtility/iosCheck.d.ts +62 -0
  400. package/dist/runnerUtility/iosCheck.d.ts.map +1 -0
  401. package/dist/runnerUtility/iosCheck.js +200 -0
  402. package/dist/runnerUtility/iosCheck.js.map +1 -0
  403. package/dist/runnerUtility/launcher.d.ts +5 -0
  404. package/dist/runnerUtility/launcher.d.ts.map +1 -0
  405. package/dist/runnerUtility/launcher.js +85 -0
  406. package/dist/runnerUtility/launcher.js.map +1 -0
  407. package/dist/runnerUtility/linkLoop.d.ts +47 -0
  408. package/dist/runnerUtility/linkLoop.d.ts.map +1 -0
  409. package/dist/runnerUtility/linkLoop.js +281 -0
  410. package/dist/runnerUtility/linkLoop.js.map +1 -0
  411. package/dist/runnerUtility/localLinkStop.d.ts +23 -0
  412. package/dist/runnerUtility/localLinkStop.d.ts.map +1 -0
  413. package/dist/runnerUtility/localLinkStop.js +79 -0
  414. package/dist/runnerUtility/localLinkStop.js.map +1 -0
  415. package/dist/runnerUtility/machineReport.d.ts +39 -0
  416. package/dist/runnerUtility/machineReport.d.ts.map +1 -0
  417. package/dist/runnerUtility/machineReport.js +161 -0
  418. package/dist/runnerUtility/machineReport.js.map +1 -0
  419. package/dist/runnerUtility/packageId.d.ts +5 -0
  420. package/dist/runnerUtility/packageId.d.ts.map +1 -0
  421. package/dist/runnerUtility/packageId.js +64 -0
  422. package/dist/runnerUtility/packageId.js.map +1 -0
  423. package/dist/runnerUtility/pairingRecovery.d.ts +31 -0
  424. package/dist/runnerUtility/pairingRecovery.d.ts.map +1 -0
  425. package/dist/runnerUtility/pairingRecovery.js +24 -0
  426. package/dist/runnerUtility/pairingRecovery.js.map +1 -0
  427. package/dist/runnerUtility/pueueDaemon.d.ts +36 -0
  428. package/dist/runnerUtility/pueueDaemon.d.ts.map +1 -0
  429. package/dist/runnerUtility/pueueDaemon.js +165 -0
  430. package/dist/runnerUtility/pueueDaemon.js.map +1 -0
  431. package/dist/runnerUtility/runnerCli.d.ts +18 -0
  432. package/dist/runnerUtility/runnerCli.d.ts.map +1 -0
  433. package/dist/runnerUtility/runnerCli.js +184 -0
  434. package/dist/runnerUtility/runnerCli.js.map +1 -0
  435. package/dist/runnerUtility/runnerCommands.d.ts +67 -0
  436. package/dist/runnerUtility/runnerCommands.d.ts.map +1 -0
  437. package/dist/runnerUtility/runnerCommands.js +418 -0
  438. package/dist/runnerUtility/runnerCommands.js.map +1 -0
  439. package/dist/runnerUtility/runnerConfig.d.ts +63 -0
  440. package/dist/runnerUtility/runnerConfig.d.ts.map +1 -0
  441. package/dist/runnerUtility/runnerConfig.js +153 -0
  442. package/dist/runnerUtility/runnerConfig.js.map +1 -0
  443. package/dist/runnerUtility/runnerFlags.d.ts +9 -0
  444. package/dist/runnerUtility/runnerFlags.d.ts.map +1 -0
  445. package/dist/runnerUtility/runnerFlags.js +53 -0
  446. package/dist/runnerUtility/runnerFlags.js.map +1 -0
  447. package/dist/runnerUtility/runnerHome.d.ts +30 -0
  448. package/dist/runnerUtility/runnerHome.d.ts.map +1 -0
  449. package/dist/runnerUtility/runnerHome.js +82 -0
  450. package/dist/runnerUtility/runnerHome.js.map +1 -0
  451. package/dist/runnerUtility/runnerKeys.d.ts +11 -0
  452. package/dist/runnerUtility/runnerKeys.d.ts.map +1 -0
  453. package/dist/runnerUtility/runnerKeys.js +80 -0
  454. package/dist/runnerUtility/runnerKeys.js.map +1 -0
  455. package/dist/runnerUtility/runnerServers.d.ts +40 -0
  456. package/dist/runnerUtility/runnerServers.d.ts.map +1 -0
  457. package/dist/runnerUtility/runnerServers.js +79 -0
  458. package/dist/runnerUtility/runnerServers.js.map +1 -0
  459. package/dist/runnerUtility/serviceManager.d.ts +54 -0
  460. package/dist/runnerUtility/serviceManager.d.ts.map +1 -0
  461. package/dist/runnerUtility/serviceManager.js +413 -0
  462. package/dist/runnerUtility/serviceManager.js.map +1 -0
  463. package/dist/runnerUtility/serviceUnits.d.ts +36 -0
  464. package/dist/runnerUtility/serviceUnits.d.ts.map +1 -0
  465. package/dist/runnerUtility/serviceUnits.js +169 -0
  466. package/dist/runnerUtility/serviceUnits.js.map +1 -0
  467. package/dist/runnerUtility/toolInstall.d.ts +95 -0
  468. package/dist/runnerUtility/toolInstall.d.ts.map +1 -0
  469. package/dist/runnerUtility/toolInstall.js +232 -0
  470. package/dist/runnerUtility/toolInstall.js.map +1 -0
  471. package/dist/runnerUtility/versionPollTiming.d.ts +16 -0
  472. package/dist/runnerUtility/versionPollTiming.d.ts.map +1 -0
  473. package/dist/runnerUtility/versionPollTiming.js +36 -0
  474. package/dist/runnerUtility/versionPollTiming.js.map +1 -0
  475. package/dist/runners/authorizedKeys.d.ts +52 -0
  476. package/dist/runners/authorizedKeys.d.ts.map +1 -0
  477. package/dist/runners/authorizedKeys.js +153 -0
  478. package/dist/runners/authorizedKeys.js.map +1 -0
  479. package/dist/runners/bootstrapLine.d.ts +4 -0
  480. package/dist/runners/bootstrapLine.d.ts.map +1 -0
  481. package/dist/runners/bootstrapLine.js +69 -0
  482. package/dist/runners/bootstrapLine.js.map +1 -0
  483. package/dist/runners/gate.d.ts +41 -0
  484. package/dist/runners/gate.d.ts.map +1 -0
  485. package/dist/runners/gate.js +216 -0
  486. package/dist/runners/gate.js.map +1 -0
  487. package/dist/runners/gateLink.d.ts +26 -0
  488. package/dist/runners/gateLink.d.ts.map +1 -0
  489. package/dist/runners/gateLink.js +240 -0
  490. package/dist/runners/gateLink.js.map +1 -0
  491. package/dist/runners/gateProtocol.d.ts +98 -0
  492. package/dist/runners/gateProtocol.d.ts.map +1 -0
  493. package/dist/runners/gateProtocol.js +149 -0
  494. package/dist/runners/gateProtocol.js.map +1 -0
  495. package/dist/runners/gateWrapper.d.ts +6 -0
  496. package/dist/runners/gateWrapper.d.ts.map +1 -0
  497. package/dist/runners/gateWrapper.js +70 -0
  498. package/dist/runners/gateWrapper.js.map +1 -0
  499. package/dist/runners/hubAddress.d.ts +33 -0
  500. package/dist/runners/hubAddress.d.ts.map +1 -0
  501. package/dist/runners/hubAddress.js +88 -0
  502. package/dist/runners/hubAddress.js.map +1 -0
  503. package/dist/runners/hubAddressCandidates.d.ts +16 -0
  504. package/dist/runners/hubAddressCandidates.d.ts.map +1 -0
  505. package/dist/runners/hubAddressCandidates.js +96 -0
  506. package/dist/runners/hubAddressCandidates.js.map +1 -0
  507. package/dist/runners/hubIds.d.ts +16 -0
  508. package/dist/runners/hubIds.d.ts.map +1 -0
  509. package/dist/runners/hubIds.js +25 -0
  510. package/dist/runners/hubIds.js.map +1 -0
  511. package/dist/runners/hubKey.d.ts +6 -0
  512. package/dist/runners/hubKey.d.ts.map +1 -0
  513. package/dist/runners/hubKey.js +78 -0
  514. package/dist/runners/hubKey.js.map +1 -0
  515. package/dist/runners/hubLock.d.ts +7 -0
  516. package/dist/runners/hubLock.d.ts.map +1 -0
  517. package/dist/runners/hubLock.js +230 -0
  518. package/dist/runners/hubLock.js.map +1 -0
  519. package/dist/runners/hubPackage.d.ts +23 -0
  520. package/dist/runners/hubPackage.d.ts.map +1 -0
  521. package/dist/runners/hubPackage.js +184 -0
  522. package/dist/runners/hubPackage.js.map +1 -0
  523. package/dist/runners/hubPairing.d.ts +63 -0
  524. package/dist/runners/hubPairing.d.ts.map +1 -0
  525. package/dist/runners/hubPairing.js +261 -0
  526. package/dist/runners/hubPairing.js.map +1 -0
  527. package/dist/runners/hubPaths.d.ts +38 -0
  528. package/dist/runners/hubPaths.d.ts.map +1 -0
  529. package/dist/runners/hubPaths.js +94 -0
  530. package/dist/runners/hubPaths.js.map +1 -0
  531. package/dist/runners/hubRegistry.d.ts +112 -0
  532. package/dist/runners/hubRegistry.d.ts.map +1 -0
  533. package/dist/runners/hubRegistry.js +210 -0
  534. package/dist/runners/hubRegistry.js.map +1 -0
  535. package/dist/runners/linkControl.d.ts +27 -0
  536. package/dist/runners/linkControl.d.ts.map +1 -0
  537. package/dist/runners/linkControl.js +124 -0
  538. package/dist/runners/linkControl.js.map +1 -0
  539. package/dist/runners/pairCode.d.ts +30 -0
  540. package/dist/runners/pairCode.d.ts.map +1 -0
  541. package/dist/runners/pairCode.js +46 -0
  542. package/dist/runners/pairCode.js.map +1 -0
  543. package/dist/runners/pairingTiming.d.ts +18 -0
  544. package/dist/runners/pairingTiming.d.ts.map +1 -0
  545. package/dist/runners/pairingTiming.js +42 -0
  546. package/dist/runners/pairingTiming.js.map +1 -0
  547. package/dist/runners/runnerProxy.d.ts +9 -0
  548. package/dist/runners/runnerProxy.d.ts.map +1 -0
  549. package/dist/runners/runnerProxy.js +67 -0
  550. package/dist/runners/runnerProxy.js.map +1 -0
  551. package/dist/runners/runnerRemoval.d.ts +21 -0
  552. package/dist/runners/runnerRemoval.d.ts.map +1 -0
  553. package/dist/runners/runnerRemoval.js +82 -0
  554. package/dist/runners/runnerRemoval.js.map +1 -0
  555. package/dist/runners/runnersCli.d.ts +16 -0
  556. package/dist/runners/runnersCli.d.ts.map +1 -0
  557. package/dist/runners/runnersCli.js +214 -0
  558. package/dist/runners/runnersCli.js.map +1 -0
  559. package/dist/runners/runnersList.d.ts +17 -0
  560. package/dist/runners/runnersList.d.ts.map +1 -0
  561. package/dist/runners/runnersList.js +49 -0
  562. package/dist/runners/runnersList.js.map +1 -0
  563. package/dist/runners/runnersOverview.d.ts +20 -0
  564. package/dist/runners/runnersOverview.d.ts.map +1 -0
  565. package/dist/runners/runnersOverview.js +55 -0
  566. package/dist/runners/runnersOverview.js.map +1 -0
  567. package/dist/runners/sshKeys.d.ts +26 -0
  568. package/dist/runners/sshKeys.d.ts.map +1 -0
  569. package/dist/runners/sshKeys.js +60 -0
  570. package/dist/runners/sshKeys.js.map +1 -0
  571. package/dist/runners/tarArchive.d.ts +20 -0
  572. package/dist/runners/tarArchive.d.ts.map +1 -0
  573. package/dist/runners/tarArchive.js +70 -0
  574. package/dist/runners/tarArchive.js.map +1 -0
  575. package/dist/scheduler/delivery.d.ts +2 -0
  576. package/dist/scheduler/delivery.d.ts.map +1 -1
  577. package/dist/scheduler/delivery.js +8 -4
  578. package/dist/scheduler/delivery.js.map +1 -1
  579. package/dist/scheduler/mcpSurface.d.ts +65 -10
  580. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  581. package/dist/scheduler/mcpSurface.js +319 -89
  582. package/dist/scheduler/mcpSurface.js.map +1 -1
  583. package/dist/scheduler/recurrence.d.ts +5 -0
  584. package/dist/scheduler/recurrence.d.ts.map +1 -1
  585. package/dist/scheduler/recurrence.js +12 -2
  586. package/dist/scheduler/recurrence.js.map +1 -1
  587. package/dist/scheduler/strictToolInput.d.ts +45 -0
  588. package/dist/scheduler/strictToolInput.d.ts.map +1 -0
  589. package/dist/scheduler/strictToolInput.js +155 -0
  590. package/dist/scheduler/strictToolInput.js.map +1 -0
  591. package/dist/scheduler/types.d.ts +5 -0
  592. package/dist/scheduler/types.d.ts.map +1 -1
  593. package/dist/scheduler/workerWatch.d.ts +23 -0
  594. package/dist/scheduler/workerWatch.d.ts.map +1 -0
  595. package/dist/scheduler/workerWatch.js +26 -0
  596. package/dist/scheduler/workerWatch.js.map +1 -0
  597. package/dist/selfUpdate/emittedSource.d.ts +11 -0
  598. package/dist/selfUpdate/emittedSource.d.ts.map +1 -0
  599. package/dist/selfUpdate/emittedSource.js +24 -0
  600. package/dist/selfUpdate/emittedSource.js.map +1 -0
  601. package/dist/selfUpdate/gitSource.d.ts +0 -6
  602. package/dist/selfUpdate/gitSource.d.ts.map +1 -1
  603. package/dist/selfUpdate/gitSource.js +2 -18
  604. package/dist/selfUpdate/gitSource.js.map +1 -1
  605. package/dist/selfUpdate/selfCheck.js +2 -2
  606. package/dist/selfUpdate/selfCheck.js.map +1 -1
  607. package/dist/selfUpdate/updatePending.d.ts +1 -1
  608. package/dist/sendErrorClassifier.d.ts +10 -0
  609. package/dist/sendErrorClassifier.d.ts.map +1 -1
  610. package/dist/sendErrorClassifier.js +22 -0
  611. package/dist/sendErrorClassifier.js.map +1 -1
  612. package/dist/state.d.ts +78 -7
  613. package/dist/state.d.ts.map +1 -1
  614. package/dist/state.js +125 -8
  615. package/dist/state.js.map +1 -1
  616. package/dist/stateFile.d.ts +9 -0
  617. package/dist/stateFile.d.ts.map +1 -0
  618. package/dist/stateFile.js +57 -0
  619. package/dist/stateFile.js.map +1 -0
  620. package/dist/stt/sttInstall.d.ts +7 -3
  621. package/dist/stt/sttInstall.d.ts.map +1 -1
  622. package/dist/stt/sttInstall.js +8 -4
  623. package/dist/stt/sttInstall.js.map +1 -1
  624. package/dist/stt/sttSettings.d.ts +2 -1
  625. package/dist/stt/sttSettings.d.ts.map +1 -1
  626. package/dist/stt/sttSettings.js +3 -2
  627. package/dist/stt/sttSettings.js.map +1 -1
  628. package/dist/stt/transcribeChain.js +2 -0
  629. package/dist/stt/transcribeChain.js.map +1 -1
  630. package/dist/testTimings.d.ts +16 -3
  631. package/dist/testTimings.d.ts.map +1 -1
  632. package/dist/testTimings.js +35 -2
  633. package/dist/testTimings.js.map +1 -1
  634. package/dist/todos/board.d.ts +83 -0
  635. package/dist/todos/board.d.ts.map +1 -0
  636. package/dist/todos/board.js +227 -0
  637. package/dist/todos/board.js.map +1 -0
  638. package/dist/todos/format.d.ts +33 -0
  639. package/dist/todos/format.d.ts.map +1 -0
  640. package/dist/todos/format.js +90 -0
  641. package/dist/todos/format.js.map +1 -0
  642. package/dist/todos/merge.d.ts +46 -0
  643. package/dist/todos/merge.d.ts.map +1 -0
  644. package/dist/todos/merge.js +137 -0
  645. package/dist/todos/merge.js.map +1 -0
  646. package/dist/todos/midTurn.d.ts +75 -0
  647. package/dist/todos/midTurn.d.ts.map +1 -0
  648. package/dist/todos/midTurn.js +214 -0
  649. package/dist/todos/midTurn.js.map +1 -0
  650. package/dist/todos/nag.d.ts +85 -0
  651. package/dist/todos/nag.d.ts.map +1 -0
  652. package/dist/todos/nag.js +103 -0
  653. package/dist/todos/nag.js.map +1 -0
  654. package/dist/todos/order.d.ts +25 -0
  655. package/dist/todos/order.d.ts.map +1 -0
  656. package/dist/todos/order.js +61 -0
  657. package/dist/todos/order.js.map +1 -0
  658. package/dist/todos/projects.d.ts +102 -0
  659. package/dist/todos/projects.d.ts.map +1 -0
  660. package/dist/todos/projects.js +342 -0
  661. package/dist/todos/projects.js.map +1 -0
  662. package/dist/todos/registry.d.ts +64 -0
  663. package/dist/todos/registry.d.ts.map +1 -0
  664. package/dist/todos/registry.js +116 -0
  665. package/dist/todos/registry.js.map +1 -0
  666. package/dist/todos/reminderEngine.d.ts +78 -0
  667. package/dist/todos/reminderEngine.d.ts.map +1 -0
  668. package/dist/todos/reminderEngine.js +162 -0
  669. package/dist/todos/reminderEngine.js.map +1 -0
  670. package/dist/todos/store.d.ts +34 -0
  671. package/dist/todos/store.d.ts.map +1 -0
  672. package/dist/todos/store.js +208 -0
  673. package/dist/todos/store.js.map +1 -0
  674. package/dist/todos/tools.d.ts +26 -0
  675. package/dist/todos/tools.d.ts.map +1 -0
  676. package/dist/todos/tools.js +25 -0
  677. package/dist/todos/tools.js.map +1 -0
  678. package/dist/todos/types.d.ts +85 -0
  679. package/dist/todos/types.d.ts.map +1 -0
  680. package/dist/todos/types.js +30 -0
  681. package/dist/todos/types.js.map +1 -0
  682. package/dist/trackers/taskAgentLimit.d.ts +58 -0
  683. package/dist/trackers/taskAgentLimit.d.ts.map +1 -0
  684. package/dist/trackers/taskAgentLimit.js +62 -0
  685. package/dist/trackers/taskAgentLimit.js.map +1 -0
  686. package/dist/trackers/taskAgentSlots.d.ts +109 -0
  687. package/dist/trackers/taskAgentSlots.d.ts.map +1 -0
  688. package/dist/trackers/taskAgentSlots.js +227 -0
  689. package/dist/trackers/taskAgentSlots.js.map +1 -0
  690. package/dist/trackers/types.d.ts +14 -0
  691. package/dist/trackers/types.d.ts.map +1 -0
  692. package/dist/trackers/types.js +3 -0
  693. package/dist/trackers/types.js.map +1 -0
  694. package/dist/types.d.ts +80 -4
  695. package/dist/types.d.ts.map +1 -1
  696. package/dist/utils/adoptReplayGate.d.ts +16 -0
  697. package/dist/utils/adoptReplayGate.d.ts.map +1 -0
  698. package/dist/utils/adoptReplayGate.js +35 -0
  699. package/dist/utils/adoptReplayGate.js.map +1 -0
  700. package/dist/utils/agentEnvironment.d.ts +6 -2
  701. package/dist/utils/agentEnvironment.d.ts.map +1 -1
  702. package/dist/utils/agentEnvironment.js +13 -2
  703. package/dist/utils/agentEnvironment.js.map +1 -1
  704. package/dist/utils/agentPlugin.d.ts +113 -0
  705. package/dist/utils/agentPlugin.d.ts.map +1 -0
  706. package/dist/utils/agentPlugin.js +192 -0
  707. package/dist/utils/agentPlugin.js.map +1 -0
  708. package/dist/utils/autoContinueOnLimit.d.ts +7 -4
  709. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
  710. package/dist/utils/autoContinueOnLimit.js +8 -5
  711. package/dist/utils/autoContinueOnLimit.js.map +1 -1
  712. package/dist/utils/botSkills.d.ts +62 -0
  713. package/dist/utils/botSkills.d.ts.map +1 -0
  714. package/dist/utils/botSkills.js +53 -0
  715. package/dist/utils/botSkills.js.map +1 -0
  716. package/dist/utils/botSkillsSetting.d.ts +7 -0
  717. package/dist/utils/botSkillsSetting.d.ts.map +1 -0
  718. package/dist/utils/botSkillsSetting.js +9 -0
  719. package/dist/utils/botSkillsSetting.js.map +1 -0
  720. package/dist/utils/claudeCodeVersion.d.ts +7 -0
  721. package/dist/utils/claudeCodeVersion.d.ts.map +1 -1
  722. package/dist/utils/claudeCodeVersion.js +14 -1
  723. package/dist/utils/claudeCodeVersion.js.map +1 -1
  724. package/dist/utils/claudeCompactHook.d.ts +33 -15
  725. package/dist/utils/claudeCompactHook.d.ts.map +1 -1
  726. package/dist/utils/claudeCompactHook.js +36 -17
  727. package/dist/utils/claudeCompactHook.js.map +1 -1
  728. package/dist/utils/claudeCompactSummary.d.ts +15 -0
  729. package/dist/utils/claudeCompactSummary.d.ts.map +1 -0
  730. package/dist/utils/claudeCompactSummary.js +96 -0
  731. package/dist/utils/claudeCompactSummary.js.map +1 -0
  732. package/dist/utils/claudeLimitSwitch.d.ts +11 -9
  733. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
  734. package/dist/utils/claudeLimitSwitch.js +18 -16
  735. package/dist/utils/claudeLimitSwitch.js.map +1 -1
  736. package/dist/utils/claudeProfiles.d.ts +5 -0
  737. package/dist/utils/claudeProfiles.d.ts.map +1 -1
  738. package/dist/utils/claudeProfiles.js +14 -0
  739. package/dist/utils/claudeProfiles.js.map +1 -1
  740. package/dist/utils/claudeSessionTitle.d.ts +2 -1
  741. package/dist/utils/claudeSessionTitle.d.ts.map +1 -1
  742. package/dist/utils/claudeSessionTitle.js +14 -14
  743. package/dist/utils/claudeSessionTitle.js.map +1 -1
  744. package/dist/utils/claudeUsage.d.ts +95 -15
  745. package/dist/utils/claudeUsage.d.ts.map +1 -1
  746. package/dist/utils/claudeUsage.js +241 -41
  747. package/dist/utils/claudeUsage.js.map +1 -1
  748. package/dist/utils/claudeUsageRefresher.d.ts +10 -0
  749. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
  750. package/dist/utils/claudeUsageRefresher.js +11 -0
  751. package/dist/utils/claudeUsageRefresher.js.map +1 -1
  752. package/dist/utils/claudeUserEntry.d.ts +50 -0
  753. package/dist/utils/claudeUserEntry.d.ts.map +1 -0
  754. package/dist/utils/claudeUserEntry.js +120 -0
  755. package/dist/utils/claudeUserEntry.js.map +1 -0
  756. package/dist/utils/clearThreadOutputQueues.d.ts +4 -3
  757. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -1
  758. package/dist/utils/clearThreadOutputQueues.js +1 -1
  759. package/dist/utils/clearThreadOutputQueues.js.map +1 -1
  760. package/dist/utils/compactOnIdle.d.ts +33 -13
  761. package/dist/utils/compactOnIdle.d.ts.map +1 -1
  762. package/dist/utils/compactOnIdle.js +35 -15
  763. package/dist/utils/compactOnIdle.js.map +1 -1
  764. package/dist/utils/fallbackBridge.d.ts +5 -0
  765. package/dist/utils/fallbackBridge.d.ts.map +1 -1
  766. package/dist/utils/fallbackBridge.js +19 -3
  767. package/dist/utils/fallbackBridge.js.map +1 -1
  768. package/dist/utils/fallbackChain.d.ts +9 -3
  769. package/dist/utils/fallbackChain.d.ts.map +1 -1
  770. package/dist/utils/fallbackChain.js +21 -3
  771. package/dist/utils/fallbackChain.js.map +1 -1
  772. package/dist/utils/fileSendPlan.d.ts +6 -0
  773. package/dist/utils/fileSendPlan.d.ts.map +1 -1
  774. package/dist/utils/fileSendPlan.js +11 -0
  775. package/dist/utils/fileSendPlan.js.map +1 -1
  776. package/dist/utils/fileSendService.d.ts +7 -1
  777. package/dist/utils/fileSendService.d.ts.map +1 -1
  778. package/dist/utils/fileSendService.js +6 -2
  779. package/dist/utils/fileSendService.js.map +1 -1
  780. package/dist/utils/groupFinalizePlan.d.ts +8 -10
  781. package/dist/utils/groupFinalizePlan.d.ts.map +1 -1
  782. package/dist/utils/groupFinalizePlan.js +8 -12
  783. package/dist/utils/groupFinalizePlan.js.map +1 -1
  784. package/dist/utils/jsonStreamHost.d.ts +13 -0
  785. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  786. package/dist/utils/jsonStreamHost.js +13 -0
  787. package/dist/utils/jsonStreamHost.js.map +1 -1
  788. package/dist/utils/messageSendService.d.ts +5 -3
  789. package/dist/utils/messageSendService.d.ts.map +1 -1
  790. package/dist/utils/messageSendService.js +12 -5
  791. package/dist/utils/messageSendService.js.map +1 -1
  792. package/dist/utils/openCodeCompactPlugin.d.ts +39 -14
  793. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
  794. package/dist/utils/openCodeCompactPlugin.js +106 -38
  795. package/dist/utils/openCodeCompactPlugin.js.map +1 -1
  796. package/dist/utils/promptDelivery.d.ts +29 -12
  797. package/dist/utils/promptDelivery.d.ts.map +1 -1
  798. package/dist/utils/promptDelivery.js +13 -5
  799. package/dist/utils/promptDelivery.js.map +1 -1
  800. package/dist/utils/runnersScreenPlan.d.ts +130 -0
  801. package/dist/utils/runnersScreenPlan.d.ts.map +1 -0
  802. package/dist/utils/runnersScreenPlan.js +257 -0
  803. package/dist/utils/runnersScreenPlan.js.map +1 -0
  804. package/dist/utils/sentKindsSummary.d.ts +10 -0
  805. package/dist/utils/sentKindsSummary.d.ts.map +1 -0
  806. package/dist/utils/sentKindsSummary.js +18 -0
  807. package/dist/utils/sentKindsSummary.js.map +1 -0
  808. package/dist/utils/telegramError.d.ts +6 -0
  809. package/dist/utils/telegramError.d.ts.map +1 -1
  810. package/dist/utils/telegramError.js +12 -0
  811. package/dist/utils/telegramError.js.map +1 -1
  812. package/dist/utils/topicView.d.ts +1 -1
  813. package/dist/utils/topicView.js +1 -1
  814. package/dist/utils/transcribeAudio.d.ts +10 -0
  815. package/dist/utils/transcribeAudio.d.ts.map +1 -1
  816. package/dist/utils/transcribeAudio.js +22 -3
  817. package/dist/utils/transcribeAudio.js.map +1 -1
  818. package/dist/utils/transcriptErrorTime.d.ts +8 -0
  819. package/dist/utils/transcriptErrorTime.d.ts.map +1 -0
  820. package/dist/utils/transcriptErrorTime.js +56 -0
  821. package/dist/utils/transcriptErrorTime.js.map +1 -0
  822. package/dist/utils/wedgeRecovery.d.ts +2 -0
  823. package/dist/utils/wedgeRecovery.d.ts.map +1 -1
  824. package/dist/utils/wedgeRecovery.js +1 -1
  825. package/dist/utils/wedgeRecovery.js.map +1 -1
  826. package/package.json +15 -4
  827. package/remoteRun/runner.sh +1317 -0
  828. package/stt/gigaam_sidecar.py +555 -50
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serviceKindLabels = void 0;
4
+ exports.formatListTimestamp = formatListTimestamp;
5
+ exports.formatRunnerListLine = formatRunnerListLine;
6
+ exports.formatRunnerList = formatRunnerList;
7
+ /**
8
+ * @description The text of `charness runners ls`: one line per paired runner (name, online or offline since when, paused, OS, how it
9
+ * is kept running, version) and a line for each pairing code still open. Pure: the status is read by the caller.
10
+ */
11
+ exports.serviceKindLabels = {
12
+ foreground: 'run by hand',
13
+ 'user-service': 'user service',
14
+ 'system-service': 'system service',
15
+ unknown: 'service unknown',
16
+ };
17
+ /** @description `2026-11-01 14:05` in the zone of this process. */
18
+ function formatListTimestamp(epochMs) {
19
+ const date = new Date(epochMs);
20
+ const pad = (value) => value.toString().padStart(2, '0');
21
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
22
+ }
23
+ function describeConnection(status) {
24
+ if (status.isOnline)
25
+ return 'online';
26
+ return status.lastSeenMs === null ? 'offline, never connected' : `offline since ${formatListTimestamp(status.lastSeenMs)}`;
27
+ }
28
+ function formatRunnerListLine(entry) {
29
+ const { runner, status } = entry;
30
+ const parts = [
31
+ describeConnection(status),
32
+ ...(runner.isPaused ? ['paused'] : []),
33
+ `${runner.os} (${runner.arch})`,
34
+ exports.serviceKindLabels[runner.serviceKind],
35
+ `charness ${runner.version}`,
36
+ `paired ${formatListTimestamp(runner.pairedAtMs)}`,
37
+ ];
38
+ return `${runner.name} — ${parts.join(' · ')}`;
39
+ }
40
+ /** @description The whole `ls` output. */
41
+ function formatRunnerList(entries, pending, nowMs) {
42
+ const lines = entries.length === 0 ? ['No runners paired yet. `charness runners pair --host <address>` makes a pairing line.'] : entries.map(formatRunnerListLine);
43
+ const open = pending.filter((pairing) => pairing.expiresAtMs > nowMs);
44
+ if (open.length > 0) {
45
+ lines.push('', ...open.map((pairing) => `Pairing code open until ${formatListTimestamp(pairing.expiresAtMs)} (${pairing.host}:${pairing.port})`));
46
+ }
47
+ return `${lines.join('\n')}\n`;
48
+ }
49
+ //# sourceMappingURL=runnersList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runnersList.js","sourceRoot":"","sources":["../../src/runners/runnersList.ts"],"names":[],"mappings":";;;AAqBA,kDAIC;AAOD,oDAWC;AAGD,4CAOC;AAlDD;;;GAGG;AAEU,QAAA,iBAAiB,GAAsC;IAClE,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,OAAO,EAAE,iBAAiB;CAC3B,CAAC;AAOF,mEAAmE;AACnE,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzE,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACtI,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwB;IAClD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,iBAAiB,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;AAC7H,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAsB;IACzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG;QACZ,kBAAkB,CAAC,MAAM,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,GAAG,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,GAAG;QAC/B,yBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;QACrC,YAAY,MAAM,CAAC,OAAO,EAAE;QAC5B,UAAU,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;KACnD,CAAC;IACF,OAAO,GAAG,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,0CAA0C;AAC1C,SAAgB,gBAAgB,CAAC,OAAmC,EAAE,OAAkC,EAAE,KAAa;IACrH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnK,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACpJ,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { RunnerScreenEntry } from '../utils/runnersScreenPlan';
2
+ import type { HubContext } from './hubPaths';
3
+ /**
4
+ * @description What the `/runners` screen shows, read in two steps so it can open at once: {@link readRunnersOverview} is the registry,
5
+ * the links (does the socket accept?) and the last snapshot each machine left — no ssh, milliseconds — and
6
+ * {@link probeRunnersOverview} asks the machines that are online what they are like right now (one shared 20 s deadline, the phase-1
7
+ * probe), keeping the snapshot of a machine that does not answer.
8
+ */
9
+ export interface RunnersOverview {
10
+ /** The registry revision (`paired.json` `rev`): what a keyboard built from this overview is valid for. */
11
+ revision: number;
12
+ entries: RunnerScreenEntry[];
13
+ /** Expiry of every pairing code that is still open. */
14
+ openPairingExpiries: number[];
15
+ }
16
+ /** @description The overview without any ssh call: the registry, which links are up, the last snapshots. */
17
+ export declare function readRunnersOverview(ctx: HubContext, cacheDir: string, nowMs: number): Promise<RunnersOverview>;
18
+ /** @description `overview` with the machines that are online asked for their live state. Offline ones are not called. */
19
+ export declare function probeRunnersOverview(ctx: HubContext, overview: RunnersOverview, cacheDir: string, nowMs: number): Promise<RunnersOverview>;
20
+ //# sourceMappingURL=runnersOverview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runnersOverview.d.ts","sourceRoot":"","sources":["../../src/runners/runnersOverview.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,0GAA0G;IAC1G,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAQD,4GAA4G;AAC5G,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAOpH;AASD,yHAAyH;AACzH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAiBhJ"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readRunnersOverview = readRunnersOverview;
4
+ exports.probeRunnersOverview = probeRunnersOverview;
5
+ const pairedRunners_1 = require("../remoteRun/pairedRunners");
6
+ const runners_1 = require("../remoteRun/runners");
7
+ const runnerClient_1 = require("../remoteRun/runnerClient");
8
+ const ssh_1 = require("../remoteRun/ssh");
9
+ const hubRegistry_1 = require("./hubRegistry");
10
+ const linkControl_1 = require("./linkControl");
11
+ async function readEntry(ctx, runner, cacheDir) {
12
+ const status = await (0, linkControl_1.getRunnerLinkStatus)(ctx.dir, runner.id);
13
+ const snapshot = (0, runners_1.readLastProbe)(cacheDir, runner.name);
14
+ return { runner, isOnline: status.isOnline, lastSeenMs: status.lastSeenMs ?? snapshot?.seenAtMs ?? null, probe: snapshot?.probe ?? null };
15
+ }
16
+ /** @description The overview without any ssh call: the registry, which links are up, the last snapshots. */
17
+ async function readRunnersOverview(ctx, cacheDir, nowMs) {
18
+ const paired = (0, hubRegistry_1.readPairedFile)(ctx.dir);
19
+ return {
20
+ revision: paired.rev,
21
+ entries: await Promise.all(paired.runners.map((runner) => readEntry(ctx, runner, cacheDir))),
22
+ openPairingExpiries: (0, hubRegistry_1.readPendingFile)(ctx.dir).pending.filter((pairing) => pairing.expiresAtMs > nowMs).map((pairing) => pairing.expiresAtMs),
23
+ };
24
+ }
25
+ function applyReport(entry, report) {
26
+ if (report === undefined)
27
+ return entry;
28
+ if (report.status === 'online')
29
+ return { ...entry, probe: report.probe };
30
+ // It answered the socket probe but not the ssh one: it is shown as it was, offline.
31
+ return { ...entry, isOnline: false, lastSeenMs: report.lastSeenAtMs ?? entry.lastSeenMs, probe: report.lastProbe ?? entry.probe };
32
+ }
33
+ /** @description `overview` with the machines that are online asked for their live state. Offline ones are not called. */
34
+ async function probeRunnersOverview(ctx, overview, cacheDir, nowMs) {
35
+ const hub = { hubDir: ctx.dir, nodePath: ctx.nodePath, cliPath: ctx.cliPath };
36
+ const clients = overview.entries
37
+ .filter((entry) => entry.isOnline)
38
+ .flatMap((entry) => {
39
+ try {
40
+ return [(0, runnerClient_1.createRunnerClient)((0, pairedRunners_1.buildPairedRunnerConfig)(entry.runner, hub), cacheDir)];
41
+ }
42
+ catch (error) {
43
+ // A path of this machine that ssh cannot be given safely: that machine is shown as its last snapshot says, not probed.
44
+ if (error instanceof pairedRunners_1.PairedRunnerSetupError)
45
+ return [];
46
+ throw error;
47
+ }
48
+ });
49
+ if (clients.length === 0)
50
+ return overview;
51
+ (0, ssh_1.ensureRemoteRunCacheDir)(cacheDir);
52
+ const reports = await (0, runners_1.probeRunners)(clients, nowMs);
53
+ return { ...overview, entries: overview.entries.map((entry) => applyReport(entry, reports.find((report) => report.name === entry.runner.name))) };
54
+ }
55
+ //# sourceMappingURL=runnersOverview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runnersOverview.js","sourceRoot":"","sources":["../../src/runners/runnersOverview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface SshKeyPair {
2
+ /** OpenSSH private key text (what `ssh -i` reads). */
3
+ privateKey: string;
4
+ /** `ssh-ed25519 <base64>`. */
5
+ publicKey: string;
6
+ }
7
+ export interface ParsedPublicKey {
8
+ type: string;
9
+ /** The key as the ssh wire protocol carries it (what a host key verifier is handed). */
10
+ blob: Buffer;
11
+ }
12
+ /**
13
+ * @description A new ed25519 pair; `comment` is kept in the private key only. `ssh2`'s generator drops a leading zero byte of the key
14
+ * now and then (about 1 key in 300 comes out with a 31-byte public key, which neither `ssh2` nor OpenSSH can read), so every pair is
15
+ * read back before it is returned and a bad one is made again.
16
+ */
17
+ export declare function generateEd25519KeyPair(comment: string): SshKeyPair;
18
+ /** @description `value` as a public key, or `null` when it is not exactly `<type> <base64>`. */
19
+ export declare function parsePublicKey(value: string): ParsedPublicKey | null;
20
+ /** @description Is `value` a public key of the type charness issues to runners and the hub — ed25519 — in the strict form? */
21
+ export declare function checkIsEd25519PublicKey(value: string): boolean;
22
+ /** @description `SHA256:…`, the fingerprint `ssh-keygen -l` prints. */
23
+ export declare function getPublicKeyFingerprint(publicKey: string): string;
24
+ /** @description A random identifier (12 lowercase hex digits) safe in a file name, a shell word, an `authorized_keys` option and as the first word of an argument list. */
25
+ export declare function createRandomId(): string;
26
+ //# sourceMappingURL=sshKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sshKeys.d.ts","sourceRoot":"","sources":["../../src/runners/sshKeys.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CASlE;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAKpE;AAED,8HAA8H;AAC9H,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,2KAA2K;AAC3K,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateEd25519KeyPair = generateEd25519KeyPair;
4
+ exports.parsePublicKey = parsePublicKey;
5
+ exports.checkIsEd25519PublicKey = checkIsEd25519PublicKey;
6
+ exports.getPublicKeyFingerprint = getPublicKeyFingerprint;
7
+ exports.createRandomId = createRandomId;
8
+ const crypto_1 = require("crypto");
9
+ const ssh2_1 = require("ssh2");
10
+ /**
11
+ * @description The few things charness does with ssh keys: make an ed25519 pair (the runner's own, the hub's, a pairing's temporary
12
+ * one), write a public key the way `authorized_keys` and `known_hosts` read it, and its fingerprint. Public keys are kept as the
13
+ * two-field `<type> <base64>` text — no comment — and checked against a strict pattern before they are ever written into a file
14
+ * sshd reads: a key that carried a newline or an option would be a line of its own.
15
+ */
16
+ const base64Alphabet = 'A-Za-z0-9+/';
17
+ const publicKeyPattern = new RegExp(`^(ssh-ed25519|ecdsa-sha2-nistp(?:256|384|521)|ssh-rsa) ([${base64Alphabet}]+={0,2})$`);
18
+ const ed25519Type = 'ssh-ed25519';
19
+ const idByteLength = 6;
20
+ /** The odds of a bad key are about 1 in 300: ten tries in a row failing is not luck. */
21
+ const maxKeyGenerationAttempts = 10;
22
+ /**
23
+ * @description A new ed25519 pair; `comment` is kept in the private key only. `ssh2`'s generator drops a leading zero byte of the key
24
+ * now and then (about 1 key in 300 comes out with a 31-byte public key, which neither `ssh2` nor OpenSSH can read), so every pair is
25
+ * read back before it is returned and a bad one is made again.
26
+ */
27
+ function generateEd25519KeyPair(comment) {
28
+ for (let attempt = 0; attempt < maxKeyGenerationAttempts; attempt += 1) {
29
+ const generated = ssh2_1.utils.generateKeyPairSync('ed25519', { comment });
30
+ const publicKey = generated.public.split(' ').slice(0, 2).join(' ');
31
+ if (!(ssh2_1.utils.parseKey(publicKey) instanceof Error) && !(ssh2_1.utils.parseKey(generated.private) instanceof Error)) {
32
+ return { privateKey: generated.private, publicKey };
33
+ }
34
+ }
35
+ throw new Error('could not generate a readable ed25519 key');
36
+ }
37
+ /** @description `value` as a public key, or `null` when it is not exactly `<type> <base64>`. */
38
+ function parsePublicKey(value) {
39
+ const match = publicKeyPattern.exec(value);
40
+ if (match === null)
41
+ return null;
42
+ const blob = Buffer.from(match[2], 'base64');
43
+ return blob.length === 0 ? null : { type: match[1], blob };
44
+ }
45
+ /** @description Is `value` a public key of the type charness issues to runners and the hub — ed25519 — in the strict form? */
46
+ function checkIsEd25519PublicKey(value) {
47
+ return parsePublicKey(value)?.type === ed25519Type;
48
+ }
49
+ /** @description `SHA256:…`, the fingerprint `ssh-keygen -l` prints. */
50
+ function getPublicKeyFingerprint(publicKey) {
51
+ const parsed = parsePublicKey(publicKey);
52
+ if (parsed === null)
53
+ throw new Error('not a public key');
54
+ return `SHA256:${(0, crypto_1.createHash)('sha256').update(parsed.blob).digest('base64').replace(/=+$/, '')}`;
55
+ }
56
+ /** @description A random identifier (12 lowercase hex digits) safe in a file name, a shell word, an `authorized_keys` option and as the first word of an argument list. */
57
+ function createRandomId() {
58
+ return (0, crypto_1.randomBytes)(idByteLength).toString('hex');
59
+ }
60
+ //# sourceMappingURL=sshKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sshKeys.js","sourceRoot":"","sources":["../../src/runners/sshKeys.ts"],"names":[],"mappings":";;AAmCA,wDASC;AAGD,wCAKC;AAGD,0DAEC;AAGD,0DAIC;AAGD,wCAEC;AArED,mCAAiD;AACjD,+BAA6B;AAE7B;;;;;GAKG;AAEH,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,4DAA4D,cAAc,YAAY,CAAC,CAAC;AAC5H,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,wFAAwF;AACxF,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAepC;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,OAAe;IACpD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,wBAAwB,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,YAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,YAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,YAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC3G,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC;AAED,gGAAgG;AAChG,SAAgB,cAAc,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,8HAA8H;AAC9H,SAAgB,uBAAuB,CAAC,KAAa;IACnD,OAAO,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,WAAW,CAAC;AACrD,CAAC;AAED,uEAAuE;AACvE,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzD,OAAO,UAAU,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,2KAA2K;AAC3K,SAAgB,cAAc;IAC5B,OAAO,IAAA,oBAAW,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @description A minimal, DETERMINISTIC tar writer (ustar): the same entries always give the same bytes, so the hash of the archive is
3
+ * a stable id of the package it carries (a system `tar` writes its own timestamps and ordering). Regular files only — a runner
4
+ * extracts the archive with the `tar` of its machine, which creates the folders on the way.
5
+ */
6
+ export interface TarEntry {
7
+ /** A relative path with `/` separators. */
8
+ path: string;
9
+ content: Buffer;
10
+ /** `0o755` for something that runs, else `0o644`. */
11
+ mode: number;
12
+ }
13
+ /** @description The ustar `name` and `prefix` fields for `entryPath`, or `null` when no `/` splits it into pieces that fit. */
14
+ export declare function splitTarPath(entryPath: string): {
15
+ name: string;
16
+ prefix: string;
17
+ } | null;
18
+ /** @description The archive of `entries`, in the order given, ended by the two empty blocks tar expects. */
19
+ export declare function createTarArchive(entries: readonly TarEntry[]): Buffer;
20
+ //# sourceMappingURL=tarArchive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarArchive.d.ts","sourceRoot":"","sources":["../../src/runners/tarArchive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;CACd;AAWD,+HAA+H;AAC/H,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvF;AAwBD,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CASrE"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * @description A minimal, DETERMINISTIC tar writer (ustar): the same entries always give the same bytes, so the hash of the archive is
4
+ * a stable id of the package it carries (a system `tar` writes its own timestamps and ordering). Regular files only — a runner
5
+ * extracts the archive with the `tar` of its machine, which creates the folders on the way.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.splitTarPath = splitTarPath;
9
+ exports.createTarArchive = createTarArchive;
10
+ const blockSize = 512;
11
+ /** 2000-01-01: a fixed, plausible timestamp (GNU tar warns about a 1970 one). */
12
+ const fixedModifiedTimeSeconds = 946684800;
13
+ const maxNameLength = 100;
14
+ const maxPrefixLength = 155;
15
+ const checksumFieldOffset = 148;
16
+ const checksumFieldLength = 8;
17
+ function writeText(header, offset, length, text) {
18
+ header.write(text, offset, length, 'utf8');
19
+ }
20
+ /** An octal number, zero-padded to `length - 1` digits and ended by a NUL. */
21
+ function writeOctal(header, offset, length, value) {
22
+ header.write(value.toString(8).padStart(length - 1, '0'), offset, length - 1, 'ascii');
23
+ }
24
+ /** @description The ustar `name` and `prefix` fields for `entryPath`, or `null` when no `/` splits it into pieces that fit. */
25
+ function splitTarPath(entryPath) {
26
+ if (Buffer.byteLength(entryPath) <= maxNameLength)
27
+ return { name: entryPath, prefix: '' };
28
+ for (let slash = entryPath.indexOf('/'); slash !== -1; slash = entryPath.indexOf('/', slash + 1)) {
29
+ const prefix = entryPath.slice(0, slash);
30
+ const name = entryPath.slice(slash + 1);
31
+ if (Buffer.byteLength(prefix) <= maxPrefixLength && Buffer.byteLength(name) <= maxNameLength)
32
+ return { name, prefix };
33
+ }
34
+ return null;
35
+ }
36
+ function buildHeader(entry) {
37
+ const split = splitTarPath(entry.path);
38
+ if (split === null)
39
+ throw new Error(`the path is too long for a tar header: ${entry.path}`);
40
+ const header = Buffer.alloc(blockSize);
41
+ writeText(header, 0, maxNameLength, split.name);
42
+ writeOctal(header, 100, 8, entry.mode);
43
+ writeOctal(header, 108, 8, 0);
44
+ writeOctal(header, 116, 8, 0);
45
+ writeOctal(header, 124, 12, entry.content.length);
46
+ writeOctal(header, 136, 12, fixedModifiedTimeSeconds);
47
+ header.fill(0x20, checksumFieldOffset, checksumFieldOffset + checksumFieldLength);
48
+ header.write('0', 156, 1, 'ascii');
49
+ header.write('ustar\0', 257, 6, 'ascii');
50
+ header.write('00', 263, 2, 'ascii');
51
+ writeText(header, 345, maxPrefixLength, split.prefix);
52
+ const checksum = header.reduce((sum, byte) => sum + byte, 0);
53
+ header.write(checksum.toString(8).padStart(6, '0'), checksumFieldOffset, 6, 'ascii');
54
+ header[checksumFieldOffset + 6] = 0;
55
+ header[checksumFieldOffset + 7] = 0x20;
56
+ return header;
57
+ }
58
+ /** @description The archive of `entries`, in the order given, ended by the two empty blocks tar expects. */
59
+ function createTarArchive(entries) {
60
+ const parts = [];
61
+ for (const entry of entries) {
62
+ parts.push(buildHeader(entry), entry.content);
63
+ const remainder = entry.content.length % blockSize;
64
+ if (remainder !== 0)
65
+ parts.push(Buffer.alloc(blockSize - remainder));
66
+ }
67
+ parts.push(Buffer.alloc(blockSize * 2));
68
+ return Buffer.concat(parts);
69
+ }
70
+ //# sourceMappingURL=tarArchive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarArchive.js","sourceRoot":"","sources":["../../src/runners/tarArchive.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,8 @@ export interface ScheduleDeliveryDeps extends PostToSessionDeps {
59
59
  runCheck: (threadKey: string, command: string, timeoutMs: number) => Promise<CheckRunResult | null>;
60
60
  /** Persist a check job's failing flag (it decides whether the next run alerts). */
61
61
  setCheckFailing: (jobId: string, isFailing: boolean) => Promise<void>;
62
+ /** Remember a check alert's pinned message on its job, so cancelling the job unpins it. */
63
+ recordAlertPin: (jobId: string, messageId: number) => Promise<void>;
62
64
  }
63
65
  /**
64
66
  * @description Prefix a scheduled job's prompt with a single English line that
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;OAIG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,qFAAqF;IACrF,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,iGAAiG;IACjG,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpG,mFAAmF;IACnF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAGrH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAe3F;AASD,sGAAsG;AACtG,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CASR;AA0FD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,GACzB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,CAqB7E"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;OAIG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,qFAAqF;IACrF,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,iGAAiG;IACjG,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpG,mFAAmF;IACnF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2FAA2F;IAC3F,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAGrH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAe3F;AASD,sGAAsG;AACtG,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CASR;AA6FD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,GACzB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,CAqB7E"}
@@ -113,18 +113,20 @@ function buildCheckFailedAnnouncement(job, fireContext, failure, output) {
113
113
  });
114
114
  }
115
115
  /**
116
- * @description Steps 1–2: post the announcement and pin it. A pin failure only
117
- * logs — the announcement is already visible.
116
+ * @description Steps 1–2: post the announcement and pin it; resolves with the pinned message id. A pin failure only
117
+ * logs — the announcement is already visible — and resolves null, as a failed send does.
118
118
  */
119
119
  async function announceAndPin(deps, job, text) {
120
120
  const messageId = await deps.announce(job.threadKey, text);
121
121
  if (messageId === null)
122
- return;
122
+ return null;
123
123
  try {
124
124
  await deps.pin(job.threadKey, messageId, job.isPinSilent === true);
125
+ return messageId;
125
126
  }
126
127
  catch (error) {
127
128
  console.warn(`[scheduler] pin announcement for job ${job.id} failed:`, error instanceof Error ? error.message : error);
129
+ return null;
128
130
  }
129
131
  }
130
132
  /**
@@ -181,7 +183,9 @@ async function deliverCheck(deps, job, fireContext) {
181
183
  }
182
184
  await deps.setCheckFailing(job.id, true);
183
185
  const failure = (0, checkRun_1.describeCheckFailure)(result, timeoutSec);
184
- await announceAndPin(deps, job, buildCheckFailedAnnouncement(job, fireContext, failure, result.output));
186
+ const alertPinId = await announceAndPin(deps, job, buildCheckFailedAnnouncement(job, fireContext, failure, result.output));
187
+ if (alertPinId !== null)
188
+ await deps.recordAlertPin(job.id, alertPinId);
185
189
  return deliverToAgent(deps, job, (0, checkRun_1.buildCheckFailurePrompt)({ name: job.name, command, failure, output: result.output, prompt: job.prompt }));
186
190
  }
187
191
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { type RequestId } from '@modelcontextprotocol/sdk/types.js';
2
2
  import type { StateStore } from '../state';
3
3
  import { type PlatformId } from '../sessionKey';
4
- import type { ClaudeProfilesReport } from '../utils/claudeUsage';
4
+ import { type ClaudeProfilesReport } from '../utils/claudeUsage';
5
5
  import type { SendFilesToThread } from '../utils/fileSendService';
6
6
  import { type SendMessagesToThread } from '../utils/messageSendService';
7
7
  import type { ScheduleRecord, ScheduleSpec } from './types';
8
8
  import { type AnswerRequestArgs, type AnswerRequestOutcome } from '../requests/answerRequest';
9
+ import type { TodoUpdateArgs } from '../todos/merge';
10
+ import { type TodoReadArgs, type TodoToolOutcome } from '../todos/registry';
9
11
  /**
10
12
  * @description The bot-owned MCP server exposes the agent-facing tools —
11
13
  * `schedule_create`, `schedule_list`, `schedule_cancel`, `send_file_to_user`,
@@ -73,6 +75,30 @@ export declare const schedulerMcpBindRetryDelayMs = 500;
73
75
  export declare const schedulerMcpPendingCancellationTtlMs = 30000;
74
76
  /** Global memory bound shared by pending-cancellation and recent-completion tombstones. */
75
77
  export declare const schedulerMcpPendingCancellationMax = 1000;
78
+ /**
79
+ * Claude Code cuts a server's connect-time `instructions` that are longer than this: whatever comes last is lost, silently. The Telegram
80
+ * text is within a few hundred characters of it before the remote-run bullet, so the runner lines are fitted to the room that is left.
81
+ */
82
+ export declare const claudeCodeInstructionsMaxLength = 4096;
83
+ /** What the `claude_profiles` tool asks the bot: the model, and for a resumed session the account it last ran on. */
84
+ export interface ClaudeProfilesQuery {
85
+ model: string | null;
86
+ /** The profile the resumed session last ran on; `null` for a new agent. */
87
+ currentProfile: string | null;
88
+ /** The resumed session broke off on a usage limit of `currentProfile`. */
89
+ isStoppedByLimit: boolean;
90
+ }
91
+ /**
92
+ * @name OptionalBotTools
93
+ * @description The tools a session gets only when their port is wired — the instructions name a tool only when it
94
+ * is offered.
95
+ */
96
+ export interface OptionalBotTools {
97
+ isJiraAttachmentToolOffered: boolean;
98
+ isTodoToolOffered: boolean;
99
+ /** One line per runner that is paired or listed in `runners.json` (`remoteRun/runnerSummary.ts`); none = the instructions do not mention `charness remote-run`. */
100
+ remoteRunRunnerLines: readonly string[];
101
+ }
76
102
  /**
77
103
  * Connect-time `instructions` returned in the MCP `initialize` handshake — a
78
104
  * short, high-level pointer the client surfaces to the agent BEFORE any call.
@@ -82,9 +108,11 @@ export declare const schedulerMcpPendingCancellationMax = 1000;
82
108
  *
83
109
  * @description The connect-time instructions for a session of `platform`: only
84
110
  * a Telegram session has the scheduling and send-to-topic tools, so only its
85
- * instructions name them (Jira connector plan J2, D18).
111
+ * instructions name them (Jira connector plan J2, D18); an optional tool is named
112
+ * only where it is offered. With the bot's skills off for the session
113
+ * (`isBotSkillsEnabled`, `/bot_skills`) the orchestration bullet no longer tells it to load `charness-manager`.
86
114
  */
87
- export declare function buildMcpServerInstructions(platform: PlatformId | null, isJiraAttachmentToolOffered?: boolean): string;
115
+ export declare function buildMcpServerInstructions(platform: PlatformId | null, offered: OptionalBotTools, isBotSkillsEnabled: boolean): string;
88
116
  /**
89
117
  * @name SchedulerScope
90
118
  * @description The authorisation scope a token grants. `thread` pins to one exact
@@ -158,6 +186,8 @@ export interface SchedulerMcpDeps {
158
186
  getThreadsForDirectory: (directory: string) => string[];
159
187
  /** Last-used adapter name for a thread, for the `lastAdapterName` snapshot. */
160
188
  getThreadAdapterName: (threadKey: string) => string | undefined;
189
+ /** Unpin these messages of the thread (best-effort: an already unpinned or deleted one is skipped). */
190
+ unpinMessages: (threadKey: string, messageIds: readonly number[]) => Promise<void>;
161
191
  /**
162
192
  * Send 1..10 files/images from the thread's bound folder back into the topic.
163
193
  * Path-safety, type classification, and the album/size decision live in the
@@ -196,12 +226,32 @@ export interface SchedulerMcpDeps {
196
226
  error: string;
197
227
  }>;
198
228
  /**
199
- * `claude_profiles`: the signed-in Claude account profiles with their usage windows and the one a new
200
- * process of `model` should run on (`utils/claudeUsage.ts`); the bot refreshes the snapshots on demand
201
- * before answering. Offered on every platform (a child process is launched the same way everywhere); the
229
+ * `claude_profiles`: the signed-in Claude account profiles with their usage windows and the one a process of
230
+ * `query.model` should run on (`getClaudeLaunchPick`, `utils/claudeUsage.ts`); the bot refreshes the snapshots on
231
+ * demand before answering. Offered on every platform (a child process is launched the same way everywhere); the
202
232
  * tool is absent when the port is.
203
233
  */
204
- listClaudeProfiles?: (model: string | null) => Promise<ClaudeProfilesReport>;
234
+ listClaudeProfiles?: (query: ClaudeProfilesQuery) => Promise<ClaudeProfilesReport>;
235
+ /**
236
+ * One line per runner `charness remote-run` can use — paired or in `runners.json` (`remoteRun/runnerSummary.ts`): name, OS, what it could do
237
+ * when last probed. Asked at every connect, so a runner added, removed or paused shows in the next session's instructions; absent or empty =
238
+ * the instructions do not mention remote-run.
239
+ */
240
+ getRemoteRunRunnerLines?: () => readonly string[];
241
+ /**
242
+ * Where the surface leaves one diagnostic line when it REFUSES a tool call for an unknown input key. The SDK checks
243
+ * the input before any of the bot's code runs, so without this a client that adds a key of its own to every call
244
+ * would fail every call with no trace on the operator's side. Must not throw; absent = nothing is logged.
245
+ */
246
+ logDiagnostic?: (line: string) => void;
247
+ /**
248
+ * `todo_update` / `todo_read`: the conversation's published todo list (`todos/registry.ts`). Offered to Telegram
249
+ * and Jira sessions; absent = the tools are not offered.
250
+ */
251
+ todos?: {
252
+ update: (threadKey: string, args: TodoUpdateArgs) => Promise<TodoToolOutcome>;
253
+ read: (threadKey: string, args: TodoReadArgs) => Promise<TodoToolOutcome>;
254
+ };
205
255
  /**
206
256
  * Deliver an agent's answer to a request and apply the close rules
207
257
  * (`answer_request`). The surface passes the scope check in; the rules live in
@@ -235,8 +285,8 @@ export interface SchedulerMcpHandle {
235
285
  stop(): Promise<void>;
236
286
  /** The bound port, available after `start` resolves. */
237
287
  readonly port: number;
238
- /** The digest of the tool definitions a session of `platform` connects to (see {@link getBotMcpToolDigest}). */
239
- getToolDigest(platform: PlatformId | null): string;
288
+ /** The digest of the tool definitions and instructions a session of `platform` connects to (see {@link getBotMcpToolDigest}). */
289
+ getToolDigest(platform: PlatformId | null, isBotSkillsEnabled: boolean): string;
240
290
  }
241
291
  /** The parts of a tool definition an MCP client sees — what {@link getBotMcpToolDigest} hashes. */
242
292
  export interface BotMcpToolDefinition {
@@ -261,7 +311,12 @@ export declare function buildBotMcpToolDigest(instructions: string, definitions:
261
311
  * a tool added, renamed, re-described or re-shaped changes it and nothing else
262
312
  * has to be kept in step by hand.
263
313
  */
264
- export declare function getBotMcpToolDigest(deps: SchedulerMcpDeps, platform: PlatformId | null): string;
314
+ export declare function getBotMcpToolDigest(deps: SchedulerMcpDeps, platform: PlatformId | null, isBotSkillsEnabled: boolean): string;
315
+ /**
316
+ * @description The tool definitions a session of `platform` gets, recorded from the SAME registration the request
317
+ * path runs (never a handler): what the digest hashes, and what a test reads the tools' names and descriptions from.
318
+ */
319
+ export declare function getBotMcpToolDefinitions(deps: SchedulerMcpDeps, platform: PlatformId | null): BotMcpToolDefinition[];
265
320
  /**
266
321
  * @name ResolveThreadResult
267
322
  * @description Outcome of mapping a scope (+ optional `threadKey` arg) to a single
@@ -1 +1 @@
1
- {"version":3,"file":"mcpSurface.d.ts","sourceRoot":"","sources":["../../src/scheduler/mcpSurface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpSurface.d.ts","sourceRoot":"","sources":["../../src/scheduler/mcpSurface.ts"],"names":[],"mappings":"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"}