charness 3.6.1 → 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 (578) hide show
  1. package/CHANGELOG.md +267 -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 +7 -0
  66. package/dist/connectors/jira/connector.js.map +1 -1
  67. package/dist/connectors/jira/inbound.d.ts +27 -4
  68. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  69. package/dist/connectors/jira/inbound.js +69 -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/telegram/bindPicker.d.ts +5 -0
  76. package/dist/connectors/telegram/bindPicker.d.ts.map +1 -1
  77. package/dist/connectors/telegram/bindPicker.js +18 -1
  78. package/dist/connectors/telegram/bindPicker.js.map +1 -1
  79. package/dist/connectors/telegram/bindPickerClaims.d.ts +46 -0
  80. package/dist/connectors/telegram/bindPickerClaims.d.ts.map +1 -0
  81. package/dist/connectors/telegram/bindPickerClaims.js +83 -0
  82. package/dist/connectors/telegram/bindPickerClaims.js.map +1 -0
  83. package/dist/connectors/telegram/bindSweep.d.ts +32 -0
  84. package/dist/connectors/telegram/bindSweep.d.ts.map +1 -0
  85. package/dist/connectors/telegram/bindSweep.js +47 -0
  86. package/dist/connectors/telegram/bindSweep.js.map +1 -0
  87. package/dist/connectors/telegram/bindingWelcome.d.ts +23 -0
  88. package/dist/connectors/telegram/bindingWelcome.d.ts.map +1 -0
  89. package/dist/connectors/telegram/bindingWelcome.js +26 -0
  90. package/dist/connectors/telegram/bindingWelcome.js.map +1 -0
  91. package/dist/connectors/telegram/botApiConnection.d.ts +74 -0
  92. package/dist/connectors/telegram/botApiConnection.d.ts.map +1 -0
  93. package/dist/connectors/telegram/botApiConnection.js +201 -0
  94. package/dist/connectors/telegram/botApiConnection.js.map +1 -0
  95. package/dist/connectors/telegram/commands/botCore.d.ts +8 -2
  96. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -1
  97. package/dist/connectors/telegram/commands/botSkills.d.ts +21 -0
  98. package/dist/connectors/telegram/commands/botSkills.d.ts.map +1 -0
  99. package/dist/connectors/telegram/commands/botSkills.js +133 -0
  100. package/dist/connectors/telegram/commands/botSkills.js.map +1 -0
  101. package/dist/connectors/telegram/commands/callbackMessage.d.ts +5 -0
  102. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
  103. package/dist/connectors/telegram/commands/callbackMessage.js +9 -0
  104. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
  105. package/dist/connectors/telegram/commands/compaction.d.ts +65 -3
  106. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
  107. package/dist/connectors/telegram/commands/compaction.js +512 -94
  108. package/dist/connectors/telegram/commands/compaction.js.map +1 -1
  109. package/dist/connectors/telegram/commands/displayModes.d.ts +1 -1
  110. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
  111. package/dist/connectors/telegram/commands/displayModes.js +6 -18
  112. package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
  113. package/dist/connectors/telegram/commands/fallbackChain.js +5 -5
  114. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
  115. package/dist/connectors/telegram/commands/reminders.d.ts +1 -1
  116. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -1
  117. package/dist/connectors/telegram/commands/reminders.js +4 -15
  118. package/dist/connectors/telegram/commands/reminders.js.map +1 -1
  119. package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -1
  120. package/dist/connectors/telegram/commands/selfUpdate.js +1 -11
  121. package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -1
  122. package/dist/connectors/telegram/commands/taskAgents.d.ts +22 -0
  123. package/dist/connectors/telegram/commands/taskAgents.d.ts.map +1 -0
  124. package/dist/connectors/telegram/commands/taskAgents.js +104 -0
  125. package/dist/connectors/telegram/commands/taskAgents.js.map +1 -0
  126. package/dist/connectors/telegram/commands/todo.d.ts +82 -0
  127. package/dist/connectors/telegram/commands/todo.d.ts.map +1 -0
  128. package/dist/connectors/telegram/commands/todo.js +384 -0
  129. package/dist/connectors/telegram/commands/todo.js.map +1 -0
  130. package/dist/connectors/telegram/commands/topicCommand.d.ts +6 -2
  131. package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -1
  132. package/dist/connectors/telegram/commands/topicCommand.js +6 -9
  133. package/dist/connectors/telegram/commands/topicCommand.js.map +1 -1
  134. package/dist/connectors/telegram/openBindMessages.d.ts +45 -0
  135. package/dist/connectors/telegram/openBindMessages.d.ts.map +1 -0
  136. package/dist/connectors/telegram/openBindMessages.js +67 -0
  137. package/dist/connectors/telegram/openBindMessages.js.map +1 -0
  138. package/dist/connectors/telegram/outputFlushPlan.d.ts +49 -0
  139. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -1
  140. package/dist/connectors/telegram/outputFlushPlan.js +46 -0
  141. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -1
  142. package/dist/connectors/telegram/pendingTopicName.d.ts +26 -0
  143. package/dist/connectors/telegram/pendingTopicName.d.ts.map +1 -0
  144. package/dist/connectors/telegram/pendingTopicName.js +27 -0
  145. package/dist/connectors/telegram/pendingTopicName.js.map +1 -0
  146. package/dist/connectors/test/connector.d.ts.map +1 -1
  147. package/dist/connectors/test/connector.js +6 -1
  148. package/dist/connectors/test/connector.js.map +1 -1
  149. package/dist/i18n/de.d.ts.map +1 -1
  150. package/dist/i18n/de.js +90 -7
  151. package/dist/i18n/de.js.map +1 -1
  152. package/dist/i18n/en.d.ts.map +1 -1
  153. package/dist/i18n/en.js +90 -7
  154. package/dist/i18n/en.js.map +1 -1
  155. package/dist/i18n/es.d.ts.map +1 -1
  156. package/dist/i18n/es.js +90 -7
  157. package/dist/i18n/es.js.map +1 -1
  158. package/dist/i18n/fr.d.ts.map +1 -1
  159. package/dist/i18n/fr.js +90 -7
  160. package/dist/i18n/fr.js.map +1 -1
  161. package/dist/i18n/hi.d.ts.map +1 -1
  162. package/dist/i18n/hi.js +90 -7
  163. package/dist/i18n/hi.js.map +1 -1
  164. package/dist/i18n/ja.d.ts.map +1 -1
  165. package/dist/i18n/ja.js +90 -7
  166. package/dist/i18n/ja.js.map +1 -1
  167. package/dist/i18n/ka.d.ts.map +1 -1
  168. package/dist/i18n/ka.js +90 -7
  169. package/dist/i18n/ka.js.map +1 -1
  170. package/dist/i18n/pt.d.ts.map +1 -1
  171. package/dist/i18n/pt.js +90 -7
  172. package/dist/i18n/pt.js.map +1 -1
  173. package/dist/i18n/ru.d.ts.map +1 -1
  174. package/dist/i18n/ru.js +90 -7
  175. package/dist/i18n/ru.js.map +1 -1
  176. package/dist/i18n/uk.d.ts.map +1 -1
  177. package/dist/i18n/uk.js +90 -7
  178. package/dist/i18n/uk.js.map +1 -1
  179. package/dist/i18n/uz.d.ts.map +1 -1
  180. package/dist/i18n/uz.js +90 -7
  181. package/dist/i18n/uz.js.map +1 -1
  182. package/dist/i18n/zh.d.ts.map +1 -1
  183. package/dist/i18n/zh.js +90 -7
  184. package/dist/i18n/zh.js.map +1 -1
  185. package/dist/i18n.d.ts +1 -1
  186. package/dist/i18n.js +1 -1
  187. package/dist/installManager.d.ts +13 -0
  188. package/dist/installManager.d.ts.map +1 -1
  189. package/dist/installManager.js +38 -4
  190. package/dist/installManager.js.map +1 -1
  191. package/dist/instanceSettings.d.ts +40 -1
  192. package/dist/instanceSettings.d.ts.map +1 -1
  193. package/dist/instanceSettings.js +105 -26
  194. package/dist/instanceSettings.js.map +1 -1
  195. package/dist/openCodeQuestionFlow.d.ts +30 -0
  196. package/dist/openCodeQuestionFlow.d.ts.map +1 -1
  197. package/dist/openCodeQuestionFlow.js +43 -0
  198. package/dist/openCodeQuestionFlow.js.map +1 -1
  199. package/dist/postToSession.d.ts +20 -5
  200. package/dist/postToSession.d.ts.map +1 -1
  201. package/dist/postToSession.js +38 -7
  202. package/dist/postToSession.js.map +1 -1
  203. package/dist/remoteRun/cliArgs.d.ts +73 -0
  204. package/dist/remoteRun/cliArgs.d.ts.map +1 -0
  205. package/dist/remoteRun/cliArgs.js +197 -0
  206. package/dist/remoteRun/cliArgs.js.map +1 -0
  207. package/dist/remoteRun/commands.d.ts +56 -0
  208. package/dist/remoteRun/commands.d.ts.map +1 -0
  209. package/dist/remoteRun/commands.js +306 -0
  210. package/dist/remoteRun/commands.js.map +1 -0
  211. package/dist/remoteRun/depsPlan.d.ts +16 -0
  212. package/dist/remoteRun/depsPlan.d.ts.map +1 -0
  213. package/dist/remoteRun/depsPlan.js +82 -0
  214. package/dist/remoteRun/depsPlan.js.map +1 -0
  215. package/dist/remoteRun/exitCodes.d.ts +34 -0
  216. package/dist/remoteRun/exitCodes.d.ts.map +1 -0
  217. package/dist/remoteRun/exitCodes.js +38 -0
  218. package/dist/remoteRun/exitCodes.js.map +1 -0
  219. package/dist/remoteRun/foreground.d.ts +29 -0
  220. package/dist/remoteRun/foreground.d.ts.map +1 -0
  221. package/dist/remoteRun/foreground.js +159 -0
  222. package/dist/remoteRun/foreground.js.map +1 -0
  223. package/dist/remoteRun/interrupts.d.ts +17 -0
  224. package/dist/remoteRun/interrupts.d.ts.map +1 -0
  225. package/dist/remoteRun/interrupts.js +41 -0
  226. package/dist/remoteRun/interrupts.js.map +1 -0
  227. package/dist/remoteRun/jobFiles.d.ts +31 -0
  228. package/dist/remoteRun/jobFiles.d.ts.map +1 -0
  229. package/dist/remoteRun/jobFiles.js +84 -0
  230. package/dist/remoteRun/jobFiles.js.map +1 -0
  231. package/dist/remoteRun/jobFormat.d.ts +16 -0
  232. package/dist/remoteRun/jobFormat.d.ts.map +1 -0
  233. package/dist/remoteRun/jobFormat.js +130 -0
  234. package/dist/remoteRun/jobFormat.js.map +1 -0
  235. package/dist/remoteRun/jobId.d.ts +15 -0
  236. package/dist/remoteRun/jobId.d.ts.map +1 -0
  237. package/dist/remoteRun/jobId.js +85 -0
  238. package/dist/remoteRun/jobId.js.map +1 -0
  239. package/dist/remoteRun/jobMeta.d.ts +18 -0
  240. package/dist/remoteRun/jobMeta.d.ts.map +1 -0
  241. package/dist/remoteRun/jobMeta.js +33 -0
  242. package/dist/remoteRun/jobMeta.js.map +1 -0
  243. package/dist/remoteRun/jobQuery.d.ts +12 -0
  244. package/dist/remoteRun/jobQuery.d.ts.map +1 -0
  245. package/dist/remoteRun/jobQuery.js +22 -0
  246. package/dist/remoteRun/jobQuery.js.map +1 -0
  247. package/dist/remoteRun/jobRecords.d.ts +22 -0
  248. package/dist/remoteRun/jobRecords.d.ts.map +1 -0
  249. package/dist/remoteRun/jobRecords.js +145 -0
  250. package/dist/remoteRun/jobRecords.js.map +1 -0
  251. package/dist/remoteRun/jobState.d.ts +62 -0
  252. package/dist/remoteRun/jobState.d.ts.map +1 -0
  253. package/dist/remoteRun/jobState.js +132 -0
  254. package/dist/remoteRun/jobState.js.map +1 -0
  255. package/dist/remoteRun/leaseTiming.d.ts +18 -0
  256. package/dist/remoteRun/leaseTiming.d.ts.map +1 -0
  257. package/dist/remoteRun/leaseTiming.js +43 -0
  258. package/dist/remoteRun/leaseTiming.js.map +1 -0
  259. package/dist/remoteRun/output.d.ts +35 -0
  260. package/dist/remoteRun/output.d.ts.map +1 -0
  261. package/dist/remoteRun/output.js +82 -0
  262. package/dist/remoteRun/output.js.map +1 -0
  263. package/dist/remoteRun/pathPatterns.d.ts +33 -0
  264. package/dist/remoteRun/pathPatterns.d.ts.map +1 -0
  265. package/dist/remoteRun/pathPatterns.js +115 -0
  266. package/dist/remoteRun/pathPatterns.js.map +1 -0
  267. package/dist/remoteRun/probe.d.ts +56 -0
  268. package/dist/remoteRun/probe.d.ts.map +1 -0
  269. package/dist/remoteRun/probe.js +123 -0
  270. package/dist/remoteRun/probe.js.map +1 -0
  271. package/dist/remoteRun/project.d.ts +26 -0
  272. package/dist/remoteRun/project.d.ts.map +1 -0
  273. package/dist/remoteRun/project.js +159 -0
  274. package/dist/remoteRun/project.js.map +1 -0
  275. package/dist/remoteRun/projectConfig.d.ts +38 -0
  276. package/dist/remoteRun/projectConfig.d.ts.map +1 -0
  277. package/dist/remoteRun/projectConfig.js +87 -0
  278. package/dist/remoteRun/projectConfig.js.map +1 -0
  279. package/dist/remoteRun/remoteRunCli.d.ts +15 -0
  280. package/dist/remoteRun/remoteRunCli.d.ts.map +1 -0
  281. package/dist/remoteRun/remoteRunCli.js +144 -0
  282. package/dist/remoteRun/remoteRunCli.js.map +1 -0
  283. package/dist/remoteRun/remoteRunError.d.ts +14 -0
  284. package/dist/remoteRun/remoteRunError.d.ts.map +1 -0
  285. package/dist/remoteRun/remoteRunError.js +28 -0
  286. package/dist/remoteRun/remoteRunError.js.map +1 -0
  287. package/dist/remoteRun/rsync.d.ts +17 -0
  288. package/dist/remoteRun/rsync.d.ts.map +1 -0
  289. package/dist/remoteRun/rsync.js +39 -0
  290. package/dist/remoteRun/rsync.js.map +1 -0
  291. package/dist/remoteRun/runnerClient.d.ts +50 -0
  292. package/dist/remoteRun/runnerClient.d.ts.map +1 -0
  293. package/dist/remoteRun/runnerClient.js +139 -0
  294. package/dist/remoteRun/runnerClient.js.map +1 -0
  295. package/dist/remoteRun/runners.d.ts +57 -0
  296. package/dist/remoteRun/runners.d.ts.map +1 -0
  297. package/dist/remoteRun/runners.js +181 -0
  298. package/dist/remoteRun/runners.js.map +1 -0
  299. package/dist/remoteRun/runnersConfig.d.ts +44 -0
  300. package/dist/remoteRun/runnersConfig.d.ts.map +1 -0
  301. package/dist/remoteRun/runnersConfig.js +107 -0
  302. package/dist/remoteRun/runnersConfig.js.map +1 -0
  303. package/dist/remoteRun/safeCopy.d.ts +31 -0
  304. package/dist/remoteRun/safeCopy.d.ts.map +1 -0
  305. package/dist/remoteRun/safeCopy.js +137 -0
  306. package/dist/remoteRun/safeCopy.js.map +1 -0
  307. package/dist/remoteRun/sendPlan.d.ts +67 -0
  308. package/dist/remoteRun/sendPlan.d.ts.map +1 -0
  309. package/dist/remoteRun/sendPlan.js +139 -0
  310. package/dist/remoteRun/sendPlan.js.map +1 -0
  311. package/dist/remoteRun/ssh.d.ts +62 -0
  312. package/dist/remoteRun/ssh.d.ts.map +1 -0
  313. package/dist/remoteRun/ssh.js +202 -0
  314. package/dist/remoteRun/ssh.js.map +1 -0
  315. package/dist/remoteRun/submit.d.ts +29 -0
  316. package/dist/remoteRun/submit.d.ts.map +1 -0
  317. package/dist/remoteRun/submit.js +142 -0
  318. package/dist/remoteRun/submit.js.map +1 -0
  319. package/dist/requests/answerRequest.d.ts +5 -0
  320. package/dist/requests/answerRequest.d.ts.map +1 -1
  321. package/dist/requests/answerRequest.js +16 -1
  322. package/dist/requests/answerRequest.js.map +1 -1
  323. package/dist/requests/requestLedger.d.ts +13 -0
  324. package/dist/requests/requestLedger.d.ts.map +1 -1
  325. package/dist/requests/requestLedger.js +9 -0
  326. package/dist/requests/requestLedger.js.map +1 -1
  327. package/dist/requests/topicRequestSettle.d.ts +30 -0
  328. package/dist/requests/topicRequestSettle.d.ts.map +1 -0
  329. package/dist/requests/topicRequestSettle.js +23 -0
  330. package/dist/requests/topicRequestSettle.js.map +1 -0
  331. package/dist/requests/wakeUpEngine.d.ts +4 -0
  332. package/dist/requests/wakeUpEngine.d.ts.map +1 -1
  333. package/dist/requests/wakeUpEngine.js +5 -1
  334. package/dist/requests/wakeUpEngine.js.map +1 -1
  335. package/dist/scheduler/delivery.d.ts +2 -0
  336. package/dist/scheduler/delivery.d.ts.map +1 -1
  337. package/dist/scheduler/delivery.js +8 -4
  338. package/dist/scheduler/delivery.js.map +1 -1
  339. package/dist/scheduler/mcpSurface.d.ts +59 -10
  340. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  341. package/dist/scheduler/mcpSurface.js +276 -79
  342. package/dist/scheduler/mcpSurface.js.map +1 -1
  343. package/dist/scheduler/recurrence.d.ts +5 -0
  344. package/dist/scheduler/recurrence.d.ts.map +1 -1
  345. package/dist/scheduler/recurrence.js +12 -2
  346. package/dist/scheduler/recurrence.js.map +1 -1
  347. package/dist/scheduler/strictToolInput.d.ts +45 -0
  348. package/dist/scheduler/strictToolInput.d.ts.map +1 -0
  349. package/dist/scheduler/strictToolInput.js +155 -0
  350. package/dist/scheduler/strictToolInput.js.map +1 -0
  351. package/dist/scheduler/types.d.ts +5 -0
  352. package/dist/scheduler/types.d.ts.map +1 -1
  353. package/dist/scheduler/workerWatch.d.ts +23 -0
  354. package/dist/scheduler/workerWatch.d.ts.map +1 -0
  355. package/dist/scheduler/workerWatch.js +26 -0
  356. package/dist/scheduler/workerWatch.js.map +1 -0
  357. package/dist/selfUpdate/emittedSource.d.ts +11 -0
  358. package/dist/selfUpdate/emittedSource.d.ts.map +1 -0
  359. package/dist/selfUpdate/emittedSource.js +24 -0
  360. package/dist/selfUpdate/emittedSource.js.map +1 -0
  361. package/dist/selfUpdate/gitSource.d.ts +0 -6
  362. package/dist/selfUpdate/gitSource.d.ts.map +1 -1
  363. package/dist/selfUpdate/gitSource.js +2 -18
  364. package/dist/selfUpdate/gitSource.js.map +1 -1
  365. package/dist/selfUpdate/updatePending.d.ts +1 -1
  366. package/dist/sendErrorClassifier.d.ts +10 -0
  367. package/dist/sendErrorClassifier.d.ts.map +1 -1
  368. package/dist/sendErrorClassifier.js +22 -0
  369. package/dist/sendErrorClassifier.js.map +1 -1
  370. package/dist/state.d.ts +78 -7
  371. package/dist/state.d.ts.map +1 -1
  372. package/dist/state.js +125 -8
  373. package/dist/state.js.map +1 -1
  374. package/dist/stateFile.d.ts +9 -0
  375. package/dist/stateFile.d.ts.map +1 -0
  376. package/dist/stateFile.js +57 -0
  377. package/dist/stateFile.js.map +1 -0
  378. package/dist/stt/sttInstall.d.ts +7 -3
  379. package/dist/stt/sttInstall.d.ts.map +1 -1
  380. package/dist/stt/sttInstall.js +8 -4
  381. package/dist/stt/sttInstall.js.map +1 -1
  382. package/dist/stt/sttSettings.d.ts +2 -1
  383. package/dist/stt/sttSettings.d.ts.map +1 -1
  384. package/dist/stt/sttSettings.js +3 -2
  385. package/dist/stt/sttSettings.js.map +1 -1
  386. package/dist/stt/transcribeChain.js +2 -0
  387. package/dist/stt/transcribeChain.js.map +1 -1
  388. package/dist/testTimings.d.ts +13 -3
  389. package/dist/testTimings.d.ts.map +1 -1
  390. package/dist/testTimings.js +26 -2
  391. package/dist/testTimings.js.map +1 -1
  392. package/dist/todos/board.d.ts +83 -0
  393. package/dist/todos/board.d.ts.map +1 -0
  394. package/dist/todos/board.js +227 -0
  395. package/dist/todos/board.js.map +1 -0
  396. package/dist/todos/format.d.ts +33 -0
  397. package/dist/todos/format.d.ts.map +1 -0
  398. package/dist/todos/format.js +90 -0
  399. package/dist/todos/format.js.map +1 -0
  400. package/dist/todos/merge.d.ts +46 -0
  401. package/dist/todos/merge.d.ts.map +1 -0
  402. package/dist/todos/merge.js +137 -0
  403. package/dist/todos/merge.js.map +1 -0
  404. package/dist/todos/midTurn.d.ts +75 -0
  405. package/dist/todos/midTurn.d.ts.map +1 -0
  406. package/dist/todos/midTurn.js +214 -0
  407. package/dist/todos/midTurn.js.map +1 -0
  408. package/dist/todos/nag.d.ts +85 -0
  409. package/dist/todos/nag.d.ts.map +1 -0
  410. package/dist/todos/nag.js +103 -0
  411. package/dist/todos/nag.js.map +1 -0
  412. package/dist/todos/order.d.ts +25 -0
  413. package/dist/todos/order.d.ts.map +1 -0
  414. package/dist/todos/order.js +61 -0
  415. package/dist/todos/order.js.map +1 -0
  416. package/dist/todos/projects.d.ts +102 -0
  417. package/dist/todos/projects.d.ts.map +1 -0
  418. package/dist/todos/projects.js +342 -0
  419. package/dist/todos/projects.js.map +1 -0
  420. package/dist/todos/registry.d.ts +64 -0
  421. package/dist/todos/registry.d.ts.map +1 -0
  422. package/dist/todos/registry.js +116 -0
  423. package/dist/todos/registry.js.map +1 -0
  424. package/dist/todos/reminderEngine.d.ts +78 -0
  425. package/dist/todos/reminderEngine.d.ts.map +1 -0
  426. package/dist/todos/reminderEngine.js +162 -0
  427. package/dist/todos/reminderEngine.js.map +1 -0
  428. package/dist/todos/store.d.ts +34 -0
  429. package/dist/todos/store.d.ts.map +1 -0
  430. package/dist/todos/store.js +208 -0
  431. package/dist/todos/store.js.map +1 -0
  432. package/dist/todos/tools.d.ts +26 -0
  433. package/dist/todos/tools.d.ts.map +1 -0
  434. package/dist/todos/tools.js +25 -0
  435. package/dist/todos/tools.js.map +1 -0
  436. package/dist/todos/types.d.ts +85 -0
  437. package/dist/todos/types.d.ts.map +1 -0
  438. package/dist/todos/types.js +30 -0
  439. package/dist/todos/types.js.map +1 -0
  440. package/dist/trackers/taskAgentLimit.d.ts +58 -0
  441. package/dist/trackers/taskAgentLimit.d.ts.map +1 -0
  442. package/dist/trackers/taskAgentLimit.js +62 -0
  443. package/dist/trackers/taskAgentLimit.js.map +1 -0
  444. package/dist/trackers/taskAgentSlots.d.ts +109 -0
  445. package/dist/trackers/taskAgentSlots.d.ts.map +1 -0
  446. package/dist/trackers/taskAgentSlots.js +227 -0
  447. package/dist/trackers/taskAgentSlots.js.map +1 -0
  448. package/dist/trackers/types.d.ts +14 -0
  449. package/dist/trackers/types.d.ts.map +1 -0
  450. package/dist/trackers/types.js +3 -0
  451. package/dist/trackers/types.js.map +1 -0
  452. package/dist/types.d.ts +80 -4
  453. package/dist/types.d.ts.map +1 -1
  454. package/dist/utils/adoptReplayGate.d.ts +16 -0
  455. package/dist/utils/adoptReplayGate.d.ts.map +1 -0
  456. package/dist/utils/adoptReplayGate.js +35 -0
  457. package/dist/utils/adoptReplayGate.js.map +1 -0
  458. package/dist/utils/agentPlugin.d.ts +113 -0
  459. package/dist/utils/agentPlugin.d.ts.map +1 -0
  460. package/dist/utils/agentPlugin.js +192 -0
  461. package/dist/utils/agentPlugin.js.map +1 -0
  462. package/dist/utils/autoContinueOnLimit.d.ts +7 -4
  463. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
  464. package/dist/utils/autoContinueOnLimit.js +8 -5
  465. package/dist/utils/autoContinueOnLimit.js.map +1 -1
  466. package/dist/utils/botSkills.d.ts +62 -0
  467. package/dist/utils/botSkills.d.ts.map +1 -0
  468. package/dist/utils/botSkills.js +53 -0
  469. package/dist/utils/botSkills.js.map +1 -0
  470. package/dist/utils/botSkillsSetting.d.ts +7 -0
  471. package/dist/utils/botSkillsSetting.d.ts.map +1 -0
  472. package/dist/utils/botSkillsSetting.js +9 -0
  473. package/dist/utils/botSkillsSetting.js.map +1 -0
  474. package/dist/utils/claudeCodeVersion.d.ts +7 -0
  475. package/dist/utils/claudeCodeVersion.d.ts.map +1 -1
  476. package/dist/utils/claudeCodeVersion.js +14 -1
  477. package/dist/utils/claudeCodeVersion.js.map +1 -1
  478. package/dist/utils/claudeCompactHook.d.ts +33 -15
  479. package/dist/utils/claudeCompactHook.d.ts.map +1 -1
  480. package/dist/utils/claudeCompactHook.js +36 -17
  481. package/dist/utils/claudeCompactHook.js.map +1 -1
  482. package/dist/utils/claudeCompactSummary.d.ts +15 -0
  483. package/dist/utils/claudeCompactSummary.d.ts.map +1 -0
  484. package/dist/utils/claudeCompactSummary.js +96 -0
  485. package/dist/utils/claudeCompactSummary.js.map +1 -0
  486. package/dist/utils/claudeLimitSwitch.d.ts +11 -9
  487. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
  488. package/dist/utils/claudeLimitSwitch.js +18 -16
  489. package/dist/utils/claudeLimitSwitch.js.map +1 -1
  490. package/dist/utils/claudeProfiles.d.ts +5 -0
  491. package/dist/utils/claudeProfiles.d.ts.map +1 -1
  492. package/dist/utils/claudeProfiles.js +14 -0
  493. package/dist/utils/claudeProfiles.js.map +1 -1
  494. package/dist/utils/claudeSessionTitle.d.ts +2 -1
  495. package/dist/utils/claudeSessionTitle.d.ts.map +1 -1
  496. package/dist/utils/claudeSessionTitle.js +14 -14
  497. package/dist/utils/claudeSessionTitle.js.map +1 -1
  498. package/dist/utils/claudeUsage.d.ts +95 -15
  499. package/dist/utils/claudeUsage.d.ts.map +1 -1
  500. package/dist/utils/claudeUsage.js +241 -41
  501. package/dist/utils/claudeUsage.js.map +1 -1
  502. package/dist/utils/claudeUsageRefresher.d.ts +10 -0
  503. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
  504. package/dist/utils/claudeUsageRefresher.js +11 -0
  505. package/dist/utils/claudeUsageRefresher.js.map +1 -1
  506. package/dist/utils/claudeUserEntry.d.ts +50 -0
  507. package/dist/utils/claudeUserEntry.d.ts.map +1 -0
  508. package/dist/utils/claudeUserEntry.js +120 -0
  509. package/dist/utils/claudeUserEntry.js.map +1 -0
  510. package/dist/utils/clearThreadOutputQueues.d.ts +4 -3
  511. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -1
  512. package/dist/utils/clearThreadOutputQueues.js +1 -1
  513. package/dist/utils/clearThreadOutputQueues.js.map +1 -1
  514. package/dist/utils/compactOnIdle.d.ts +33 -13
  515. package/dist/utils/compactOnIdle.d.ts.map +1 -1
  516. package/dist/utils/compactOnIdle.js +35 -15
  517. package/dist/utils/compactOnIdle.js.map +1 -1
  518. package/dist/utils/fallbackBridge.d.ts +5 -0
  519. package/dist/utils/fallbackBridge.d.ts.map +1 -1
  520. package/dist/utils/fallbackBridge.js +19 -3
  521. package/dist/utils/fallbackBridge.js.map +1 -1
  522. package/dist/utils/fallbackChain.d.ts +9 -3
  523. package/dist/utils/fallbackChain.d.ts.map +1 -1
  524. package/dist/utils/fallbackChain.js +21 -3
  525. package/dist/utils/fallbackChain.js.map +1 -1
  526. package/dist/utils/fileSendPlan.d.ts +6 -0
  527. package/dist/utils/fileSendPlan.d.ts.map +1 -1
  528. package/dist/utils/fileSendPlan.js +11 -0
  529. package/dist/utils/fileSendPlan.js.map +1 -1
  530. package/dist/utils/fileSendService.d.ts +7 -1
  531. package/dist/utils/fileSendService.d.ts.map +1 -1
  532. package/dist/utils/fileSendService.js +6 -2
  533. package/dist/utils/fileSendService.js.map +1 -1
  534. package/dist/utils/groupFinalizePlan.d.ts +8 -10
  535. package/dist/utils/groupFinalizePlan.d.ts.map +1 -1
  536. package/dist/utils/groupFinalizePlan.js +8 -12
  537. package/dist/utils/groupFinalizePlan.js.map +1 -1
  538. package/dist/utils/jsonStreamHost.d.ts +13 -0
  539. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  540. package/dist/utils/jsonStreamHost.js +13 -0
  541. package/dist/utils/jsonStreamHost.js.map +1 -1
  542. package/dist/utils/messageSendService.d.ts +5 -3
  543. package/dist/utils/messageSendService.d.ts.map +1 -1
  544. package/dist/utils/messageSendService.js +12 -5
  545. package/dist/utils/messageSendService.js.map +1 -1
  546. package/dist/utils/openCodeCompactPlugin.d.ts +39 -14
  547. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
  548. package/dist/utils/openCodeCompactPlugin.js +106 -38
  549. package/dist/utils/openCodeCompactPlugin.js.map +1 -1
  550. package/dist/utils/promptDelivery.d.ts +29 -12
  551. package/dist/utils/promptDelivery.d.ts.map +1 -1
  552. package/dist/utils/promptDelivery.js +13 -5
  553. package/dist/utils/promptDelivery.js.map +1 -1
  554. package/dist/utils/sentKindsSummary.d.ts +10 -0
  555. package/dist/utils/sentKindsSummary.d.ts.map +1 -0
  556. package/dist/utils/sentKindsSummary.js +18 -0
  557. package/dist/utils/sentKindsSummary.js.map +1 -0
  558. package/dist/utils/telegramError.d.ts +6 -0
  559. package/dist/utils/telegramError.d.ts.map +1 -1
  560. package/dist/utils/telegramError.js +12 -0
  561. package/dist/utils/telegramError.js.map +1 -1
  562. package/dist/utils/topicView.d.ts +1 -1
  563. package/dist/utils/topicView.js +1 -1
  564. package/dist/utils/transcribeAudio.d.ts +10 -0
  565. package/dist/utils/transcribeAudio.d.ts.map +1 -1
  566. package/dist/utils/transcribeAudio.js +22 -3
  567. package/dist/utils/transcribeAudio.js.map +1 -1
  568. package/dist/utils/transcriptErrorTime.d.ts +8 -0
  569. package/dist/utils/transcriptErrorTime.d.ts.map +1 -0
  570. package/dist/utils/transcriptErrorTime.js +56 -0
  571. package/dist/utils/transcriptErrorTime.js.map +1 -0
  572. package/dist/utils/wedgeRecovery.d.ts +2 -0
  573. package/dist/utils/wedgeRecovery.d.ts.map +1 -1
  574. package/dist/utils/wedgeRecovery.js +1 -1
  575. package/dist/utils/wedgeRecovery.js.map +1 -1
  576. package/package.json +11 -3
  577. package/remoteRun/runner.sh +1242 -0
  578. package/stt/gigaam_sidecar.py +555 -50
