charness 0.0.0-stage → 3.0.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 (988) hide show
  1. package/.env.example +88 -0
  2. package/DEVELOPMENT.md +110 -0
  3. package/LICENSE +21 -0
  4. package/MIGRATION_1_TO_2.md +24 -0
  5. package/README.md +1024 -2
  6. package/dist/accessControl.d.ts +71 -0
  7. package/dist/accessControl.d.ts.map +1 -0
  8. package/dist/accessControl.js +108 -0
  9. package/dist/accessControl.js.map +1 -0
  10. package/dist/adapters/adapterEventRouting.d.ts +51 -0
  11. package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
  12. package/dist/adapters/adapterEventRouting.js +74 -0
  13. package/dist/adapters/adapterEventRouting.js.map +1 -0
  14. package/dist/adapters/adapterNames.d.ts +19 -0
  15. package/dist/adapters/adapterNames.d.ts.map +1 -0
  16. package/dist/adapters/adapterNames.js +25 -0
  17. package/dist/adapters/adapterNames.js.map +1 -0
  18. package/dist/adapters/claudeCliAdapter.d.ts +1336 -0
  19. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
  20. package/dist/adapters/claudeCliAdapter.js +4204 -0
  21. package/dist/adapters/claudeCliAdapter.js.map +1 -0
  22. package/dist/adapters/claudeJsonStreamAdapter.d.ts +548 -0
  23. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
  24. package/dist/adapters/claudeJsonStreamAdapter.js +1810 -0
  25. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
  26. package/dist/adapters/claudePlatformFlags.d.ts +35 -0
  27. package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
  28. package/dist/adapters/claudePlatformFlags.js +46 -0
  29. package/dist/adapters/claudePlatformFlags.js.map +1 -0
  30. package/dist/adapters/createAdapter.d.ts +252 -0
  31. package/dist/adapters/createAdapter.d.ts.map +1 -0
  32. package/dist/adapters/createAdapter.js +475 -0
  33. package/dist/adapters/createAdapter.js.map +1 -0
  34. package/dist/adapters/openCodeAdapter.d.ts +1446 -0
  35. package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
  36. package/dist/adapters/openCodeAdapter.js +4540 -0
  37. package/dist/adapters/openCodeAdapter.js.map +1 -0
  38. package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
  39. package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
  40. package/dist/adapters/sessionLaunchDefaults.js +15 -0
  41. package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
  42. package/dist/adapters/terminalAdapter.d.ts +68 -0
  43. package/dist/adapters/terminalAdapter.d.ts.map +1 -0
  44. package/dist/adapters/terminalAdapter.js +371 -0
  45. package/dist/adapters/terminalAdapter.js.map +1 -0
  46. package/dist/agentLogin/agentLogin.d.ts +31 -0
  47. package/dist/agentLogin/agentLogin.d.ts.map +1 -0
  48. package/dist/agentLogin/agentLogin.js +493 -0
  49. package/dist/agentLogin/agentLogin.js.map +1 -0
  50. package/dist/agentTrigger.d.ts +28 -0
  51. package/dist/agentTrigger.d.ts.map +1 -0
  52. package/dist/agentTrigger.js +53 -0
  53. package/dist/agentTrigger.js.map +1 -0
  54. package/dist/apiErrorRetry.d.ts +209 -0
  55. package/dist/apiErrorRetry.d.ts.map +1 -0
  56. package/dist/apiErrorRetry.js +351 -0
  57. package/dist/apiErrorRetry.js.map +1 -0
  58. package/dist/apiRetryKick.d.ts +148 -0
  59. package/dist/apiRetryKick.d.ts.map +1 -0
  60. package/dist/apiRetryKick.js +158 -0
  61. package/dist/apiRetryKick.js.map +1 -0
  62. package/dist/bootClassifier.d.ts +46 -0
  63. package/dist/bootClassifier.d.ts.map +1 -0
  64. package/dist/bootClassifier.js +43 -0
  65. package/dist/bootClassifier.js.map +1 -0
  66. package/dist/bot.d.ts +207 -0
  67. package/dist/bot.d.ts.map +1 -0
  68. package/dist/bot.js +10611 -0
  69. package/dist/bot.js.map +1 -0
  70. package/dist/botFileStorage.d.ts +60 -0
  71. package/dist/botFileStorage.d.ts.map +1 -0
  72. package/dist/botFileStorage.js +205 -0
  73. package/dist/botFileStorage.js.map +1 -0
  74. package/dist/cli/applyDnsFix.d.ts +7 -0
  75. package/dist/cli/applyDnsFix.d.ts.map +1 -0
  76. package/dist/cli/applyDnsFix.js +46 -0
  77. package/dist/cli/applyDnsFix.js.map +1 -0
  78. package/dist/cli/bot.d.ts +27 -0
  79. package/dist/cli/bot.d.ts.map +1 -0
  80. package/dist/cli/bot.js +98 -0
  81. package/dist/cli/bot.js.map +1 -0
  82. package/dist/cli/botEntry.d.ts +3 -0
  83. package/dist/cli/botEntry.d.ts.map +1 -0
  84. package/dist/cli/botEntry.js +11 -0
  85. package/dist/cli/botEntry.js.map +1 -0
  86. package/dist/cli/connectorGuards.d.ts +31 -0
  87. package/dist/cli/connectorGuards.d.ts.map +1 -0
  88. package/dist/cli/connectorGuards.js +159 -0
  89. package/dist/cli/connectorGuards.js.map +1 -0
  90. package/dist/cli/envLoader.d.ts +34 -0
  91. package/dist/cli/envLoader.d.ts.map +1 -0
  92. package/dist/cli/envLoader.js +132 -0
  93. package/dist/cli/envLoader.js.map +1 -0
  94. package/dist/cli/hot.d.ts +82 -0
  95. package/dist/cli/hot.d.ts.map +1 -0
  96. package/dist/cli/hot.js +323 -0
  97. package/dist/cli/hot.js.map +1 -0
  98. package/dist/cli.d.ts +3 -0
  99. package/dist/cli.d.ts.map +1 -0
  100. package/dist/cli.js +130 -0
  101. package/dist/cli.js.map +1 -0
  102. package/dist/connectors/jira/adf.d.ts +72 -0
  103. package/dist/connectors/jira/adf.d.ts.map +1 -0
  104. package/dist/connectors/jira/adf.js +407 -0
  105. package/dist/connectors/jira/adf.js.map +1 -0
  106. package/dist/connectors/jira/agentBinaries.d.ts +14 -0
  107. package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
  108. package/dist/connectors/jira/agentBinaries.js +75 -0
  109. package/dist/connectors/jira/agentBinaries.js.map +1 -0
  110. package/dist/connectors/jira/answerSink.d.ts +52 -0
  111. package/dist/connectors/jira/answerSink.d.ts.map +1 -0
  112. package/dist/connectors/jira/answerSink.js +220 -0
  113. package/dist/connectors/jira/answerSink.js.map +1 -0
  114. package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
  115. package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
  116. package/dist/connectors/jira/attachmentDownload.js +92 -0
  117. package/dist/connectors/jira/attachmentDownload.js.map +1 -0
  118. package/dist/connectors/jira/attachmentTool.d.ts +43 -0
  119. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
  120. package/dist/connectors/jira/attachmentTool.js +150 -0
  121. package/dist/connectors/jira/attachmentTool.js.map +1 -0
  122. package/dist/connectors/jira/client.d.ts +490 -0
  123. package/dist/connectors/jira/client.d.ts.map +1 -0
  124. package/dist/connectors/jira/client.js +453 -0
  125. package/dist/connectors/jira/client.js.map +1 -0
  126. package/dist/connectors/jira/config.d.ts +117 -0
  127. package/dist/connectors/jira/config.d.ts.map +1 -0
  128. package/dist/connectors/jira/config.js +350 -0
  129. package/dist/connectors/jira/config.js.map +1 -0
  130. package/dist/connectors/jira/configFile.d.ts +10 -0
  131. package/dist/connectors/jira/configFile.d.ts.map +1 -0
  132. package/dist/connectors/jira/configFile.js +50 -0
  133. package/dist/connectors/jira/configFile.js.map +1 -0
  134. package/dist/connectors/jira/connector.d.ts +68 -0
  135. package/dist/connectors/jira/connector.d.ts.map +1 -0
  136. package/dist/connectors/jira/connector.js +257 -0
  137. package/dist/connectors/jira/connector.js.map +1 -0
  138. package/dist/connectors/jira/contextLedger.d.ts +59 -0
  139. package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
  140. package/dist/connectors/jira/contextLedger.js +194 -0
  141. package/dist/connectors/jira/contextLedger.js.map +1 -0
  142. package/dist/connectors/jira/contextPreamble.d.ts +18 -0
  143. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
  144. package/dist/connectors/jira/contextPreamble.js +31 -0
  145. package/dist/connectors/jira/contextPreamble.js.map +1 -0
  146. package/dist/connectors/jira/inbound.d.ts +132 -0
  147. package/dist/connectors/jira/inbound.d.ts.map +1 -0
  148. package/dist/connectors/jira/inbound.js +316 -0
  149. package/dist/connectors/jira/inbound.js.map +1 -0
  150. package/dist/connectors/jira/issueBlocks.d.ts +51 -0
  151. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
  152. package/dist/connectors/jira/issueBlocks.js +182 -0
  153. package/dist/connectors/jira/issueBlocks.js.map +1 -0
  154. package/dist/connectors/jira/issueContext.d.ts +25 -0
  155. package/dist/connectors/jira/issueContext.d.ts.map +1 -0
  156. package/dist/connectors/jira/issueContext.js +53 -0
  157. package/dist/connectors/jira/issueContext.js.map +1 -0
  158. package/dist/connectors/jira/issueDelta.d.ts +35 -0
  159. package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
  160. package/dist/connectors/jira/issueDelta.js +50 -0
  161. package/dist/connectors/jira/issueDelta.js.map +1 -0
  162. package/dist/connectors/jira/mediaPlaceholders.d.ts +20 -0
  163. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
  164. package/dist/connectors/jira/mediaPlaceholders.js +92 -0
  165. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
  166. package/dist/connectors/jira/outbound.d.ts +6 -0
  167. package/dist/connectors/jira/outbound.d.ts.map +1 -0
  168. package/dist/connectors/jira/outbound.js +38 -0
  169. package/dist/connectors/jira/outbound.js.map +1 -0
  170. package/dist/connectors/jira/prompt.d.ts +37 -0
  171. package/dist/connectors/jira/prompt.d.ts.map +1 -0
  172. package/dist/connectors/jira/prompt.js +99 -0
  173. package/dist/connectors/jira/prompt.js.map +1 -0
  174. package/dist/connectors/jira/promptSpill.d.ts +50 -0
  175. package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
  176. package/dist/connectors/jira/promptSpill.js +157 -0
  177. package/dist/connectors/jira/promptSpill.js.map +1 -0
  178. package/dist/connectors/jira/promptText.d.ts +7 -0
  179. package/dist/connectors/jira/promptText.d.ts.map +1 -0
  180. package/dist/connectors/jira/promptText.js +26 -0
  181. package/dist/connectors/jira/promptText.js.map +1 -0
  182. package/dist/connectors/jira/sessionKeyCodec.d.ts +16 -0
  183. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
  184. package/dist/connectors/jira/sessionKeyCodec.js +101 -0
  185. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
  186. package/dist/connectors/jira/trigger.d.ts +50 -0
  187. package/dist/connectors/jira/trigger.d.ts.map +1 -0
  188. package/dist/connectors/jira/trigger.js +93 -0
  189. package/dist/connectors/jira/trigger.js.map +1 -0
  190. package/dist/connectors/jira/triggerLog.d.ts +51 -0
  191. package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
  192. package/dist/connectors/jira/triggerLog.js +78 -0
  193. package/dist/connectors/jira/triggerLog.js.map +1 -0
  194. package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
  195. package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
  196. package/dist/connectors/jira/unconfirmedPosts.js +105 -0
  197. package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
  198. package/dist/connectors/telegram/answerSink.d.ts +46 -0
  199. package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
  200. package/dist/connectors/telegram/answerSink.js +71 -0
  201. package/dist/connectors/telegram/answerSink.js.map +1 -0
  202. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +31 -0
  203. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
  204. package/dist/connectors/telegram/commands/autoContinueLimits.js +142 -0
  205. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
  206. package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
  207. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
  208. package/dist/connectors/telegram/commands/botCore.js +3 -0
  209. package/dist/connectors/telegram/commands/botCore.js.map +1 -0
  210. package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
  211. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
  212. package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
  213. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
  214. package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
  215. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
  216. package/dist/connectors/telegram/commands/compaction.js +868 -0
  217. package/dist/connectors/telegram/commands/compaction.js.map +1 -0
  218. package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
  219. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
  220. package/dist/connectors/telegram/commands/displayModes.js +335 -0
  221. package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
  222. package/dist/connectors/telegram/commands/modelProviders.d.ts +95 -0
  223. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
  224. package/dist/connectors/telegram/commands/modelProviders.js +841 -0
  225. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
  226. package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
  227. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
  228. package/dist/connectors/telegram/commands/reminders.js +624 -0
  229. package/dist/connectors/telegram/commands/reminders.js.map +1 -0
  230. package/dist/connectors/telegram/fileIntake.d.ts +166 -0
  231. package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
  232. package/dist/connectors/telegram/fileIntake.js +304 -0
  233. package/dist/connectors/telegram/fileIntake.js.map +1 -0
  234. package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
  235. package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
  236. package/dist/connectors/telegram/fileSendGateway.js +221 -0
  237. package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
  238. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
  239. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
  240. package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
  241. package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
  242. package/dist/connectors/telegram/inbound.d.ts +131 -0
  243. package/dist/connectors/telegram/inbound.d.ts.map +1 -0
  244. package/dist/connectors/telegram/inbound.js +278 -0
  245. package/dist/connectors/telegram/inbound.js.map +1 -0
  246. package/dist/connectors/telegram/languagePicker.d.ts +32 -0
  247. package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
  248. package/dist/connectors/telegram/languagePicker.js +55 -0
  249. package/dist/connectors/telegram/languagePicker.js.map +1 -0
  250. package/dist/connectors/telegram/messageSplit.d.ts +62 -0
  251. package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
  252. package/dist/connectors/telegram/messageSplit.js +119 -0
  253. package/dist/connectors/telegram/messageSplit.js.map +1 -0
  254. package/dist/connectors/telegram/outbound.d.ts +62 -0
  255. package/dist/connectors/telegram/outbound.d.ts.map +1 -0
  256. package/dist/connectors/telegram/outbound.js +116 -0
  257. package/dist/connectors/telegram/outbound.js.map +1 -0
  258. package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
  259. package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
  260. package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
  261. package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
  262. package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
  263. package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
  264. package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
  265. package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
  266. package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
  267. package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
  268. package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
  269. package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
  270. package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
  271. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
  272. package/dist/connectors/telegram/outputFlushPlan.js +120 -0
  273. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
  274. package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
  275. package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
  276. package/dist/connectors/telegram/questionKeyboards.js +37 -0
  277. package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
  278. package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
  279. package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
  280. package/dist/connectors/telegram/renderAgentHtml.js +97 -0
  281. package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
  282. package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
  283. package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
  284. package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
  285. package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
  286. package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
  287. package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
  288. package/dist/connectors/telegram/telegramCallGuard.js +35 -0
  289. package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
  290. package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
  291. package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
  292. package/dist/connectors/telegram/timezonePicker.js +142 -0
  293. package/dist/connectors/telegram/timezonePicker.js.map +1 -0
  294. package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
  295. package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
  296. package/dist/connectors/telegram/updateDispatcher.js +159 -0
  297. package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
  298. package/dist/connectors/test/connector.d.ts +52 -0
  299. package/dist/connectors/test/connector.d.ts.map +1 -0
  300. package/dist/connectors/test/connector.js +143 -0
  301. package/dist/connectors/test/connector.js.map +1 -0
  302. package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
  303. package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
  304. package/dist/connectors/test/sessionKeyCodec.js +50 -0
  305. package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
  306. package/dist/diagLog.d.ts +6 -0
  307. package/dist/diagLog.d.ts.map +1 -0
  308. package/dist/diagLog.js +58 -0
  309. package/dist/diagLog.js.map +1 -0
  310. package/dist/effortLevels.d.ts +68 -0
  311. package/dist/effortLevels.d.ts.map +1 -0
  312. package/dist/effortLevels.js +114 -0
  313. package/dist/effortLevels.js.map +1 -0
  314. package/dist/folderName.d.ts +42 -0
  315. package/dist/folderName.d.ts.map +1 -0
  316. package/dist/folderName.js +51 -0
  317. package/dist/folderName.js.map +1 -0
  318. package/dist/i18n/de.d.ts +2 -0
  319. package/dist/i18n/de.d.ts.map +1 -0
  320. package/dist/i18n/de.js +537 -0
  321. package/dist/i18n/de.js.map +1 -0
  322. package/dist/i18n/en.d.ts +7 -0
  323. package/dist/i18n/en.d.ts.map +1 -0
  324. package/dist/i18n/en.js +566 -0
  325. package/dist/i18n/en.js.map +1 -0
  326. package/dist/i18n/es.d.ts +2 -0
  327. package/dist/i18n/es.d.ts.map +1 -0
  328. package/dist/i18n/es.js +537 -0
  329. package/dist/i18n/es.js.map +1 -0
  330. package/dist/i18n/fr.d.ts +2 -0
  331. package/dist/i18n/fr.d.ts.map +1 -0
  332. package/dist/i18n/fr.js +537 -0
  333. package/dist/i18n/fr.js.map +1 -0
  334. package/dist/i18n/hi.d.ts +2 -0
  335. package/dist/i18n/hi.d.ts.map +1 -0
  336. package/dist/i18n/hi.js +537 -0
  337. package/dist/i18n/hi.js.map +1 -0
  338. package/dist/i18n/ja.d.ts +2 -0
  339. package/dist/i18n/ja.d.ts.map +1 -0
  340. package/dist/i18n/ja.js +537 -0
  341. package/dist/i18n/ja.js.map +1 -0
  342. package/dist/i18n/ka.d.ts +2 -0
  343. package/dist/i18n/ka.d.ts.map +1 -0
  344. package/dist/i18n/ka.js +537 -0
  345. package/dist/i18n/ka.js.map +1 -0
  346. package/dist/i18n/pt.d.ts +2 -0
  347. package/dist/i18n/pt.d.ts.map +1 -0
  348. package/dist/i18n/pt.js +537 -0
  349. package/dist/i18n/pt.js.map +1 -0
  350. package/dist/i18n/ru.d.ts +6 -0
  351. package/dist/i18n/ru.d.ts.map +1 -0
  352. package/dist/i18n/ru.js +540 -0
  353. package/dist/i18n/ru.js.map +1 -0
  354. package/dist/i18n/uk.d.ts +8 -0
  355. package/dist/i18n/uk.d.ts.map +1 -0
  356. package/dist/i18n/uk.js +542 -0
  357. package/dist/i18n/uk.js.map +1 -0
  358. package/dist/i18n/uz.d.ts +2 -0
  359. package/dist/i18n/uz.d.ts.map +1 -0
  360. package/dist/i18n/uz.js +537 -0
  361. package/dist/i18n/uz.js.map +1 -0
  362. package/dist/i18n/zh.d.ts +2 -0
  363. package/dist/i18n/zh.d.ts.map +1 -0
  364. package/dist/i18n/zh.js +537 -0
  365. package/dist/i18n/zh.js.map +1 -0
  366. package/dist/i18n.d.ts +115 -0
  367. package/dist/i18n.d.ts.map +1 -0
  368. package/dist/i18n.js +233 -0
  369. package/dist/i18n.js.map +1 -0
  370. package/dist/index.d.ts +3 -0
  371. package/dist/index.d.ts.map +1 -0
  372. package/dist/index.js +10 -0
  373. package/dist/index.js.map +1 -0
  374. package/dist/installManager.d.ts +99 -0
  375. package/dist/installManager.d.ts.map +1 -0
  376. package/dist/installManager.js +943 -0
  377. package/dist/installManager.js.map +1 -0
  378. package/dist/instanceLock.d.ts +161 -0
  379. package/dist/instanceLock.d.ts.map +1 -0
  380. package/dist/instanceLock.js +388 -0
  381. package/dist/instanceLock.js.map +1 -0
  382. package/dist/mcpConfig.d.ts +76 -0
  383. package/dist/mcpConfig.d.ts.map +1 -0
  384. package/dist/mcpConfig.js +270 -0
  385. package/dist/mcpConfig.js.map +1 -0
  386. package/dist/openCodeOpenQuestion.d.ts +44 -0
  387. package/dist/openCodeOpenQuestion.d.ts.map +1 -0
  388. package/dist/openCodeOpenQuestion.js +64 -0
  389. package/dist/openCodeOpenQuestion.js.map +1 -0
  390. package/dist/openCodeQuestionFlow.d.ts +105 -0
  391. package/dist/openCodeQuestionFlow.d.ts.map +1 -0
  392. package/dist/openCodeQuestionFlow.js +143 -0
  393. package/dist/openCodeQuestionFlow.js.map +1 -0
  394. package/dist/openCodeSessionRouting.d.ts +133 -0
  395. package/dist/openCodeSessionRouting.d.ts.map +1 -0
  396. package/dist/openCodeSessionRouting.js +253 -0
  397. package/dist/openCodeSessionRouting.js.map +1 -0
  398. package/dist/openCodeSessionTitle.d.ts +50 -0
  399. package/dist/openCodeSessionTitle.d.ts.map +1 -0
  400. package/dist/openCodeSessionTitle.js +84 -0
  401. package/dist/openCodeSessionTitle.js.map +1 -0
  402. package/dist/outputTrace.d.ts +108 -0
  403. package/dist/outputTrace.d.ts.map +1 -0
  404. package/dist/outputTrace.js +430 -0
  405. package/dist/outputTrace.js.map +1 -0
  406. package/dist/pendingQuestionRepost.d.ts +47 -0
  407. package/dist/pendingQuestionRepost.d.ts.map +1 -0
  408. package/dist/pendingQuestionRepost.js +29 -0
  409. package/dist/pendingQuestionRepost.js.map +1 -0
  410. package/dist/pinnedStatus.d.ts +52 -0
  411. package/dist/pinnedStatus.d.ts.map +1 -0
  412. package/dist/pinnedStatus.js +36 -0
  413. package/dist/pinnedStatus.js.map +1 -0
  414. package/dist/platform/answerSink.d.ts +93 -0
  415. package/dist/platform/answerSink.d.ts.map +1 -0
  416. package/dist/platform/answerSink.js +31 -0
  417. package/dist/platform/answerSink.js.map +1 -0
  418. package/dist/platform/capabilityFallback.d.ts +39 -0
  419. package/dist/platform/capabilityFallback.d.ts.map +1 -0
  420. package/dist/platform/capabilityFallback.js +55 -0
  421. package/dist/platform/capabilityFallback.js.map +1 -0
  422. package/dist/platform/commandRouter.d.ts +51 -0
  423. package/dist/platform/commandRouter.d.ts.map +1 -0
  424. package/dist/platform/commandRouter.js +53 -0
  425. package/dist/platform/commandRouter.js.map +1 -0
  426. package/dist/platform/connectorSet.d.ts +39 -0
  427. package/dist/platform/connectorSet.d.ts.map +1 -0
  428. package/dist/platform/connectorSet.js +55 -0
  429. package/dist/platform/connectorSet.js.map +1 -0
  430. package/dist/platform/inbound.d.ts +147 -0
  431. package/dist/platform/inbound.d.ts.map +1 -0
  432. package/dist/platform/inbound.js +18 -0
  433. package/dist/platform/inbound.js.map +1 -0
  434. package/dist/platform/outbound.d.ts +225 -0
  435. package/dist/platform/outbound.d.ts.map +1 -0
  436. package/dist/platform/outbound.js +30 -0
  437. package/dist/platform/outbound.js.map +1 -0
  438. package/dist/platform/unservedStateGuard.d.ts +27 -0
  439. package/dist/platform/unservedStateGuard.d.ts.map +1 -0
  440. package/dist/platform/unservedStateGuard.js +42 -0
  441. package/dist/platform/unservedStateGuard.js.map +1 -0
  442. package/dist/postToSession.d.ts +94 -0
  443. package/dist/postToSession.d.ts.map +1 -0
  444. package/dist/postToSession.js +56 -0
  445. package/dist/postToSession.js.map +1 -0
  446. package/dist/progressLine.d.ts +180 -0
  447. package/dist/progressLine.d.ts.map +1 -0
  448. package/dist/progressLine.js +293 -0
  449. package/dist/progressLine.js.map +1 -0
  450. package/dist/rateLimiter.d.ts +246 -0
  451. package/dist/rateLimiter.d.ts.map +1 -0
  452. package/dist/rateLimiter.js +555 -0
  453. package/dist/rateLimiter.js.map +1 -0
  454. package/dist/requests/answerRequest.d.ts +57 -0
  455. package/dist/requests/answerRequest.d.ts.map +1 -0
  456. package/dist/requests/answerRequest.js +96 -0
  457. package/dist/requests/answerRequest.js.map +1 -0
  458. package/dist/requests/answerTail.d.ts +83 -0
  459. package/dist/requests/answerTail.d.ts.map +1 -0
  460. package/dist/requests/answerTail.js +102 -0
  461. package/dist/requests/answerTail.js.map +1 -0
  462. package/dist/requests/limitWaitAnswer.d.ts +87 -0
  463. package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
  464. package/dist/requests/limitWaitAnswer.js +83 -0
  465. package/dist/requests/limitWaitAnswer.js.map +1 -0
  466. package/dist/requests/requestGroup.d.ts +44 -0
  467. package/dist/requests/requestGroup.d.ts.map +1 -0
  468. package/dist/requests/requestGroup.js +63 -0
  469. package/dist/requests/requestGroup.js.map +1 -0
  470. package/dist/requests/requestHeader.d.ts +70 -0
  471. package/dist/requests/requestHeader.d.ts.map +1 -0
  472. package/dist/requests/requestHeader.js +83 -0
  473. package/dist/requests/requestHeader.js.map +1 -0
  474. package/dist/requests/requestLedger.d.ts +217 -0
  475. package/dist/requests/requestLedger.d.ts.map +1 -0
  476. package/dist/requests/requestLedger.js +468 -0
  477. package/dist/requests/requestLedger.js.map +1 -0
  478. package/dist/requests/sessionTurnProbe.d.ts +52 -0
  479. package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
  480. package/dist/requests/sessionTurnProbe.js +29 -0
  481. package/dist/requests/sessionTurnProbe.js.map +1 -0
  482. package/dist/requests/types.d.ts +181 -0
  483. package/dist/requests/types.d.ts.map +1 -0
  484. package/dist/requests/types.js +9 -0
  485. package/dist/requests/types.js.map +1 -0
  486. package/dist/requests/wakeUpEngine.d.ts +160 -0
  487. package/dist/requests/wakeUpEngine.d.ts.map +1 -0
  488. package/dist/requests/wakeUpEngine.js +399 -0
  489. package/dist/requests/wakeUpEngine.js.map +1 -0
  490. package/dist/requests/wakeUpRules.d.ts +151 -0
  491. package/dist/requests/wakeUpRules.d.ts.map +1 -0
  492. package/dist/requests/wakeUpRules.js +167 -0
  493. package/dist/requests/wakeUpRules.js.map +1 -0
  494. package/dist/resumeContext.d.ts +87 -0
  495. package/dist/resumeContext.d.ts.map +1 -0
  496. package/dist/resumeContext.js +114 -0
  497. package/dist/resumeContext.js.map +1 -0
  498. package/dist/scheduler/checkRun.d.ts +95 -0
  499. package/dist/scheduler/checkRun.d.ts.map +1 -0
  500. package/dist/scheduler/checkRun.js +172 -0
  501. package/dist/scheduler/checkRun.js.map +1 -0
  502. package/dist/scheduler/delivery.d.ts +99 -0
  503. package/dist/scheduler/delivery.d.ts.map +1 -0
  504. package/dist/scheduler/delivery.js +212 -0
  505. package/dist/scheduler/delivery.js.map +1 -0
  506. package/dist/scheduler/deliveryKind.d.ts +29 -0
  507. package/dist/scheduler/deliveryKind.d.ts.map +1 -0
  508. package/dist/scheduler/deliveryKind.js +39 -0
  509. package/dist/scheduler/deliveryKind.js.map +1 -0
  510. package/dist/scheduler/directoryThreads.d.ts +19 -0
  511. package/dist/scheduler/directoryThreads.d.ts.map +1 -0
  512. package/dist/scheduler/directoryThreads.js +28 -0
  513. package/dist/scheduler/directoryThreads.js.map +1 -0
  514. package/dist/scheduler/engine.d.ts +77 -0
  515. package/dist/scheduler/engine.d.ts.map +1 -0
  516. package/dist/scheduler/engine.js +337 -0
  517. package/dist/scheduler/engine.js.map +1 -0
  518. package/dist/scheduler/injection.d.ts +102 -0
  519. package/dist/scheduler/injection.d.ts.map +1 -0
  520. package/dist/scheduler/injection.js +122 -0
  521. package/dist/scheduler/injection.js.map +1 -0
  522. package/dist/scheduler/mcpBoot.d.ts +65 -0
  523. package/dist/scheduler/mcpBoot.d.ts.map +1 -0
  524. package/dist/scheduler/mcpBoot.js +60 -0
  525. package/dist/scheduler/mcpBoot.js.map +1 -0
  526. package/dist/scheduler/mcpSurface.d.ts +355 -0
  527. package/dist/scheduler/mcpSurface.d.ts.map +1 -0
  528. package/dist/scheduler/mcpSurface.js +1257 -0
  529. package/dist/scheduler/mcpSurface.js.map +1 -0
  530. package/dist/scheduler/rebindResume.d.ts +27 -0
  531. package/dist/scheduler/rebindResume.d.ts.map +1 -0
  532. package/dist/scheduler/rebindResume.js +17 -0
  533. package/dist/scheduler/rebindResume.js.map +1 -0
  534. package/dist/scheduler/recurrence.d.ts +58 -0
  535. package/dist/scheduler/recurrence.d.ts.map +1 -0
  536. package/dist/scheduler/recurrence.js +210 -0
  537. package/dist/scheduler/recurrence.js.map +1 -0
  538. package/dist/scheduler/runLedger.d.ts +59 -0
  539. package/dist/scheduler/runLedger.d.ts.map +1 -0
  540. package/dist/scheduler/runLedger.js +54 -0
  541. package/dist/scheduler/runLedger.js.map +1 -0
  542. package/dist/scheduler/store.d.ts +97 -0
  543. package/dist/scheduler/store.d.ts.map +1 -0
  544. package/dist/scheduler/store.js +124 -0
  545. package/dist/scheduler/store.js.map +1 -0
  546. package/dist/scheduler/timezoneRecompute.d.ts +61 -0
  547. package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
  548. package/dist/scheduler/timezoneRecompute.js +46 -0
  549. package/dist/scheduler/timezoneRecompute.js.map +1 -0
  550. package/dist/scheduler/types.d.ts +139 -0
  551. package/dist/scheduler/types.d.ts.map +1 -0
  552. package/dist/scheduler/types.js +8 -0
  553. package/dist/scheduler/types.js.map +1 -0
  554. package/dist/sendErrorClassifier.d.ts +45 -0
  555. package/dist/sendErrorClassifier.d.ts.map +1 -0
  556. package/dist/sendErrorClassifier.js +65 -0
  557. package/dist/sendErrorClassifier.js.map +1 -0
  558. package/dist/sessionKey.d.ts +136 -0
  559. package/dist/sessionKey.d.ts.map +1 -0
  560. package/dist/sessionKey.js +153 -0
  561. package/dist/sessionKey.js.map +1 -0
  562. package/dist/sessionPick.d.ts +42 -0
  563. package/dist/sessionPick.d.ts.map +1 -0
  564. package/dist/sessionPick.js +39 -0
  565. package/dist/sessionPick.js.map +1 -0
  566. package/dist/shutdown.d.ts +126 -0
  567. package/dist/shutdown.d.ts.map +1 -0
  568. package/dist/shutdown.js +164 -0
  569. package/dist/shutdown.js.map +1 -0
  570. package/dist/startupPromptBuffer.d.ts +85 -0
  571. package/dist/startupPromptBuffer.d.ts.map +1 -0
  572. package/dist/startupPromptBuffer.js +123 -0
  573. package/dist/startupPromptBuffer.js.map +1 -0
  574. package/dist/state.d.ts +1245 -0
  575. package/dist/state.d.ts.map +1 -0
  576. package/dist/state.js +1830 -0
  577. package/dist/state.js.map +1 -0
  578. package/dist/threadContextPreamble.d.ts +89 -0
  579. package/dist/threadContextPreamble.d.ts.map +1 -0
  580. package/dist/threadContextPreamble.js +102 -0
  581. package/dist/threadContextPreamble.js.map +1 -0
  582. package/dist/threadRouting.d.ts +164 -0
  583. package/dist/threadRouting.d.ts.map +1 -0
  584. package/dist/threadRouting.js +182 -0
  585. package/dist/threadRouting.js.map +1 -0
  586. package/dist/types.d.ts +1015 -0
  587. package/dist/types.d.ts.map +1 -0
  588. package/dist/types.js +3 -0
  589. package/dist/types.js.map +1 -0
  590. package/dist/utils/abortableFifo.d.ts +10 -0
  591. package/dist/utils/abortableFifo.d.ts.map +1 -0
  592. package/dist/utils/abortableFifo.js +55 -0
  593. package/dist/utils/abortableFifo.js.map +1 -0
  594. package/dist/utils/adoptedToolList.d.ts +27 -0
  595. package/dist/utils/adoptedToolList.d.ts.map +1 -0
  596. package/dist/utils/adoptedToolList.js +22 -0
  597. package/dist/utils/adoptedToolList.js.map +1 -0
  598. package/dist/utils/agentEnvironment.d.ts +42 -0
  599. package/dist/utils/agentEnvironment.d.ts.map +1 -0
  600. package/dist/utils/agentEnvironment.js +122 -0
  601. package/dist/utils/agentEnvironment.js.map +1 -0
  602. package/dist/utils/ansiClean.d.ts +11 -0
  603. package/dist/utils/ansiClean.d.ts.map +1 -0
  604. package/dist/utils/ansiClean.js +139 -0
  605. package/dist/utils/ansiClean.js.map +1 -0
  606. package/dist/utils/autoContinueOnLimit.d.ts +49 -0
  607. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
  608. package/dist/utils/autoContinueOnLimit.js +69 -0
  609. package/dist/utils/autoContinueOnLimit.js.map +1 -0
  610. package/dist/utils/canonicalPathContainment.d.ts +7 -0
  611. package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
  612. package/dist/utils/canonicalPathContainment.js +48 -0
  613. package/dist/utils/canonicalPathContainment.js.map +1 -0
  614. package/dist/utils/claudeAuthLogin.d.ts +71 -0
  615. package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
  616. package/dist/utils/claudeAuthLogin.js +93 -0
  617. package/dist/utils/claudeAuthLogin.js.map +1 -0
  618. package/dist/utils/claudeChunkClassifier.d.ts +97 -0
  619. package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
  620. package/dist/utils/claudeChunkClassifier.js +254 -0
  621. package/dist/utils/claudeChunkClassifier.js.map +1 -0
  622. package/dist/utils/claudeCodeVersion.d.ts +31 -0
  623. package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
  624. package/dist/utils/claudeCodeVersion.js +62 -0
  625. package/dist/utils/claudeCodeVersion.js.map +1 -0
  626. package/dist/utils/claudeCompactHook.d.ts +64 -0
  627. package/dist/utils/claudeCompactHook.d.ts.map +1 -0
  628. package/dist/utils/claudeCompactHook.js +98 -0
  629. package/dist/utils/claudeCompactHook.js.map +1 -0
  630. package/dist/utils/claudeLivenessAction.d.ts +208 -0
  631. package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
  632. package/dist/utils/claudeLivenessAction.js +135 -0
  633. package/dist/utils/claudeLivenessAction.js.map +1 -0
  634. package/dist/utils/claudeMcpHeal.d.ts +92 -0
  635. package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
  636. package/dist/utils/claudeMcpHeal.js +91 -0
  637. package/dist/utils/claudeMcpHeal.js.map +1 -0
  638. package/dist/utils/claudeRelayRouting.d.ts +86 -0
  639. package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
  640. package/dist/utils/claudeRelayRouting.js +159 -0
  641. package/dist/utils/claudeRelayRouting.js.map +1 -0
  642. package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
  643. package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
  644. package/dist/utils/claudeRuntimeInfo.js +151 -0
  645. package/dist/utils/claudeRuntimeInfo.js.map +1 -0
  646. package/dist/utils/claudeScrapeShapes.d.ts +256 -0
  647. package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
  648. package/dist/utils/claudeScrapeShapes.js +290 -0
  649. package/dist/utils/claudeScrapeShapes.js.map +1 -0
  650. package/dist/utils/claudeSessionTitle.d.ts +27 -0
  651. package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
  652. package/dist/utils/claudeSessionTitle.js +90 -0
  653. package/dist/utils/claudeSessionTitle.js.map +1 -0
  654. package/dist/utils/claudeStreamJson.d.ts +202 -0
  655. package/dist/utils/claudeStreamJson.d.ts.map +1 -0
  656. package/dist/utils/claudeStreamJson.js +351 -0
  657. package/dist/utils/claudeStreamJson.js.map +1 -0
  658. package/dist/utils/claudeSubagentTail.d.ts +93 -0
  659. package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
  660. package/dist/utils/claudeSubagentTail.js +136 -0
  661. package/dist/utils/claudeSubagentTail.js.map +1 -0
  662. package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
  663. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
  664. package/dist/utils/clearThreadOutputQueues.js +39 -0
  665. package/dist/utils/clearThreadOutputQueues.js.map +1 -0
  666. package/dist/utils/compactCommandRoute.d.ts +45 -0
  667. package/dist/utils/compactCommandRoute.d.ts.map +1 -0
  668. package/dist/utils/compactCommandRoute.js +36 -0
  669. package/dist/utils/compactCommandRoute.js.map +1 -0
  670. package/dist/utils/compactOnIdle.d.ts +329 -0
  671. package/dist/utils/compactOnIdle.d.ts.map +1 -0
  672. package/dist/utils/compactOnIdle.js +379 -0
  673. package/dist/utils/compactOnIdle.js.map +1 -0
  674. package/dist/utils/consoleFileTap.d.ts +51 -0
  675. package/dist/utils/consoleFileTap.d.ts.map +1 -0
  676. package/dist/utils/consoleFileTap.js +86 -0
  677. package/dist/utils/consoleFileTap.js.map +1 -0
  678. package/dist/utils/displayVerbosity.d.ts +44 -0
  679. package/dist/utils/displayVerbosity.d.ts.map +1 -0
  680. package/dist/utils/displayVerbosity.js +75 -0
  681. package/dist/utils/displayVerbosity.js.map +1 -0
  682. package/dist/utils/download.d.ts +72 -0
  683. package/dist/utils/download.d.ts.map +1 -0
  684. package/dist/utils/download.js +216 -0
  685. package/dist/utils/download.js.map +1 -0
  686. package/dist/utils/draftFinalize.d.ts +110 -0
  687. package/dist/utils/draftFinalize.d.ts.map +1 -0
  688. package/dist/utils/draftFinalize.js +100 -0
  689. package/dist/utils/draftFinalize.js.map +1 -0
  690. package/dist/utils/draftId.d.ts +36 -0
  691. package/dist/utils/draftId.d.ts.map +1 -0
  692. package/dist/utils/draftId.js +46 -0
  693. package/dist/utils/draftId.js.map +1 -0
  694. package/dist/utils/draftPacer.d.ts +72 -0
  695. package/dist/utils/draftPacer.d.ts.map +1 -0
  696. package/dist/utils/draftPacer.js +53 -0
  697. package/dist/utils/draftPacer.js.map +1 -0
  698. package/dist/utils/effortStartupKeystroke.d.ts +20 -0
  699. package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
  700. package/dist/utils/effortStartupKeystroke.js +28 -0
  701. package/dist/utils/effortStartupKeystroke.js.map +1 -0
  702. package/dist/utils/ensureSessionPlan.d.ts +70 -0
  703. package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
  704. package/dist/utils/ensureSessionPlan.js +54 -0
  705. package/dist/utils/ensureSessionPlan.js.map +1 -0
  706. package/dist/utils/fileSendPlan.d.ts +217 -0
  707. package/dist/utils/fileSendPlan.d.ts.map +1 -0
  708. package/dist/utils/fileSendPlan.js +291 -0
  709. package/dist/utils/fileSendPlan.js.map +1 -0
  710. package/dist/utils/fileSendService.d.ts +94 -0
  711. package/dist/utils/fileSendService.d.ts.map +1 -0
  712. package/dist/utils/fileSendService.js +387 -0
  713. package/dist/utils/fileSendService.js.map +1 -0
  714. package/dist/utils/groupFinalizePlan.d.ts +38 -0
  715. package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
  716. package/dist/utils/groupFinalizePlan.js +35 -0
  717. package/dist/utils/groupFinalizePlan.js.map +1 -0
  718. package/dist/utils/identicalOutputGuard.d.ts +83 -0
  719. package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
  720. package/dist/utils/identicalOutputGuard.js +99 -0
  721. package/dist/utils/identicalOutputGuard.js.map +1 -0
  722. package/dist/utils/isoTimestamp.d.ts +16 -0
  723. package/dist/utils/isoTimestamp.d.ts.map +1 -0
  724. package/dist/utils/isoTimestamp.js +34 -0
  725. package/dist/utils/isoTimestamp.js.map +1 -0
  726. package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
  727. package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
  728. package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
  729. package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
  730. package/dist/utils/jsonStreamHost.d.ts +227 -0
  731. package/dist/utils/jsonStreamHost.d.ts.map +1 -0
  732. package/dist/utils/jsonStreamHost.js +417 -0
  733. package/dist/utils/jsonStreamHost.js.map +1 -0
  734. package/dist/utils/keyedTransitionQueue.d.ts +18 -0
  735. package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
  736. package/dist/utils/keyedTransitionQueue.js +34 -0
  737. package/dist/utils/keyedTransitionQueue.js.map +1 -0
  738. package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
  739. package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
  740. package/dist/utils/limitEpisodeRecovery.js +133 -0
  741. package/dist/utils/limitEpisodeRecovery.js.map +1 -0
  742. package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
  743. package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
  744. package/dist/utils/limitHeldPromptQueue.js +59 -0
  745. package/dist/utils/limitHeldPromptQueue.js.map +1 -0
  746. package/dist/utils/limitHeldPrompts.d.ts +58 -0
  747. package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
  748. package/dist/utils/limitHeldPrompts.js +65 -0
  749. package/dist/utils/limitHeldPrompts.js.map +1 -0
  750. package/dist/utils/linkPreviewSuppression.d.ts +18 -0
  751. package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
  752. package/dist/utils/linkPreviewSuppression.js +37 -0
  753. package/dist/utils/linkPreviewSuppression.js.map +1 -0
  754. package/dist/utils/localClock.d.ts +15 -0
  755. package/dist/utils/localClock.d.ts.map +1 -0
  756. package/dist/utils/localClock.js +29 -0
  757. package/dist/utils/localClock.js.map +1 -0
  758. package/dist/utils/markdownTableRender.d.ts +83 -0
  759. package/dist/utils/markdownTableRender.d.ts.map +1 -0
  760. package/dist/utils/markdownTableRender.js +298 -0
  761. package/dist/utils/markdownTableRender.js.map +1 -0
  762. package/dist/utils/mediaGroupCollector.d.ts +51 -0
  763. package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
  764. package/dist/utils/mediaGroupCollector.js +90 -0
  765. package/dist/utils/mediaGroupCollector.js.map +1 -0
  766. package/dist/utils/messageSendService.d.ts +136 -0
  767. package/dist/utils/messageSendService.d.ts.map +1 -0
  768. package/dist/utils/messageSendService.js +165 -0
  769. package/dist/utils/messageSendService.js.map +1 -0
  770. package/dist/utils/minutesOverride.d.ts +7 -0
  771. package/dist/utils/minutesOverride.d.ts.map +1 -0
  772. package/dist/utils/minutesOverride.js +16 -0
  773. package/dist/utils/minutesOverride.js.map +1 -0
  774. package/dist/utils/modelPickerPlan.d.ts +119 -0
  775. package/dist/utils/modelPickerPlan.d.ts.map +1 -0
  776. package/dist/utils/modelPickerPlan.js +171 -0
  777. package/dist/utils/modelPickerPlan.js.map +1 -0
  778. package/dist/utils/modelSetReplyDecision.d.ts +67 -0
  779. package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
  780. package/dist/utils/modelSetReplyDecision.js +27 -0
  781. package/dist/utils/modelSetReplyDecision.js.map +1 -0
  782. package/dist/utils/openCodeAuthLogin.d.ts +181 -0
  783. package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
  784. package/dist/utils/openCodeAuthLogin.js +393 -0
  785. package/dist/utils/openCodeAuthLogin.js.map +1 -0
  786. package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
  787. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
  788. package/dist/utils/openCodeCompactPlugin.js +146 -0
  789. package/dist/utils/openCodeCompactPlugin.js.map +1 -0
  790. package/dist/utils/openCodeTurnActivity.d.ts +67 -0
  791. package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
  792. package/dist/utils/openCodeTurnActivity.js +27 -0
  793. package/dist/utils/openCodeTurnActivity.js.map +1 -0
  794. package/dist/utils/outputDebounce.d.ts +24 -0
  795. package/dist/utils/outputDebounce.d.ts.map +1 -0
  796. package/dist/utils/outputDebounce.js +30 -0
  797. package/dist/utils/outputDebounce.js.map +1 -0
  798. package/dist/utils/outputFlushTiming.d.ts +54 -0
  799. package/dist/utils/outputFlushTiming.d.ts.map +1 -0
  800. package/dist/utils/outputFlushTiming.js +48 -0
  801. package/dist/utils/outputFlushTiming.js.map +1 -0
  802. package/dist/utils/paginateList.d.ts +25 -0
  803. package/dist/utils/paginateList.d.ts.map +1 -0
  804. package/dist/utils/paginateList.js +32 -0
  805. package/dist/utils/paginateList.js.map +1 -0
  806. package/dist/utils/paneDiff.d.ts +55 -0
  807. package/dist/utils/paneDiff.d.ts.map +1 -0
  808. package/dist/utils/paneDiff.js +88 -0
  809. package/dist/utils/paneDiff.js.map +1 -0
  810. package/dist/utils/paneResizeGuard.d.ts +69 -0
  811. package/dist/utils/paneResizeGuard.d.ts.map +1 -0
  812. package/dist/utils/paneResizeGuard.js +91 -0
  813. package/dist/utils/paneResizeGuard.js.map +1 -0
  814. package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
  815. package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
  816. package/dist/utils/persistAdapterSessionIds.js +28 -0
  817. package/dist/utils/persistAdapterSessionIds.js.map +1 -0
  818. package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
  819. package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
  820. package/dist/utils/pinnedBannerSkipDecision.js +20 -0
  821. package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
  822. package/dist/utils/pollBackoff.d.ts +45 -0
  823. package/dist/utils/pollBackoff.d.ts.map +1 -0
  824. package/dist/utils/pollBackoff.js +44 -0
  825. package/dist/utils/pollBackoff.js.map +1 -0
  826. package/dist/utils/promptDelivery.d.ts +46 -0
  827. package/dist/utils/promptDelivery.d.ts.map +1 -0
  828. package/dist/utils/promptDelivery.js +49 -0
  829. package/dist/utils/promptDelivery.js.map +1 -0
  830. package/dist/utils/providerDisconnectPlan.d.ts +82 -0
  831. package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
  832. package/dist/utils/providerDisconnectPlan.js +110 -0
  833. package/dist/utils/providerDisconnectPlan.js.map +1 -0
  834. package/dist/utils/rateLimitLog.d.ts +48 -0
  835. package/dist/utils/rateLimitLog.d.ts.map +1 -0
  836. package/dist/utils/rateLimitLog.js +43 -0
  837. package/dist/utils/rateLimitLog.js.map +1 -0
  838. package/dist/utils/recentRelayWindow.d.ts +165 -0
  839. package/dist/utils/recentRelayWindow.d.ts.map +1 -0
  840. package/dist/utils/recentRelayWindow.js +284 -0
  841. package/dist/utils/recentRelayWindow.js.map +1 -0
  842. package/dist/utils/recvPreviewRedaction.d.ts +23 -0
  843. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
  844. package/dist/utils/recvPreviewRedaction.js +39 -0
  845. package/dist/utils/recvPreviewRedaction.js.map +1 -0
  846. package/dist/utils/reminderFlow.d.ts +148 -0
  847. package/dist/utils/reminderFlow.d.ts.map +1 -0
  848. package/dist/utils/reminderFlow.js +122 -0
  849. package/dist/utils/reminderFlow.js.map +1 -0
  850. package/dist/utils/reminderScheduleText.d.ts +87 -0
  851. package/dist/utils/reminderScheduleText.d.ts.map +1 -0
  852. package/dist/utils/reminderScheduleText.js +135 -0
  853. package/dist/utils/reminderScheduleText.js.map +1 -0
  854. package/dist/utils/reminderWizard.d.ts +710 -0
  855. package/dist/utils/reminderWizard.d.ts.map +1 -0
  856. package/dist/utils/reminderWizard.js +1164 -0
  857. package/dist/utils/reminderWizard.js.map +1 -0
  858. package/dist/utils/replyQuote.d.ts +111 -0
  859. package/dist/utils/replyQuote.d.ts.map +1 -0
  860. package/dist/utils/replyQuote.js +122 -0
  861. package/dist/utils/replyQuote.js.map +1 -0
  862. package/dist/utils/resolveBinary.d.ts +25 -0
  863. package/dist/utils/resolveBinary.d.ts.map +1 -0
  864. package/dist/utils/resolveBinary.js +99 -0
  865. package/dist/utils/resolveBinary.js.map +1 -0
  866. package/dist/utils/retryAfterHeader.d.ts +7 -0
  867. package/dist/utils/retryAfterHeader.d.ts.map +1 -0
  868. package/dist/utils/retryAfterHeader.js +17 -0
  869. package/dist/utils/retryAfterHeader.js.map +1 -0
  870. package/dist/utils/rotatingJsonlFile.d.ts +40 -0
  871. package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
  872. package/dist/utils/rotatingJsonlFile.js +106 -0
  873. package/dist/utils/rotatingJsonlFile.js.map +1 -0
  874. package/dist/utils/rotatingLogFile.d.ts +25 -0
  875. package/dist/utils/rotatingLogFile.d.ts.map +1 -0
  876. package/dist/utils/rotatingLogFile.js +74 -0
  877. package/dist/utils/rotatingLogFile.js.map +1 -0
  878. package/dist/utils/sendRateTracker.d.ts +59 -0
  879. package/dist/utils/sendRateTracker.d.ts.map +1 -0
  880. package/dist/utils/sendRateTracker.js +144 -0
  881. package/dist/utils/sendRateTracker.js.map +1 -0
  882. package/dist/utils/serialQueue.d.ts +5 -0
  883. package/dist/utils/serialQueue.d.ts.map +1 -0
  884. package/dist/utils/serialQueue.js +14 -0
  885. package/dist/utils/serialQueue.js.map +1 -0
  886. package/dist/utils/sseStreamLifecycle.d.ts +32 -0
  887. package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
  888. package/dist/utils/sseStreamLifecycle.js +41 -0
  889. package/dist/utils/sseStreamLifecycle.js.map +1 -0
  890. package/dist/utils/startupReadiness.d.ts +119 -0
  891. package/dist/utils/startupReadiness.d.ts.map +1 -0
  892. package/dist/utils/startupReadiness.js +148 -0
  893. package/dist/utils/startupReadiness.js.map +1 -0
  894. package/dist/utils/statusFlushDecision.d.ts +18 -0
  895. package/dist/utils/statusFlushDecision.d.ts.map +1 -0
  896. package/dist/utils/statusFlushDecision.js +53 -0
  897. package/dist/utils/statusFlushDecision.js.map +1 -0
  898. package/dist/utils/subagentRender.d.ts +52 -0
  899. package/dist/utils/subagentRender.d.ts.map +1 -0
  900. package/dist/utils/subagentRender.js +66 -0
  901. package/dist/utils/subagentRender.js.map +1 -0
  902. package/dist/utils/subagentStatusRender.d.ts +90 -0
  903. package/dist/utils/subagentStatusRender.d.ts.map +1 -0
  904. package/dist/utils/subagentStatusRender.js +124 -0
  905. package/dist/utils/subagentStatusRender.js.map +1 -0
  906. package/dist/utils/telegramError.d.ts +2 -0
  907. package/dist/utils/telegramError.d.ts.map +1 -0
  908. package/dist/utils/telegramError.js +16 -0
  909. package/dist/utils/telegramError.js.map +1 -0
  910. package/dist/utils/terminalEmitPlan.d.ts +74 -0
  911. package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
  912. package/dist/utils/terminalEmitPlan.js +86 -0
  913. package/dist/utils/terminalEmitPlan.js.map +1 -0
  914. package/dist/utils/thinkingRender.d.ts +74 -0
  915. package/dist/utils/thinkingRender.d.ts.map +1 -0
  916. package/dist/utils/thinkingRender.js +85 -0
  917. package/dist/utils/thinkingRender.js.map +1 -0
  918. package/dist/utils/threadStatusReport.d.ts +55 -0
  919. package/dist/utils/threadStatusReport.d.ts.map +1 -0
  920. package/dist/utils/threadStatusReport.js +65 -0
  921. package/dist/utils/threadStatusReport.js.map +1 -0
  922. package/dist/utils/threadToggle.d.ts +29 -0
  923. package/dist/utils/threadToggle.d.ts.map +1 -0
  924. package/dist/utils/threadToggle.js +39 -0
  925. package/dist/utils/threadToggle.js.map +1 -0
  926. package/dist/utils/timezone.d.ts +125 -0
  927. package/dist/utils/timezone.d.ts.map +1 -0
  928. package/dist/utils/timezone.js +278 -0
  929. package/dist/utils/timezone.js.map +1 -0
  930. package/dist/utils/tmuxExec.d.ts +61 -0
  931. package/dist/utils/tmuxExec.d.ts.map +1 -0
  932. package/dist/utils/tmuxExec.js +109 -0
  933. package/dist/utils/tmuxExec.js.map +1 -0
  934. package/dist/utils/tmuxSessionName.d.ts +34 -0
  935. package/dist/utils/tmuxSessionName.d.ts.map +1 -0
  936. package/dist/utils/tmuxSessionName.js +51 -0
  937. package/dist/utils/tmuxSessionName.js.map +1 -0
  938. package/dist/utils/toolResultRender.d.ts +61 -0
  939. package/dist/utils/toolResultRender.d.ts.map +1 -0
  940. package/dist/utils/toolResultRender.js +62 -0
  941. package/dist/utils/toolResultRender.js.map +1 -0
  942. package/dist/utils/topicRequest.d.ts +61 -0
  943. package/dist/utils/topicRequest.d.ts.map +1 -0
  944. package/dist/utils/topicRequest.js +68 -0
  945. package/dist/utils/topicRequest.js.map +1 -0
  946. package/dist/utils/topicView.d.ts +55 -0
  947. package/dist/utils/topicView.d.ts.map +1 -0
  948. package/dist/utils/topicView.js +56 -0
  949. package/dist/utils/topicView.js.map +1 -0
  950. package/dist/utils/transcribeAudio.d.ts +89 -0
  951. package/dist/utils/transcribeAudio.d.ts.map +1 -0
  952. package/dist/utils/transcribeAudio.js +249 -0
  953. package/dist/utils/transcribeAudio.js.map +1 -0
  954. package/dist/utils/transientFrames.d.ts +52 -0
  955. package/dist/utils/transientFrames.d.ts.map +1 -0
  956. package/dist/utils/transientFrames.js +41 -0
  957. package/dist/utils/transientFrames.js.map +1 -0
  958. package/dist/utils/typingActive.d.ts +35 -0
  959. package/dist/utils/typingActive.d.ts.map +1 -0
  960. package/dist/utils/typingActive.js +22 -0
  961. package/dist/utils/typingActive.js.map +1 -0
  962. package/dist/utils/typingLoopBackstop.d.ts +64 -0
  963. package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
  964. package/dist/utils/typingLoopBackstop.js +68 -0
  965. package/dist/utils/typingLoopBackstop.js.map +1 -0
  966. package/dist/utils/verbosityRender.d.ts +18 -0
  967. package/dist/utils/verbosityRender.d.ts.map +1 -0
  968. package/dist/utils/verbosityRender.js +17 -0
  969. package/dist/utils/verbosityRender.js.map +1 -0
  970. package/dist/utils/wedgeRecovery.d.ts +57 -0
  971. package/dist/utils/wedgeRecovery.d.ts.map +1 -0
  972. package/dist/utils/wedgeRecovery.js +24 -0
  973. package/dist/utils/wedgeRecovery.js.map +1 -0
  974. package/dist/utils.d.ts +30 -0
  975. package/dist/utils.d.ts.map +1 -0
  976. package/dist/utils.js +61 -0
  977. package/dist/utils.js.map +1 -0
  978. package/dist/validation.d.ts +113 -0
  979. package/dist/validation.d.ts.map +1 -0
  980. package/dist/validation.js +226 -0
  981. package/dist/validation.js.map +1 -0
  982. package/dist/voiceQueue.d.ts +7 -0
  983. package/dist/voiceQueue.d.ts.map +1 -0
  984. package/dist/voiceQueue.js +33 -0
  985. package/dist/voiceQueue.js.map +1 -0
  986. package/examples/.env.example +17 -0
  987. package/examples/docker-compose.yml +36 -0
  988. package/package.json +83 -4
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * @description Pure planning logic for flushing agent `output` to Telegram —
4
+ * extracted from `bot.ts` so the streaming-append decision is unit-testable
5
+ * without booting Telegraf.
6
+ *
7
+ * Live repro 2026-06-05: OpenCode emits a long reply
8
+ * as incremental tails, and the bot edited the SAME message with only the
9
+ * newest batch each flush — every edit replaced everything before it, so the
10
+ * user could read only the last tail. The fix: a continuation tail is
11
+ * appended to the text already rendered into the last message and the FULL
12
+ * combined text is re-rendered (also re-pairing markdown tokens that straddle
13
+ * two flushes), spilling into new messages when it outgrows the Telegram cap.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.getOutputFlushPlan = getOutputFlushPlan;
17
+ exports.getGroupDeltaContinuation = getGroupDeltaContinuation;
18
+ exports.appendPendingOutput = appendPendingOutput;
19
+ exports.getUnsentRemainder = getUnsentRemainder;
20
+ const messageSplit_1 = require("./messageSplit");
21
+ const renderAgentHtml_1 = require("./renderAgentHtml");
22
+ /** Inject the real render into the splitter so chunks are sized by their
23
+ * rendered HTML length (escaping + tags inflate the source past Telegram's
24
+ * cap), keeping `messageSplit.ts` dependency-free. */
25
+ const measureRenderedLength = (chunk) => (0, renderAgentHtml_1.renderAgentHtml)(chunk).length;
26
+ /**
27
+ * @description Decide how a flush lands in Telegram. Append-edit is possible
28
+ * only when the batch is a continuation AND the last message is still
29
+ * editable (id + source text known, no forced break since).
30
+ */
31
+ function getOutputFlushPlan(input) {
32
+ const canAppend = input.isContinuation &&
33
+ !input.needsNewMessage &&
34
+ input.lastMessageId !== null &&
35
+ input.lastMessageText !== null;
36
+ if (!canAppend) {
37
+ return {
38
+ chunks: (0, messageSplit_1.splitMessage)(input.output, undefined, measureRenderedLength),
39
+ shouldEditFirstChunk: false,
40
+ };
41
+ }
42
+ return {
43
+ chunks: (0, messageSplit_1.splitMessage)(input.lastMessageText + input.output, undefined, measureRenderedLength),
44
+ shouldEditFirstChunk: true,
45
+ };
46
+ }
47
+ /**
48
+ * @description The effective continuation flag the GROUP output path should use
49
+ * for an incoming `output`, accounting for adapters that stream WITHOUT marking
50
+ * continuations (the Claude scrape adapter).
51
+ *
52
+ * OpenCode marks every tail except a response's first with `meta.isContinuation`,
53
+ * so the group edit-in-place path already knows which outputs extend the last
54
+ * message; for it (`outputsDeltas === false`) the meta flag passes through
55
+ * unchanged. The Claude scrape adapter emits each poll's prose delta with NO
56
+ * meta even though every delta CONTINUES the same block — treating those as
57
+ * non-continuations made `getOutputFlushPlan` start a new message per poll flush
58
+ * (the one-message-per-scrape flood, and every re-flowed table width its own
59
+ * message).
60
+ *
61
+ * For a delta-emitting adapter a poll delta is therefore a CONTINUATION (it
62
+ * edits the growing message in place) UNLESS the pane had a real block boundary
63
+ * before it — a blank-line paragraph break or a distinct block (a settled
64
+ * table), both surfaced out-of-band as `startsNewParagraph`. At such a boundary
65
+ * the delta starts a NEW message (the locked boundary rule: a new message begins
66
+ * only at a paragraph/section, a distinct block, or a fresh turn — the last via
67
+ * `needsNewMessage`, which `getOutputFlushPlan` already honours). Unlike the DM
68
+ * cursor (one accumulating draft → everything is a continuation,
69
+ * {@link getDmDraftContinuation}), group renders discrete messages, so a
70
+ * paragraph/block boundary must break the message, not glue onto it.
71
+ */
72
+ function getGroupDeltaContinuation(metaIsContinuation, outputsDeltas, startsNewParagraph) {
73
+ if (!outputsDeltas)
74
+ return metaIsContinuation;
75
+ return !startsNewParagraph;
76
+ }
77
+ /**
78
+ * @description Coalesce a new output batch into the pending (not yet flushed)
79
+ * buffer. Continuation tails concatenate as-is — they may be cut mid-word, a
80
+ * `\n` would split the word across lines. DISTINCT standalone outputs join with
81
+ * a single `\n` by default, UPGRADED to a BLANK LINE (`\n\n`) only when
82
+ * `startsNewParagraph` is set — the Claude scrape adapter reports out-of-band
83
+ * (`OutboundHints.startsNewParagraph`) when the pane had a real paragraph
84
+ * break before the chunk, so multi-paragraph answers keep their structure while
85
+ * a single wrapped paragraph spanning two polls is NOT split by a blank.
86
+ */
87
+ function appendPendingOutput(pending, output, isContinuation, startsNewParagraph = false) {
88
+ if (!pending)
89
+ return output;
90
+ if (isContinuation)
91
+ return pending + output;
92
+ return startsNewParagraph ? `${pending}\n\n${output}` : `${pending}\n${output}`;
93
+ }
94
+ /** Separator used to re-join un-sent chunks before re-enqueueing them (S2). The
95
+ * planner re-splits the rejoined text next flush, so a blank line keeps the
96
+ * chunk boundary readable without gluing two messages together. */
97
+ const unsentRemainderSeparator = '\n\n';
98
+ /**
99
+ * @description Compute the text that must be RE-ENQUEUED after a flush where one
100
+ * or more chunks failed to send (live incident 2026-06-11, plan
101
+ * `2026-06-11-claude-wide-table-content-loss` S2: `replyChunkWithFallback`
102
+ * returns `null` when a chunk is dropped on a 429 after the rate-limit queue
103
+ * gives up; the buffer was already cleared, so the chunk was permanently lost).
104
+ *
105
+ * `sentCount` is the number of chunks that landed, counting from the FRONT of
106
+ * `chunks` (sends are in order, so a failure stops the run and everything from
107
+ * the first failure onward is un-sent). Returns the rejoined un-sent remainder,
108
+ * or `null` when everything landed. Idempotent: re-flushing the remainder never
109
+ * re-sends a landed chunk because those are excluded here. Pure + exported for
110
+ * unit tests.
111
+ */
112
+ function getUnsentRemainder(chunks, sentCount) {
113
+ if (sentCount >= chunks.length)
114
+ return null;
115
+ const remainder = chunks.slice(sentCount);
116
+ if (remainder.length === 0)
117
+ return null;
118
+ return remainder.join(unsentRemainderSeparator);
119
+ }
120
+ //# sourceMappingURL=outputFlushPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputFlushPlan.js","sourceRoot":"","sources":["../../../src/connectors/telegram/outputFlushPlan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAsCH,gDAgBC;AA2BD,8DAOC;AAYD,kDASC;AAqBD,gDAKC;AArID,iDAA8C;AAC9C,uDAAoD;AAEpD;;uDAEuD;AACvD,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAyBvF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAuB;IACxD,MAAM,SAAS,GACb,KAAK,CAAC,cAAc;QACpB,CAAC,KAAK,CAAC,eAAe;QACtB,KAAK,CAAC,aAAa,KAAK,IAAI;QAC5B,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,IAAA,2BAAY,EAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,qBAAqB,CAAC;YACpE,oBAAoB,EAAE,KAAK;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAA,2BAAY,EAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,qBAAqB,CAAC;QAC5F,oBAAoB,EAAE,IAAI;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,yBAAyB,CACvC,kBAA2B,EAC3B,aAAsB,EACtB,kBAA2B;IAE3B,IAAI,CAAC,aAAa;QAAE,OAAO,kBAAkB,CAAC;IAC9C,OAAO,CAAC,kBAAkB,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CACjC,OAAsB,EACtB,MAAc,EACd,cAAuB,EACvB,kBAAkB,GAAG,KAAK;IAE1B,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC5B,IAAI,cAAc;QAAE,OAAO,OAAO,GAAG,MAAM,CAAC;IAC5C,OAAO,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;AAClF,CAAC;AAED;;oEAEoE;AACpE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB,CAAC,MAAgB,EAAE,SAAiB;IACpE,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The inline keyboard of a pending question's options and the `extra` object a send carries it in.
3
+ */
4
+ import type { InlineKeyboardMarkup } from 'telegraf/typings/core/types/typegram';
5
+ import type { OpenCodeQuestion } from '../../types';
6
+ /**
7
+ * @description Build the tappable keyboard for an OpenCode question's options.
8
+ *
9
+ * The bot offers a question's options twice with different callback wiring —
10
+ * the live answer buttons (`qa_<qIdx>_<optIdx>`) and the idle-compaction re-ask
11
+ * buttons (`reask_<optIdx>`) — so `buildCallbackId` is the only thing that
12
+ * varies. Labels are passed through untouched: the button width cap and its
13
+ * elision are Telegram's, and belong to the connector's
14
+ * {@link buildOptionsKeyboard}, not here.
15
+ *
16
+ * `buildCallbackId` must produce an id the matching `bot.action` regex accepts.
17
+ * The index it receives is the 0-based position in `question.options`; the body
18
+ * shows that option as `index + 1`.
19
+ */
20
+ export declare function buildQuestionOptionsKeyboard(question: OpenCodeQuestion, buildCallbackId: (optionIndex: number) => string): InlineKeyboardMarkup | undefined;
21
+ /**
22
+ * @description Attach an optional inline keyboard to a {@link replyToThread}
23
+ * `extra`.
24
+ *
25
+ * One place owns the `reply_markup` spelling, because getting it wrong fails
26
+ * SILENTLY: the message still sends, just with no buttons, and Telegram reports
27
+ * nothing. `base` carries whatever else the send needs (a `parse_mode`).
28
+ */
29
+ export declare function buildKeyboardExtra(keyboard: InlineKeyboardMarkup | undefined, base?: Record<string, unknown>): Record<string, unknown>;
30
+ //# sourceMappingURL=questionKeyboards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questionKeyboards.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/questionKeyboards.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAC/C,oBAAoB,GAAG,SAAS,CAOlC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildQuestionOptionsKeyboard = buildQuestionOptionsKeyboard;
4
+ exports.buildKeyboardExtra = buildKeyboardExtra;
5
+ const outbound_1 = require("./outbound");
6
+ /**
7
+ * @description Build the tappable keyboard for an OpenCode question's options.
8
+ *
9
+ * The bot offers a question's options twice with different callback wiring —
10
+ * the live answer buttons (`qa_<qIdx>_<optIdx>`) and the idle-compaction re-ask
11
+ * buttons (`reask_<optIdx>`) — so `buildCallbackId` is the only thing that
12
+ * varies. Labels are passed through untouched: the button width cap and its
13
+ * elision are Telegram's, and belong to the connector's
14
+ * {@link buildOptionsKeyboard}, not here.
15
+ *
16
+ * `buildCallbackId` must produce an id the matching `bot.action` regex accepts.
17
+ * The index it receives is the 0-based position in `question.options`; the body
18
+ * shows that option as `index + 1`.
19
+ */
20
+ function buildQuestionOptionsKeyboard(question, buildCallbackId) {
21
+ return (0, outbound_1.buildOptionsKeyboard)(question.options.map((option, optionIndex) => ({
22
+ id: buildCallbackId(optionIndex),
23
+ label: option.label,
24
+ })));
25
+ }
26
+ /**
27
+ * @description Attach an optional inline keyboard to a {@link replyToThread}
28
+ * `extra`.
29
+ *
30
+ * One place owns the `reply_markup` spelling, because getting it wrong fails
31
+ * SILENTLY: the message still sends, just with no buttons, and Telegram reports
32
+ * nothing. `base` carries whatever else the send needs (a `parse_mode`).
33
+ */
34
+ function buildKeyboardExtra(keyboard, base = {}) {
35
+ return keyboard ? { ...base, reply_markup: keyboard } : { ...base };
36
+ }
37
+ //# sourceMappingURL=questionKeyboards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questionKeyboards.js","sourceRoot":"","sources":["../../../src/connectors/telegram/questionKeyboards.ts"],"names":[],"mappings":";;AAqBA,oEAUC;AAUD,gDAKC;AAzCD,yCAAkD;AAElD;;;;;;;;;;;;;GAaG;AACH,SAAgB,4BAA4B,CAC1C,QAA0B,EAC1B,eAAgD;IAEhD,OAAO,IAAA,+BAAoB,EACzB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7C,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,QAA0C,EAC1C,OAAgC,EAAE;IAElC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AACtE,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @description Render the agent adapters' "markdown-ish" output
3
+ * (`*bold*`, `**bold**`, `# headings`, `` `inline` ``, ```` ```fenced``` ````,
4
+ * `[text](url)`) into Telegram **HTML**.
5
+ *
6
+ * Why HTML instead of the legacy Markdown path: Telegram's classic Markdown
7
+ * drops the WHOLE message to unformatted plain text on a single stray `*` or
8
+ * an unbalanced backtick — this is the live "git diff shows literal ``` ``` ```
9
+ * ``` characters" bug. HTML's only specials are `& < >`, so lone punctuation is
10
+ * inert and fenced code / diffs render as real monospaced blocks.
11
+ *
12
+ * Used ONLY for streamed agent output + status frames. Bot-authored `t(...)`
13
+ * templates keep their legacy Markdown rendering — they don't have the bug.
14
+ * Both adapters (Claude + OpenCode) share this single render path.
15
+ */
16
+ /** HTML-escape the three characters Telegram's HTML parse_mode treats as
17
+ * special. Nothing else needs escaping in HTML text nodes / code spans. */
18
+ export declare function escapeHtmlText(text: string): string;
19
+ /**
20
+ * Code spans are protected first (stashed as placeholders) so prose-level
21
+ * bold/link substitution can't reach inside them, then everything is
22
+ * HTML-escaped, then bold/links are applied to the already-escaped prose (so
23
+ * the tags we insert are not themselves escaped, and a lone `*`/backtick in
24
+ * prose stays literal instead of breaking the parse).
25
+ */
26
+ export declare function renderAgentHtml(text: string): string;
27
+ //# sourceMappingURL=renderAgentHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderAgentHtml.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/renderAgentHtml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;4EAC4E;AAC5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AA0BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmDpD"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * @description Render the agent adapters' "markdown-ish" output
4
+ * (`*bold*`, `**bold**`, `# headings`, `` `inline` ``, ```` ```fenced``` ````,
5
+ * `[text](url)`) into Telegram **HTML**.
6
+ *
7
+ * Why HTML instead of the legacy Markdown path: Telegram's classic Markdown
8
+ * drops the WHOLE message to unformatted plain text on a single stray `*` or
9
+ * an unbalanced backtick — this is the live "git diff shows literal ``` ``` ```
10
+ * ``` characters" bug. HTML's only specials are `& < >`, so lone punctuation is
11
+ * inert and fenced code / diffs render as real monospaced blocks.
12
+ *
13
+ * Used ONLY for streamed agent output + status frames. Bot-authored `t(...)`
14
+ * templates keep their legacy Markdown rendering — they don't have the bug.
15
+ * Both adapters (Claude + OpenCode) share this single render path.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.escapeHtmlText = escapeHtmlText;
19
+ exports.renderAgentHtml = renderAgentHtml;
20
+ const markdownTableRender_1 = require("../../utils/markdownTableRender");
21
+ /** HTML-escape the three characters Telegram's HTML parse_mode treats as
22
+ * special. Nothing else needs escaping in HTML text nodes / code spans. */
23
+ function escapeHtmlText(text) {
24
+ return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
25
+ }
26
+ // Matchers for the adapter's "markdown-ish" intermediate. Hoisted so they
27
+ // aren't recompiled per chunk; `g`-flag regexes are stateful, so every use
28
+ // goes through `String.replace` (which resets `lastIndex`), never `.exec`.
29
+ const FENCE_REGEX = /```([^\n`]*)\n?([\s\S]*?)```/g;
30
+ const INLINE_CODE_REGEX = /`([^`\n]+)`/g;
31
+ // `**bold**` must run BEFORE the single-star `*bold*` matcher: otherwise the
32
+ // single-star regex matches from the 2nd asterisk of `**` and leaves a stray
33
+ // leading `*` (live OpenCode trace: `*<b>bold</b>*`). Non-greedy so adjacent
34
+ // pairs `**a** **b**` don't merge into one span.
35
+ const DOUBLE_BOLD_REGEX = /\*\*([^\n]+?)\*\*/g;
36
+ const BOLD_REGEX = /\*([^*\n]+)\*/g;
37
+ const LINK_REGEX = /\[([^\]\n]+)\]\(([^)\s]+)\)/g;
38
+ // Markdown ATX headings (`#`…`######` + text). Telegram has no heading
39
+ // element, so render the line as bold — the established convention. Anchored
40
+ // to line start with the `m` flag, so a `#` mid-line stays literal.
41
+ const HEADING_REGEX = /^#{1,6}\s+(.+)$/gm;
42
+ const PLACEHOLDER_REGEX = /\x00(\d+)\x00/g;
43
+ /**
44
+ * C0 control chars except `\n` and `\t`. They never belong in a Telegram
45
+ * message, and a stray `\x00` would collide with the placeholder sentinel
46
+ * `\x00N\x00` and resurrect a wrong / `undefined` span — strip up front.
47
+ */
48
+ const CONTROL_CHARS_REGEX = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;
49
+ /**
50
+ * Code spans are protected first (stashed as placeholders) so prose-level
51
+ * bold/link substitution can't reach inside them, then everything is
52
+ * HTML-escaped, then bold/links are applied to the already-escaped prose (so
53
+ * the tags we insert are not themselves escaped, and a lone `*`/backtick in
54
+ * prose stays literal instead of breaking the parse).
55
+ */
56
+ function renderAgentHtml(text) {
57
+ const placeholders = [];
58
+ const stash = (html) => {
59
+ placeholders.push(html);
60
+ return `\x00${placeholders.length - 1}\x00`;
61
+ };
62
+ // 0. Drop control chars up front so the placeholder sentinel we add in
63
+ // `stash` is the only `\x00` left to restore in step 5.
64
+ const source = text.replace(CONTROL_CHARS_REGEX, '');
65
+ // 0.5. Rewrite raw GFM markdown tables (mostly from OpenCode) into a readable
66
+ // form: narrow tables become a ```-fenced box (→ <pre> below), wide ones
67
+ // become plain "field: value" lines. Fence-aware + leaves non-table text
68
+ // untouched, so the downstream passes are unchanged.
69
+ const withTables = (0, markdownTableRender_1.renderMarkdownTables)(source);
70
+ // 1. Fenced blocks first — they contain the backticks inline code would
71
+ // otherwise mis-match. Escape only `& < >` inside code.
72
+ let work = withTables.replace(FENCE_REGEX, (_match, info, body) => {
73
+ // The info string's first token is the language (CommonMark); ignore any
74
+ // trailing metadata. Escape `"` too, or it would break the class attribute.
75
+ const language = info.trim().split(/\s+/)[0] ?? '';
76
+ const cls = language
77
+ ? ` class="language-${escapeHtmlText(language).replace(/"/g, '&quot;')}"`
78
+ : '';
79
+ return stash(`<pre><code${cls}>${escapeHtmlText(body.replace(/\n$/, ''))}</code></pre>`);
80
+ });
81
+ // 2. Inline code.
82
+ work = work.replace(INLINE_CODE_REGEX, (_match, body) => stash(`<code>${escapeHtmlText(body)}</code>`));
83
+ // 3. Escape the remaining prose.
84
+ work = escapeHtmlText(work);
85
+ // 4. Bold + links + headings on the escaped prose. Label/URL are already
86
+ // escaped by step 3, so we only additionally guard `"` in the href
87
+ // attribute. `**bold**` runs before `*bold*` (see DOUBLE_BOLD_REGEX).
88
+ work = work.replace(DOUBLE_BOLD_REGEX, '<b>$1</b>');
89
+ work = work.replace(BOLD_REGEX, '<b>$1</b>');
90
+ work = work.replace(LINK_REGEX, (_match, label, url) => `<a href="${url.replace(/"/g, '&quot;')}">${label}</a>`);
91
+ // Headings after bold/links: a heading line may already carry `<b>` from the
92
+ // bold pass; Telegram accepts nested `<b>`, so no special-casing needed.
93
+ work = work.replace(HEADING_REGEX, '<b>$1</b>');
94
+ // 5. Restore the stashed code spans (already valid HTML — do not re-escape).
95
+ return work.replace(PLACEHOLDER_REGEX, (match, idx) => placeholders[Number(idx)] ?? match);
96
+ }
97
+ //# sourceMappingURL=renderAgentHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderAgentHtml.js","sourceRoot":"","sources":["../../../src/connectors/telegram/renderAgentHtml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type SessionKey, type SessionKeyCodec } from '../../sessionKey';
2
+ /**
3
+ * @description Telegram's {@link SessionKeyCodec}. `matches` is what lets the
4
+ * core decode a string with no platform in hand: the all-numeric shape is
5
+ * unambiguous against every prefixed format a later connector will use.
6
+ */
7
+ export declare const telegramSessionKeyCodec: SessionKeyCodec;
8
+ /**
9
+ * @description Build a Telegram {@link SessionKey} from the native numeric ids.
10
+ *
11
+ * The single construction point for Telegram keys — production and tests alike.
12
+ * Funnelling every literal through it is what keeps the string/number boundary
13
+ * in one place instead of 200 scattered object literals.
14
+ */
15
+ export declare function makeTelegramKey(chatId: number, threadId: number): SessionKey;
16
+ /**
17
+ * @description Does this key address the Telegram surface? Core predicates use
18
+ * it to answer `false` for a foreign key instead of throwing out of the native
19
+ * accessors below.
20
+ */
21
+ export declare function checkIsTelegramKey(key: SessionKey): boolean;
22
+ /** How a native accessor's refusal of a foreign key starts — shared with the test that proves none was reached. */
23
+ export declare const foreignKeyAccessorErrorPrefix = "Expected a Telegram SessionKey";
24
+ /** The native Telegram chat id — what the Bot API expects on every send. */
25
+ export declare function getTelegramChatId(key: SessionKey): number;
26
+ /** The native Telegram `message_thread_id` (`0` = owner-DM main thread). */
27
+ export declare function getTelegramThreadId(key: SessionKey): number;
28
+ //# sourceMappingURL=sessionKeyCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeyCodec.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/sessionKeyCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AA2B1B;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAyBrC,CAAC;AAYF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED,mHAAmH;AACnH,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAa9E,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.foreignKeyAccessorErrorPrefix = exports.telegramSessionKeyCodec = void 0;
4
+ exports.makeTelegramKey = makeTelegramKey;
5
+ exports.checkIsTelegramKey = checkIsTelegramKey;
6
+ exports.getTelegramChatId = getTelegramChatId;
7
+ exports.getTelegramThreadId = getTelegramThreadId;
8
+ const sessionKey_1 = require("../../sessionKey");
9
+ /** The platform id this connector answers to. */
10
+ const telegramPlatform = 'telegram';
11
+ /**
12
+ * @description The historical on-the-wire spelling: `"<chatId>:<threadId>"`.
13
+ *
14
+ * Deliberately UNCHANGED from the pre-seam `keyToString`. The same string is a
15
+ * `state.json` field name, the tail of a tmux session name
16
+ * (`claude-<chatId>-<threadId>`), a per-thread JSON map key and (with `:` swapped
17
+ * for `_`) a file-intake directory name. Changing it would rename all four and
18
+ * orphan every live agent session, so this format is frozen: new platforms
19
+ * differentiate by prefixing their own id, never by touching this one.
20
+ *
21
+ * Chat ids are negative for forum supergroups; thread ids are never negative
22
+ * (`0` = the owner-DM main thread, `1` = the supergroup General topic). The
23
+ * per-half strictness matters — a plain `Number()` would accept `1e5`, `0x10`,
24
+ * `1.5` and `" 42 "`, letting a foreign string masquerade as one of ours.
25
+ */
26
+ const telegramKeyRe = /^(-?\d+):(\d+)$/;
27
+ function decodeTelegramKey(serialized) {
28
+ const match = telegramKeyRe.exec(serialized);
29
+ return match ? { platform: telegramPlatform, space: match[1], thread: match[2] } : null;
30
+ }
31
+ /**
32
+ * @description Telegram's {@link SessionKeyCodec}. `matches` is what lets the
33
+ * core decode a string with no platform in hand: the all-numeric shape is
34
+ * unambiguous against every prefixed format a later connector will use.
35
+ */
36
+ exports.telegramSessionKeyCodec = {
37
+ platform: telegramPlatform,
38
+ encode(key) {
39
+ return `${key.space}:${key.thread}`;
40
+ },
41
+ decode(serialized) {
42
+ const key = decodeTelegramKey(serialized);
43
+ if (!key)
44
+ throw new Error(`Invalid Telegram SessionKey string: "${serialized}"`);
45
+ return key;
46
+ },
47
+ matches(serialized) {
48
+ return telegramKeyRe.test(serialized);
49
+ },
50
+ // The key has exactly one `:`, so the slug splits on its LAST separator: a
51
+ // negative chat id keeps its own leading minus (`-100123-42` with `-`).
52
+ decodeSlug(slug, separator) {
53
+ const lastSeparator = slug.lastIndexOf(separator);
54
+ if (lastSeparator <= 0)
55
+ return null;
56
+ const serialized = `${slug.slice(0, lastSeparator)}:${slug.slice(lastSeparator + separator.length)}`;
57
+ return decodeTelegramKey(serialized);
58
+ },
59
+ };
60
+ /**
61
+ * Self-registering on import so every module that constructs or reads a
62
+ * Telegram key transitively arms the decoder. The composition roots
63
+ * (`bot.ts`, the test bootstrap) import this module explicitly for the paths —
64
+ * `state.ts`, the `DATA_DIR` janitors — that decode without ever building a key.
65
+ * {@link registerSessionKeyCodec} is idempotent per platform, so a repeated
66
+ * import is harmless.
67
+ */
68
+ (0, sessionKey_1.registerSessionKeyCodec)(exports.telegramSessionKeyCodec);
69
+ /**
70
+ * @description Build a Telegram {@link SessionKey} from the native numeric ids.
71
+ *
72
+ * The single construction point for Telegram keys — production and tests alike.
73
+ * Funnelling every literal through it is what keeps the string/number boundary
74
+ * in one place instead of 200 scattered object literals.
75
+ */
76
+ function makeTelegramKey(chatId, threadId) {
77
+ return { platform: telegramPlatform, space: `${chatId}`, thread: `${threadId}` };
78
+ }
79
+ /**
80
+ * @description Does this key address the Telegram surface? Core predicates use
81
+ * it to answer `false` for a foreign key instead of throwing out of the native
82
+ * accessors below.
83
+ */
84
+ function checkIsTelegramKey(key) {
85
+ return key.platform === telegramPlatform;
86
+ }
87
+ /** How a native accessor's refusal of a foreign key starts — shared with the test that proves none was reached. */
88
+ exports.foreignKeyAccessorErrorPrefix = 'Expected a Telegram SessionKey';
89
+ function getTelegramNumber(key, field) {
90
+ if (!checkIsTelegramKey(key)) {
91
+ throw new Error(`${exports.foreignKeyAccessorErrorPrefix}, got platform "${key.platform}"`);
92
+ }
93
+ const value = Number(key[field]);
94
+ if (!Number.isFinite(value)) {
95
+ throw new Error(`Invalid Telegram ${field} in SessionKey: "${key[field]}"`);
96
+ }
97
+ return value;
98
+ }
99
+ /** The native Telegram chat id — what the Bot API expects on every send. */
100
+ function getTelegramChatId(key) {
101
+ return getTelegramNumber(key, 'space');
102
+ }
103
+ /** The native Telegram `message_thread_id` (`0` = owner-DM main thread). */
104
+ function getTelegramThreadId(key) {
105
+ return getTelegramNumber(key, 'thread');
106
+ }
107
+ //# sourceMappingURL=sessionKeyCodec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeyCodec.js","sourceRoot":"","sources":["../../../src/connectors/telegram/sessionKeyCodec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CallApiHost } from '../../outputTrace';
2
+ /**
3
+ * @description An instance that does not serve Telegram (Jira connector plan J3,
4
+ * D9) still constructs the Telegram client — `bot.ts` is built around it — but
5
+ * must never reach the Bot API: no token is configured, and a call slipping
6
+ * through means a Telegram path a Jira conversation was supposed to stay out of.
7
+ * Installed OUTERMOST, so the call fails before anything is sent or traced, and
8
+ * logged here: many callers treat a failed Bot API call as best-effort and drop
9
+ * the error, which would hide the very path this guard exists to expose. Logged
10
+ * once per method: a path reached per output chunk or per timer tick must expose
11
+ * itself, not flood the log (and the console tee) with the same line.
12
+ */
13
+ export declare class TelegramDisabledError extends Error {
14
+ constructor(method: string);
15
+ }
16
+ /** The log line of a refused call — written by the guard itself, as a caller may swallow the rejection. */
17
+ export declare const telegramCallRefusedLogPrefix = "[telegram-guard] refused";
18
+ export declare function installTelegramCallGuard(host: CallApiHost): void;
19
+ //# sourceMappingURL=telegramCallGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegramCallGuard.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/telegramCallGuard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,MAAM,EAAE,MAAM;CAI3B;AAED,2GAA2G;AAC3G,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAShE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.telegramCallRefusedLogPrefix = exports.TelegramDisabledError = void 0;
4
+ exports.installTelegramCallGuard = installTelegramCallGuard;
5
+ /**
6
+ * @description An instance that does not serve Telegram (Jira connector plan J3,
7
+ * D9) still constructs the Telegram client — `bot.ts` is built around it — but
8
+ * must never reach the Bot API: no token is configured, and a call slipping
9
+ * through means a Telegram path a Jira conversation was supposed to stay out of.
10
+ * Installed OUTERMOST, so the call fails before anything is sent or traced, and
11
+ * logged here: many callers treat a failed Bot API call as best-effort and drop
12
+ * the error, which would hide the very path this guard exists to expose. Logged
13
+ * once per method: a path reached per output chunk or per timer tick must expose
14
+ * itself, not flood the log (and the console tee) with the same line.
15
+ */
16
+ class TelegramDisabledError extends Error {
17
+ constructor(method) {
18
+ super(`Telegram API call "${method}" refused: the telegram connector is off for this instance`);
19
+ this.name = 'TelegramDisabledError';
20
+ }
21
+ }
22
+ exports.TelegramDisabledError = TelegramDisabledError;
23
+ /** The log line of a refused call — written by the guard itself, as a caller may swallow the rejection. */
24
+ exports.telegramCallRefusedLogPrefix = '[telegram-guard] refused';
25
+ function installTelegramCallGuard(host) {
26
+ const loggedMethods = new Set();
27
+ host.callApi = async (method) => {
28
+ if (!loggedMethods.has(method)) {
29
+ loggedMethods.add(method);
30
+ console.error(`${exports.telegramCallRefusedLogPrefix} ${method}: a Telegram path was reached in an instance without the telegram connector`);
31
+ }
32
+ throw new TelegramDisabledError(method);
33
+ };
34
+ }
35
+ //# sourceMappingURL=telegramCallGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegramCallGuard.js","sourceRoot":"","sources":["../../../src/connectors/telegram/telegramCallGuard.ts"],"names":[],"mappings":";;;AAuBA,4DASC;AA9BD;;;;;;;;;;GAUG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAc;QACxB,KAAK,CAAC,sBAAsB,MAAM,4DAA4D,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,2GAA2G;AAC9F,QAAA,4BAA4B,GAAG,0BAA0B,CAAC;AAEvE,SAAgB,wBAAwB,CAAC,IAAiB;IACxD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,oCAA4B,IAAI,MAAM,6EAA6E,CAAC,CAAC;QACxI,CAAC;QACD,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @description Pure builders + callback codec for the two-level `/timezone`
3
+ * picker: level 1 is the 10 IANA regions, level 2 is that region's zones,
4
+ * paginated.
5
+ *
6
+ * Two levels rather than one flat list because there are 418 zones — the same
7
+ * constraint that forced `/model` into a provider → models picker once a
8
+ * provider with hundreds of models appeared. And every callback carries INDEXES
9
+ * rather than the zone name: `America/Argentina/Buenos_Aires` plus a region
10
+ * index and a page number does not reliably fit Telegram's 64-BYTE
11
+ * `callback_data` cap, and a truncated id resolves to the wrong zone silently.
12
+ *
13
+ * Kept pure (no `t()`, no bot state) so the `✓` placement, the pagination
14
+ * clamping and the codec round-trip are unit-testable without a Telegram
15
+ * surface. Header TEXT is the caller's job — it is localized, the keyboard is
16
+ * not.
17
+ */
18
+ import { Markup } from 'telegraf';
19
+ /** Zones listed per level-2 page — one per row, matching `/model`'s page size. */
20
+ export declare const timezonePageSize = 10;
21
+ /** Back to the region level (level 2 → level 1). */
22
+ export declare const timezonePickerBackCallback = "tzback";
23
+ /** Reset the setting to the host zone. */
24
+ export declare const timezoneAutoCallback = "tzauto";
25
+ /** Anchored matchers for `bot.action(...)` — the wire format's single definition. */
26
+ export declare const regionPageCallbackRe: RegExp;
27
+ export declare const zonePickCallbackRe: RegExp;
28
+ /** A region index paired with a page index (level-2 navigation). */
29
+ export interface RegionPageRef {
30
+ regionIndex: number;
31
+ page: number;
32
+ }
33
+ /** A region index paired with a zone index WITHIN that region's list. */
34
+ export interface ZonePickRef {
35
+ regionIndex: number;
36
+ zoneIndex: number;
37
+ }
38
+ export declare function buildRegionPageCallback(regionIndex: number, page: number): string;
39
+ export declare function buildZonePickCallback(regionIndex: number, zoneIndex: number): string;
40
+ export declare function parseRegionPageCallback(callbackData: string): RegionPageRef | null;
41
+ export declare function parseZonePickCallback(callbackData: string): ZonePickRef | null;
42
+ /**
43
+ * @description Resolve a level-2 pick back to its zone name, or `null` when the
44
+ * indexes no longer resolve. Stale keyboards stay tappable forever in Telegram,
45
+ * so an out-of-range index must answer "nothing" rather than pick a neighbour.
46
+ */
47
+ export declare function getTimezoneAt(regionIndex: number, zoneIndex: number): string | null;
48
+ /** The region name at `regionIndex`, or `null` for a stale index. */
49
+ export declare function getTimezoneRegionAt(regionIndex: number): string | null;
50
+ /**
51
+ * @description Build the level-1 region keyboard, two regions per row, plus a
52
+ * full-width `🌐 Auto (host zone)` reset row.
53
+ *
54
+ * The `✓` marks the region CONTAINING the current zone (so the operator can see
55
+ * where they are without opening a page), or the Auto row when nothing is
56
+ * stored. A fixed-offset zone (`+04:00`) belongs to no region, so no region is
57
+ * marked — that is honest rather than arbitrarily highlighting one.
58
+ *
59
+ * `🌐 Auto (host zone)` is a fixed glyph+word rather than a translated string,
60
+ * mirroring the `/language` picker's Auto row: recognisable across locales and
61
+ * one less per-locale key to keep in parity.
62
+ */
63
+ export declare function buildTimezoneRegionPicker(currentZone: string | null): Markup.Markup<import("@telegraf/types").InlineKeyboardMarkup>;
64
+ /**
65
+ * @description One rendered level-2 page: the keyboard plus the numbers the
66
+ * caller needs for the localized header. `currentPage` is already CLAMPED by
67
+ * {@link paginateList}, so a stale page index lands on the last real page rather
68
+ * than rendering an empty body.
69
+ */
70
+ export interface TimezonePageRender {
71
+ region: string;
72
+ keyboard: ReturnType<typeof Markup.inlineKeyboard>;
73
+ /** Zero-based, clamped. */
74
+ currentPage: number;
75
+ totalPages: number;
76
+ }
77
+ /**
78
+ * @description Build a region's zone page: one zone per row (names are long),
79
+ * with a `‹ Prev` / page pill / `⬅ Regions` / `Next ›` navigation row.
80
+ *
81
+ * Returns `null` for a region index that no longer resolves — a stale callback
82
+ * must be answered as expired, not rendered against a different region.
83
+ */
84
+ export declare function buildTimezoneZonePicker(regionIndex: number, page: number, currentZone: string | null): TimezonePageRender | null;
85
+ //# sourceMappingURL=timezonePicker.d.ts.map