@@ -0,0 +1 @@
1
+ {"version":3,"file":"botApiConnection.js","sourceRoot":"","sources":["../../../src/connectors/telegram/botApiConnection.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * members it uses (`Pick<BotCore, …>`), and `bot.ts` builds the one object that satisfies them all.
5
5
  */
6
6
  import type { Context, NarrowedContext, Telegraf } from 'telegraf';
7
- import type { Message, Update } from 'telegraf/typings/core/types/typegram';
7
+ import type { InlineKeyboardMarkup, Message, Update } from 'telegraf/typings/core/types/typegram';
8
8
  import type { InboundCommand } from '../../../platform/inbound';
9
9
  import type { SessionKey } from '../../../sessionKey';
10
10
  import type { StateStore } from '../../../state';
@@ -26,7 +26,13 @@ export interface BotCore {
26
26
  }) => Promise<number | null>;
27
27
  /** Edit a message of the topic in place; `false` when the edit failed. */
28
28
  editThreadMessage: (key: SessionKey, messageId: number, text: string, extra?: object) => Promise<boolean>;
29
- deleteThreadMessage: (key: SessionKey, messageId: number) => Promise<void>;
29
+ /**
30
+ * Replace the inline keyboard of a message of the topic through the paced send queue (`null` removes it). A no-change
31
+ * edit is no failure; any other failure is logged under `logTag` and answered with `false`.
32
+ */
33
+ editThreadKeyboard: (key: SessionKey, messageId: number, keyboard: InlineKeyboardMarkup | null, logTag: string) => Promise<boolean>;
34
+ /** Delete a message of the topic; `false` when it stayed (older than 48 hours, already gone, not a topic of Telegram). */
35
+ deleteThreadMessage: (key: SessionKey, messageId: number) => Promise<boolean>;
30
36
  /** Gate a callback or message to an admin of the served group; the topic's key, or `null` when it is refused. */
31
37
  authoriseContext: (ctx: Context) => Promise<SessionKey | null>;
32
38
  /** Run `fn` with the topic's resolved locale for `t(…)`. */
@@ -1 +1 @@
1
- {"version":3,"file":"botCore.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/botCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjG,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAC5F,IAAI,CAAC;AAEV,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,QAAQ,EAAE,MAAM,UAAU,CAAC;IAC3B,uHAAuH;IACvH,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1H,0EAA0E;IAC1E,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1G,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,iHAAiH;IACjH,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC/D,4DAA4D;IAC5D,gBAAgB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC;IAC3E,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;IAC7C,4DAA4D;IAC5D,kBAAkB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,6FAA6F;IAC7F,yBAAyB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClE"}
1
+ {"version":3,"file":"botCore.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/botCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjG,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAC5F,IAAI,CAAC;AAEV,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,QAAQ,EAAE,MAAM,UAAU,CAAC;IAC3B,uHAAuH;IACvH,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1H,0EAA0E;IAC1E,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1G;;;OAGG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpI,0HAA0H;IAC1H,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,iHAAiH;IACjH,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC/D,4DAA4D;IAC5D,gBAAgB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC;IAC3E,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;IAC7C,4DAA4D;IAC5D,kBAAkB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,6FAA6F;IAC7F,yBAAyB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClE"}
@@ -0,0 +1,21 @@
1
+ import type { SessionKey } from '../../../sessionKey';
2
+ import type { BotSkillsInstanceValue, BotSkillsReader } from '../../../utils/botSkills';
3
+ import type { BotCore } from './botCore';
4
+ /** What the module needs from the bot: the shared core and the two things only the composition root knows. */
5
+ export interface BotSkillsPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'editThreadMessage' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral'> {
6
+ /** Whether the switch is on for a conversation; `null` asks for the instance value (General's, else `settings.json`'s, else ON). */
7
+ readBotSkills: BotSkillsReader;
8
+ /** The instance value with the layer it comes from (General's own choice, the settings file, the built-in default). */
9
+ readBotSkillsInstanceValue: () => BotSkillsInstanceValue;
10
+ /** Whether the topic's backend is OpenCode, whose one server serves every topic and so cannot hide the skills from one. */
11
+ checkIsOpenCodeTopic: (key: SessionKey) => boolean;
12
+ }
13
+ /**
14
+ * @description Build the «Bot skills» screen over its ports: `/bot_skills` and its three buttons. A tap writes the choice
15
+ * and edits the picker into its confirmation (a one-shot picker, like `/language`): the menu is gone once a choice is made.
16
+ */
17
+ export declare function createBotSkills(ports: BotSkillsPorts): {
18
+ registerBotSkillsCommands: () => void;
19
+ registerBotSkillsCallbacks: () => void;
20
+ };
21
+ //# sourceMappingURL=botSkills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"botSkills.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/botSkills.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAA2B,sBAAsB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,8GAA8G;AAC9G,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;IAC1J,oIAAoI;IACpI,aAAa,EAAE,eAAe,CAAC;IAC/B,uHAAuH;IACvH,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;IACzD,2HAA2H;IAC3H,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc;qCA0Fb,IAAI;sCAeH,IAAI;EAO5C"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBotSkills = createBotSkills;
4
+ /**
5
+ * The «Bot skills» switch — whether the skills Charness ships with its agents (`agent-plugin/`) and the hint to load the
6
+ * manager reach them, per topic or (in General) for the instance. See `utils/botSkills.ts` for the precedence and what OFF
7
+ * does, and README.md in this folder.
8
+ */
9
+ const telegraf_1 = require("telegraf");
10
+ const i18n_1 = require("../../../i18n");
11
+ const callbackMessage_1 = require("./callbackMessage");
12
+ /** The picker's buttons. */
13
+ const botSkillsOnCallback = 'bsk_on';
14
+ const botSkillsOffCallback = 'bsk_off';
15
+ const botSkillsSameAsGeneralCallback = 'bsk_same';
16
+ /** The word of `/bot_skills <word>` that hands a topic back to General's value. */
17
+ const sameAsGeneralArgument = 'general';
18
+ /**
19
+ * @description Build the «Bot skills» screen over its ports: `/bot_skills` and its three buttons. A tap writes the choice
20
+ * and edits the picker into its confirmation (a one-shot picker, like `/language`): the menu is gone once a choice is made.
21
+ */
22
+ function createBotSkills(ports) {
23
+ const { bot, command, getState, replyToThread, editThreadMessage, authoriseContext, withThreadLocale, checkIsGeneral, readBotSkills, readBotSkillsInstanceValue, checkIsOpenCodeTopic } = ports;
24
+ const formatState = (isEnabled) => (isEnabled ? (0, i18n_1.t)('botSkills.on') : (0, i18n_1.t)('botSkills.off'));
25
+ /**
26
+ * What the topic is told about the agent it has: a Claude agent keeps its skills until its next start; an OpenCode topic's
27
+ * skills stay listed (one server serves every topic) and only the hint changes, when that server next restarts — and it is
28
+ * shared with the OpenCode topics of the same folder.
29
+ */
30
+ const getAgentNote = (key) => (checkIsOpenCodeTopic(key) ? (0, i18n_1.t)('botSkills.openCodeTopicNote') : (0, i18n_1.t)('botSkills.runningAgentNote'));
31
+ const instanceSourceKeys = {
32
+ general: 'botSkills.instanceSourceGeneral',
33
+ settingsFile: 'botSkills.instanceSourceSettingsFile',
34
+ builtInDefault: 'botSkills.instanceSourceBuiltIn',
35
+ };
36
+ /**
37
+ * @description Write a choice and RETURN the confirmation — the one write path behind the typed form and the buttons.
38
+ * General: the instance value (`null` — «as in General» — is not offered there and changes nothing). A topic: its own
39
+ * choice, `null` drops it.
40
+ */
41
+ async function applyBotSkills(key, isGeneral, choice) {
42
+ if (isGeneral) {
43
+ if (choice !== null)
44
+ await getState().setBotSkillsGlobalValue(choice);
45
+ return (0, i18n_1.t)('botSkills.setGeneralConfirmation', { state: formatState(readBotSkills(null)) });
46
+ }
47
+ await getState().setBotSkillsOverride(key, choice);
48
+ const state = formatState(readBotSkills(key));
49
+ const confirmation = choice === null ? (0, i18n_1.t)('botSkills.followGeneralConfirmation', { state }) : (0, i18n_1.t)('botSkills.setTopicConfirmation', { state });
50
+ // A Claude topic's note continues the confirmation's line; the OpenCode one is a paragraph of its own.
51
+ return checkIsOpenCodeTopic(key) ? `${confirmation}\n\n${getAgentNote(key)}` : `${confirmation} ${getAgentNote(key)}`;
52
+ }
53
+ /** The screen's text: the value in force and where it comes from, what the switch is, and what it means for the agent. */
54
+ function buildScreenText(key, isGeneral) {
55
+ if (isGeneral) {
56
+ const instance = readBotSkillsInstanceValue();
57
+ const title = (0, i18n_1.t)('botSkills.titleGeneral', { state: formatState(instance.isEnabled), source: (0, i18n_1.t)(instanceSourceKeys[instance.source]) });
58
+ return [title, (0, i18n_1.t)('botSkills.explanationText'), (0, i18n_1.t)('botSkills.runningAgentNote'), (0, i18n_1.t)('botSkills.generalScopeNote')].join('\n\n');
59
+ }
60
+ const source = getState().getBotSkillsOverride(key) === undefined ? (0, i18n_1.t)('botSkills.sourceGeneral') : (0, i18n_1.t)('botSkills.sourceTopic');
61
+ return [(0, i18n_1.t)('botSkills.titleTopic', { state: formatState(readBotSkills(key)), source }), (0, i18n_1.t)('botSkills.explanationText'), getAgentNote(key)].join('\n\n');
62
+ }
63
+ /**
64
+ * The screen's buttons, the current choice marked ✓. General: On / Off on the instance value in force. A topic: On / Off
65
+ * and «As in General» (with the value it would give); its mark is the topic's own choice, or «As in General» when it has none.
66
+ */
67
+ function buildKeyboard(key, isGeneral) {
68
+ const mark = (isCurrent) => (isCurrent ? ' ✓' : '');
69
+ if (isGeneral) {
70
+ const isEnabled = readBotSkills(null);
71
+ return telegraf_1.Markup.inlineKeyboard([[
72
+ telegraf_1.Markup.button.callback(`${(0, i18n_1.t)('botSkills.onButton')}${mark(isEnabled)}`, botSkillsOnCallback),
73
+ telegraf_1.Markup.button.callback(`${(0, i18n_1.t)('botSkills.offButton')}${mark(!isEnabled)}`, botSkillsOffCallback),
74
+ ]]);
75
+ }
76
+ const own = getState().getBotSkillsOverride(key);
77
+ return telegraf_1.Markup.inlineKeyboard([
78
+ [
79
+ telegraf_1.Markup.button.callback(`${(0, i18n_1.t)('botSkills.onButton')}${mark(own === true)}`, botSkillsOnCallback),
80
+ telegraf_1.Markup.button.callback(`${(0, i18n_1.t)('botSkills.offButton')}${mark(own === false)}`, botSkillsOffCallback),
81
+ ],
82
+ [telegraf_1.Markup.button.callback(`${(0, i18n_1.t)('botSkills.sameAsGeneralButton', { state: formatState(readBotSkills(null)) })}${mark(own === undefined)}`, botSkillsSameAsGeneralCallback)],
83
+ ]);
84
+ }
85
+ /** The choice a typed argument names; `undefined` for none (the screen opens), and `general` means nothing in General. */
86
+ function parseChoice(argument, isGeneral) {
87
+ if (argument === 'on')
88
+ return true;
89
+ if (argument === 'off')
90
+ return false;
91
+ if (argument === sameAsGeneralArgument && !isGeneral)
92
+ return null;
93
+ return undefined;
94
+ }
95
+ /** A tap: apply the choice to the tapped topic (or General), then turn the picker into the confirmation. */
96
+ async function handleBotSkillsCallback(ctx, choice) {
97
+ const key = await authoriseContext(ctx);
98
+ if (!key) {
99
+ await ctx.answerCbQuery((0, i18n_1.t)('cb.access_denied'));
100
+ return;
101
+ }
102
+ await ctx.answerCbQuery();
103
+ await withThreadLocale(key, async () => {
104
+ const confirmation = await applyBotSkills(key, checkIsGeneral(key), choice);
105
+ const messageId = (0, callbackMessage_1.getCallbackMessageId)(ctx);
106
+ if (messageId === null)
107
+ await replyToThread(key, confirmation);
108
+ else if (!(await editThreadMessage(key, messageId, confirmation)))
109
+ console.warn('[bsk_cb] picker relabel failed');
110
+ });
111
+ }
112
+ function registerBotSkillsCommands() {
113
+ // `/bot_skills` — in General the instance value, in a topic that topic's own choice. Not gated on an adapter or a
114
+ // session: a topic may choose before its agent starts, and the choice is read at the agent's next start. `on` / `off`
115
+ // (and `general` in a topic) apply at once; bare opens the one-shot picker.
116
+ command('bot_skills', async (_ctx, key, parsed) => {
117
+ const isGeneral = checkIsGeneral(key);
118
+ const choice = parseChoice(parsed.args.join(' ').trim().toLowerCase(), isGeneral);
119
+ if (choice !== undefined) {
120
+ await replyToThread(key, await applyBotSkills(key, isGeneral, choice));
121
+ return;
122
+ }
123
+ await replyToThread(key, buildScreenText(key, isGeneral), buildKeyboard(key, isGeneral));
124
+ });
125
+ }
126
+ function registerBotSkillsCallbacks() {
127
+ bot.action(botSkillsOnCallback, (ctx) => handleBotSkillsCallback(ctx, true));
128
+ bot.action(botSkillsOffCallback, (ctx) => handleBotSkillsCallback(ctx, false));
129
+ bot.action(botSkillsSameAsGeneralCallback, (ctx) => handleBotSkillsCallback(ctx, null));
130
+ }
131
+ return { registerBotSkillsCommands, registerBotSkillsCallbacks };
132
+ }
133
+ //# sourceMappingURL=botSkills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"botSkills.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/botSkills.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,11 @@ import type { SessionKey } from '../../../sessionKey';
10
10
  * rather than resolve against another message's list.
11
11
  */
12
12
  export declare function getCallbackMessageId(ctx: Context): number | null;
13
+ /**
14
+ * @description The text of the message a callback button sits on, as Telegram shows it (formatting marks resolved away), or
15
+ * `null` when the message carries none (a photo, a very old message). What a handler needs to rewrite a message it holds no record of.
16
+ */
17
+ export declare function getCallbackMessageText(ctx: Context): string | null;
13
18
  /**
14
19
  * @description The map key of a per-MESSAGE snapshot (the list a keyboard's indexes resolve against, the rung a
15
20
  * question waits to add). A Telegram message id is unique only within ONE chat, so the chat (`key.space`) is part of
@@ -1 +1 @@
1
- {"version":3,"file":"callbackMessage.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/callbackMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnJ"}
1
+ {"version":3,"file":"callbackMessage.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/callbackMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnJ"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCallbackMessageId = getCallbackMessageId;
4
+ exports.getCallbackMessageText = getCallbackMessageText;
4
5
  exports.buildMessageSnapshotKey = buildMessageSnapshotKey;
5
6
  exports.rememberBoundedSnapshot = rememberBoundedSnapshot;
6
7
  /**
@@ -12,6 +13,14 @@ exports.rememberBoundedSnapshot = rememberBoundedSnapshot;
12
13
  function getCallbackMessageId(ctx) {
13
14
  return ctx.callbackQuery?.message?.message_id ?? null;
14
15
  }
16
+ /**
17
+ * @description The text of the message a callback button sits on, as Telegram shows it (formatting marks resolved away), or
18
+ * `null` when the message carries none (a photo, a very old message). What a handler needs to rewrite a message it holds no record of.
19
+ */
20
+ function getCallbackMessageText(ctx) {
21
+ const message = ctx.callbackQuery?.message;
22
+ return message !== undefined && 'text' in message ? message.text : null;
23
+ }
15
24
  /**
16
25
  * @description The map key of a per-MESSAGE snapshot (the list a keyboard's indexes resolve against, the rung a
17
26
  * question waits to add). A Telegram message id is unique only within ONE chat, so the chat (`key.space`) is part of
@@ -1 +1 @@
1
- {"version":3,"file":"callbackMessage.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/callbackMessage.ts"],"names":[],"mappings":";;AAYA,oDAEC;AAOD,0DAEC;AAMD,0DAQC;AA/BD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,OAAO,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,GAAe,EAAE,SAAiB;IACxE,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAY,SAAiC,EAAE,WAAmB,EAAE,QAAmB,EAAE,KAAa;IAC3I,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrC,OAAO,SAAS,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"callbackMessage.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/callbackMessage.ts"],"names":[],"mappings":";;AAYA,oDAEC;AAMD,wDAGC;AAOD,0DAEC;AAMD,0DAQC;AAxCD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,OAAO,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,GAAY;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC;IAC3C,OAAO,OAAO,KAAK,SAAS,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,GAAe,EAAE,SAAiB;IACxE,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAY,SAAiC,EAAE,WAAmB,EAAE,QAAmB,EAAE,KAAa;IAC3I,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrC,OAAO,SAAS,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1,15 +1,53 @@
1
- import type { AgentAdapter, PendingQuestionState } from '../../../types';
1
+ import type { AgentAdapter, PendingQuestionState, OpenCodeQuestion, ReAskedQuestionRecord } from '../../../types';
2
2
  import type { SessionKey } from '../../../sessionKey';
3
3
  import type { BotCore } from './botCore';
4
+ import { type QuestionEnd } from '../../../openCodeQuestionFlow';
5
+ import type { LatePromptOutcome } from '../../../utils/promptDelivery';
6
+ /**
7
+ * @description The question the idle compaction asks again (D1), from the moment the compaction starts to the moment the
8
+ * re-ask is used or closed. It goes through three phases, and the one record serves them all:
9
+ * - COMPACTING — the question was cleared and its old message lost its buttons; nothing is posted yet (`messageId: null`);
10
+ * - SENDING — the re-ask is being sent: its message exists, the bot has no id for it yet (`messageId: null`);
11
+ * - POSTED — the re-ask's message is known (`messageId`), its `reask_<i>` buttons live.
12
+ * `predecessorMessageId` is the message the question waited in before: the re-ask is always newer than it, and until the
13
+ * re-ask is posted the predecessor is where the question's result is written. `ending` is set when the record leaves the map
14
+ * as closed or answered — a re-ask that lands later ends the same way.
15
+ */
16
+ export interface ReAskedQuestion {
17
+ question: OpenCodeQuestion;
18
+ messageId: number | null;
19
+ predecessorMessageId: number | null;
20
+ /** Whether the predecessor's result («asked again below», or the ending) is written or on its way — nothing else writes it. */
21
+ isPredecessorClosed: boolean;
22
+ /** Whether the edit that gave the predecessor its result has LANDED: what the saved state says, so a restart finishes a lost edit. */
23
+ isPredecessorEditLanded: boolean;
24
+ ending: QuestionEnd | null;
25
+ /** Where the re-ask's own send is: not begun, in flight (the message exists, its id is not known), or over (landed, or failed). */
26
+ sendPhase: 'notStarted' | 'inFlight' | 'finished';
27
+ /** Whether the idle fire has decided about the re-ask (posted it, or found the record taken and left it): its result has run. */
28
+ hasIdleResultRun: boolean;
29
+ /**
30
+ * A typed number answered the question and its label is still on its way to the agent. The record is out of the map, but no
31
+ * result is written on its messages until the delivery is known (it may reach no session, and then the question is open
32
+ * again): a re-ask that lands meanwhile is left as it is, and the idle compaction leaves the predecessor alone.
33
+ */
34
+ isAnswerPending: boolean;
35
+ }
4
36
  /**
5
37
  * What the compaction flow needs from the bot: the shared core, the typing indicator, the prompt path the
6
38
  * compaction instruction goes through, and the pending-question state the idle re-ask reads and clears.
7
39
  */
8
- export interface CompactionPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'deleteThreadMessage' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral' | 'wakeSleepingSession'> {
40
+ export interface CompactionPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'editThreadKeyboard' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral' | 'wakeSleepingSession'> {
9
41
  startTypingLoader: (key: SessionKey) => void;
10
42
  forwardPromptToAgent: (key: SessionKey, adapter: AgentAdapter, text: string) => Promise<void>;
11
43
  pendingQuestions: Map<string, PendingQuestionState>;
44
+ /** Clear the topic's pending question and unpin it; its message is left as it is (the idle re-ask closes it once the re-ask is posted). */
12
45
  clearPendingQuestion: (key: SessionKey) => void;
46
+ /**
47
+ * Edit a question's message to the question as asked plus a note in place of its buttons (the text stays, the message
48
+ * is never deleted); resolves whether it was edited. The re-asked copy uses it with `unanswered` when its conversation ends.
49
+ */
50
+ closeQuestionMessage: (key: SessionKey, messageId: number, question: OpenCodeQuestion, ending: QuestionEnd) => Promise<boolean>;
13
51
  /** The idle window in force (`AGENT_IDLE_MINUTES` or the 55-minute default; L-D9). */
14
52
  idleWindowMs: number;
15
53
  /** Whether a usage-limit wait is armed for the topic — no compaction turn then (L-D6). */
@@ -21,6 +59,26 @@ export interface CompactionPorts extends Pick<BotCore, 'bot' | 'command' | 'getS
21
59
  suspendThreadSession: (key: SessionKey) => Promise<void>;
22
60
  /** Wake a SLEEPING per-turn session for its idle compaction (L-D7): a resume only; `true` when it is live. */
23
61
  resumeSleepingSessionForCompaction: (key: SessionKey) => Promise<boolean>;
62
+ /** The adapter that runs the topic's conversation (the one a topic with no pick of its own answers to). */
63
+ getThreadAdapter: (key: SessionKey) => AgentAdapter;
64
+ /**
65
+ * Hand the label of an option a person chose on a re-asked question to the conversation as a fresh prompt, routed the way
66
+ * a typed message is (a live session gets it, a stopping one buffers it, a sleeping one is woken). Resolves where it went:
67
+ * `noSession` — nowhere, and the topic was told why.
68
+ */
69
+ deliverLabel: (key: SessionKey, label: string) => Promise<LatePromptOutcome | null>;
70
+ /** Wake the topic's SLEEPING conversation for a prompt of its own; `true` when it is live (a start that failed has told the topic why). */
71
+ resumeSleepingSessionForPrompt: (key: SessionKey) => Promise<boolean>;
72
+ /** Whether a session of the topic is starting (or stopping), so a prompt is buffered for the one to come. */
73
+ checkIsStarting: (key: SessionKey) => boolean;
74
+ /**
75
+ * End a question message the bot holds no record of, when its buttons are tapped: its own text (`messageText`) stays and
76
+ * «not answered» takes the place of the buttons. Resolves whether the message was changed at all (the text edit or the
77
+ * removal of the buttons landed); when not, its buttons are still there and the next tap tries again.
78
+ */
79
+ closeOrphanQuestionMessage: (key: SessionKey, messageId: number, messageText: string | null) => Promise<boolean>;
80
+ /** A person wrote in the topic: the bot-wide effects of that (the idle latch, the todo registry) — and the re-asked question's own end. */
81
+ notePersonActivity: (key: SessionKey) => void;
24
82
  }
25
83
  /**
26
84
  * @description Build the compaction flow — `/compact`, the compact-on-idle watchdog and its deferred variant —
@@ -40,7 +98,11 @@ export declare function createCompaction(ports: CompactionPorts): {
40
98
  };
41
99
  checkIsDeferredCompactionArmed: (key: SessionKey) => boolean;
42
100
  threadsCompacting: Set<string>;
43
- reAskedQuestionOptions: Map<string, string[]>;
101
+ answerReAskedQuestionByNumber: (key: SessionKey, text: string) => Promise<boolean>;
102
+ reAskInterruptedQuestion: (key: SessionKey, saved: ReAskedQuestionRecord) => Promise<void>;
103
+ restoreReAskedQuestion: (key: SessionKey, saved: ReAskedQuestionRecord) => void;
104
+ closeSavedReAskedQuestion: (key: SessionKey, saved: ReAskedQuestionRecord) => void;
105
+ closeReAskedQuestion: (key: SessionKey) => void;
44
106
  registerCompactionCommands: () => void;
45
107
  registerCompactionCallbacks: () => void;
46
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/compaction.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAoB,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2BtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoHzC;;;GAGG;AACH,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,OAAO,EACP,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,qBAAqB,CAC9J;IACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,qBAAqB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;IACpD;;;OAGG;IACH,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,8GAA8G;IAC9G,kCAAkC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe;mCAoBf,UAAU,KAAG,OAAO;8BA6LzB,UAAU,KAAG,IAAI;kCA4Fb,UAAU,KAAG,IAAI;wCAaX,UAAU,KAAG,IAAI;iCAYxB,UAAU,KAAG,IAAI;gCAvGlB,UAAU,KAAG,IAAI;iCAiVhB,UAAU,KAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;0CA/OpC,UAAU,KAAG,OAAO;;;sCAwZ1B,IAAI;uCAgGH,IAAI;EAgC7C"}
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/compaction.ts"],"names":[],"mappings":"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"}