charness 0.0.0-stage → 3.1.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 (1044) 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 +1196 -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 +1351 -0
  19. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
  20. package/dist/adapters/claudeCliAdapter.js +4239 -0
  21. package/dist/adapters/claudeCliAdapter.js.map +1 -0
  22. package/dist/adapters/claudeConfigDir.d.ts +40 -0
  23. package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
  24. package/dist/adapters/claudeConfigDir.js +3 -0
  25. package/dist/adapters/claudeConfigDir.js.map +1 -0
  26. package/dist/adapters/claudeJsonStreamAdapter.d.ts +580 -0
  27. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
  28. package/dist/adapters/claudeJsonStreamAdapter.js +1891 -0
  29. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
  30. package/dist/adapters/claudePlatformFlags.d.ts +35 -0
  31. package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
  32. package/dist/adapters/claudePlatformFlags.js +46 -0
  33. package/dist/adapters/claudePlatformFlags.js.map +1 -0
  34. package/dist/adapters/createAdapter.d.ts +260 -0
  35. package/dist/adapters/createAdapter.d.ts.map +1 -0
  36. package/dist/adapters/createAdapter.js +512 -0
  37. package/dist/adapters/createAdapter.js.map +1 -0
  38. package/dist/adapters/openCodeAdapter.d.ts +1469 -0
  39. package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
  40. package/dist/adapters/openCodeAdapter.js +4623 -0
  41. package/dist/adapters/openCodeAdapter.js.map +1 -0
  42. package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
  43. package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
  44. package/dist/adapters/sessionLaunchDefaults.js +15 -0
  45. package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
  46. package/dist/adapters/terminalAdapter.d.ts +68 -0
  47. package/dist/adapters/terminalAdapter.d.ts.map +1 -0
  48. package/dist/adapters/terminalAdapter.js +371 -0
  49. package/dist/adapters/terminalAdapter.js.map +1 -0
  50. package/dist/agentLogin/agentLogin.d.ts +44 -0
  51. package/dist/agentLogin/agentLogin.d.ts.map +1 -0
  52. package/dist/agentLogin/agentLogin.js +530 -0
  53. package/dist/agentLogin/agentLogin.js.map +1 -0
  54. package/dist/agentTrigger.d.ts +28 -0
  55. package/dist/agentTrigger.d.ts.map +1 -0
  56. package/dist/agentTrigger.js +53 -0
  57. package/dist/agentTrigger.js.map +1 -0
  58. package/dist/apiErrorRetry.d.ts +214 -0
  59. package/dist/apiErrorRetry.d.ts.map +1 -0
  60. package/dist/apiErrorRetry.js +382 -0
  61. package/dist/apiErrorRetry.js.map +1 -0
  62. package/dist/apiRetryKick.d.ts +157 -0
  63. package/dist/apiRetryKick.d.ts.map +1 -0
  64. package/dist/apiRetryKick.js +174 -0
  65. package/dist/apiRetryKick.js.map +1 -0
  66. package/dist/bootClassifier.d.ts +46 -0
  67. package/dist/bootClassifier.d.ts.map +1 -0
  68. package/dist/bootClassifier.js +43 -0
  69. package/dist/bootClassifier.js.map +1 -0
  70. package/dist/bot.d.ts +207 -0
  71. package/dist/bot.d.ts.map +1 -0
  72. package/dist/bot.js +11226 -0
  73. package/dist/bot.js.map +1 -0
  74. package/dist/botFileStorage.d.ts +60 -0
  75. package/dist/botFileStorage.d.ts.map +1 -0
  76. package/dist/botFileStorage.js +205 -0
  77. package/dist/botFileStorage.js.map +1 -0
  78. package/dist/cli/applyDnsFix.d.ts +7 -0
  79. package/dist/cli/applyDnsFix.d.ts.map +1 -0
  80. package/dist/cli/applyDnsFix.js +46 -0
  81. package/dist/cli/applyDnsFix.js.map +1 -0
  82. package/dist/cli/bot.d.ts +27 -0
  83. package/dist/cli/bot.d.ts.map +1 -0
  84. package/dist/cli/bot.js +98 -0
  85. package/dist/cli/bot.js.map +1 -0
  86. package/dist/cli/botEntry.d.ts +3 -0
  87. package/dist/cli/botEntry.d.ts.map +1 -0
  88. package/dist/cli/botEntry.js +11 -0
  89. package/dist/cli/botEntry.js.map +1 -0
  90. package/dist/cli/claudeProfiles.d.ts +42 -0
  91. package/dist/cli/claudeProfiles.d.ts.map +1 -0
  92. package/dist/cli/claudeProfiles.js +106 -0
  93. package/dist/cli/claudeProfiles.js.map +1 -0
  94. package/dist/cli/connectorGuards.d.ts +31 -0
  95. package/dist/cli/connectorGuards.d.ts.map +1 -0
  96. package/dist/cli/connectorGuards.js +159 -0
  97. package/dist/cli/connectorGuards.js.map +1 -0
  98. package/dist/cli/envLoader.d.ts +34 -0
  99. package/dist/cli/envLoader.d.ts.map +1 -0
  100. package/dist/cli/envLoader.js +132 -0
  101. package/dist/cli/envLoader.js.map +1 -0
  102. package/dist/cli/hot.d.ts +82 -0
  103. package/dist/cli/hot.d.ts.map +1 -0
  104. package/dist/cli/hot.js +323 -0
  105. package/dist/cli/hot.js.map +1 -0
  106. package/dist/cli.d.ts +3 -0
  107. package/dist/cli.d.ts.map +1 -0
  108. package/dist/cli.js +140 -0
  109. package/dist/cli.js.map +1 -0
  110. package/dist/connectors/jira/adf.d.ts +74 -0
  111. package/dist/connectors/jira/adf.d.ts.map +1 -0
  112. package/dist/connectors/jira/adf.js +412 -0
  113. package/dist/connectors/jira/adf.js.map +1 -0
  114. package/dist/connectors/jira/agentBinaries.d.ts +14 -0
  115. package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
  116. package/dist/connectors/jira/agentBinaries.js +75 -0
  117. package/dist/connectors/jira/agentBinaries.js.map +1 -0
  118. package/dist/connectors/jira/answerSink.d.ts +59 -0
  119. package/dist/connectors/jira/answerSink.d.ts.map +1 -0
  120. package/dist/connectors/jira/answerSink.js +234 -0
  121. package/dist/connectors/jira/answerSink.js.map +1 -0
  122. package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
  123. package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
  124. package/dist/connectors/jira/attachmentDownload.js +92 -0
  125. package/dist/connectors/jira/attachmentDownload.js.map +1 -0
  126. package/dist/connectors/jira/attachmentTool.d.ts +50 -0
  127. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
  128. package/dist/connectors/jira/attachmentTool.js +166 -0
  129. package/dist/connectors/jira/attachmentTool.js.map +1 -0
  130. package/dist/connectors/jira/client.d.ts +522 -0
  131. package/dist/connectors/jira/client.d.ts.map +1 -0
  132. package/dist/connectors/jira/client.js +491 -0
  133. package/dist/connectors/jira/client.js.map +1 -0
  134. package/dist/connectors/jira/config.d.ts +104 -0
  135. package/dist/connectors/jira/config.d.ts.map +1 -0
  136. package/dist/connectors/jira/config.js +323 -0
  137. package/dist/connectors/jira/config.js.map +1 -0
  138. package/dist/connectors/jira/configFile.d.ts +10 -0
  139. package/dist/connectors/jira/configFile.d.ts.map +1 -0
  140. package/dist/connectors/jira/configFile.js +50 -0
  141. package/dist/connectors/jira/configFile.js.map +1 -0
  142. package/dist/connectors/jira/connector.d.ts +71 -0
  143. package/dist/connectors/jira/connector.d.ts.map +1 -0
  144. package/dist/connectors/jira/connector.js +312 -0
  145. package/dist/connectors/jira/connector.js.map +1 -0
  146. package/dist/connectors/jira/contextLedger.d.ts +60 -0
  147. package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
  148. package/dist/connectors/jira/contextLedger.js +196 -0
  149. package/dist/connectors/jira/contextLedger.js.map +1 -0
  150. package/dist/connectors/jira/contextPreamble.d.ts +18 -0
  151. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
  152. package/dist/connectors/jira/contextPreamble.js +31 -0
  153. package/dist/connectors/jira/contextPreamble.js.map +1 -0
  154. package/dist/connectors/jira/inbound.d.ts +141 -0
  155. package/dist/connectors/jira/inbound.d.ts.map +1 -0
  156. package/dist/connectors/jira/inbound.js +331 -0
  157. package/dist/connectors/jira/inbound.js.map +1 -0
  158. package/dist/connectors/jira/issueBlocks.d.ts +74 -0
  159. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
  160. package/dist/connectors/jira/issueBlocks.js +257 -0
  161. package/dist/connectors/jira/issueBlocks.js.map +1 -0
  162. package/dist/connectors/jira/issueContext.d.ts +31 -0
  163. package/dist/connectors/jira/issueContext.d.ts.map +1 -0
  164. package/dist/connectors/jira/issueContext.js +70 -0
  165. package/dist/connectors/jira/issueContext.js.map +1 -0
  166. package/dist/connectors/jira/issueDelta.d.ts +38 -0
  167. package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
  168. package/dist/connectors/jira/issueDelta.js +59 -0
  169. package/dist/connectors/jira/issueDelta.js.map +1 -0
  170. package/dist/connectors/jira/mediaPlaceholders.d.ts +22 -0
  171. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
  172. package/dist/connectors/jira/mediaPlaceholders.js +105 -0
  173. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
  174. package/dist/connectors/jira/outbound.d.ts +6 -0
  175. package/dist/connectors/jira/outbound.d.ts.map +1 -0
  176. package/dist/connectors/jira/outbound.js +38 -0
  177. package/dist/connectors/jira/outbound.js.map +1 -0
  178. package/dist/connectors/jira/prompt.d.ts +39 -0
  179. package/dist/connectors/jira/prompt.d.ts.map +1 -0
  180. package/dist/connectors/jira/prompt.js +102 -0
  181. package/dist/connectors/jira/prompt.js.map +1 -0
  182. package/dist/connectors/jira/promptSpill.d.ts +50 -0
  183. package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
  184. package/dist/connectors/jira/promptSpill.js +157 -0
  185. package/dist/connectors/jira/promptSpill.js.map +1 -0
  186. package/dist/connectors/jira/promptText.d.ts +7 -0
  187. package/dist/connectors/jira/promptText.d.ts.map +1 -0
  188. package/dist/connectors/jira/promptText.js +26 -0
  189. package/dist/connectors/jira/promptText.js.map +1 -0
  190. package/dist/connectors/jira/sessionKeyCodec.d.ts +18 -0
  191. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
  192. package/dist/connectors/jira/sessionKeyCodec.js +106 -0
  193. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
  194. package/dist/connectors/jira/trigger.d.ts +54 -0
  195. package/dist/connectors/jira/trigger.d.ts.map +1 -0
  196. package/dist/connectors/jira/trigger.js +101 -0
  197. package/dist/connectors/jira/trigger.js.map +1 -0
  198. package/dist/connectors/jira/triggerLog.d.ts +53 -0
  199. package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
  200. package/dist/connectors/jira/triggerLog.js +78 -0
  201. package/dist/connectors/jira/triggerLog.js.map +1 -0
  202. package/dist/connectors/jira/trustedGroup.d.ts +54 -0
  203. package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
  204. package/dist/connectors/jira/trustedGroup.js +98 -0
  205. package/dist/connectors/jira/trustedGroup.js.map +1 -0
  206. package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
  207. package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
  208. package/dist/connectors/jira/unconfirmedPosts.js +105 -0
  209. package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
  210. package/dist/connectors/telegram/answerSink.d.ts +46 -0
  211. package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
  212. package/dist/connectors/telegram/answerSink.js +71 -0
  213. package/dist/connectors/telegram/answerSink.js.map +1 -0
  214. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +34 -0
  215. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
  216. package/dist/connectors/telegram/commands/autoContinueLimits.js +112 -0
  217. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
  218. package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
  219. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
  220. package/dist/connectors/telegram/commands/botCore.js +3 -0
  221. package/dist/connectors/telegram/commands/botCore.js.map +1 -0
  222. package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
  223. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
  224. package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
  225. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
  226. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
  227. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
  228. package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
  229. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
  230. package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
  231. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
  232. package/dist/connectors/telegram/commands/compaction.js +868 -0
  233. package/dist/connectors/telegram/commands/compaction.js.map +1 -0
  234. package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
  235. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
  236. package/dist/connectors/telegram/commands/displayModes.js +335 -0
  237. package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
  238. package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
  239. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
  240. package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
  241. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
  242. package/dist/connectors/telegram/commands/modelProviders.d.ts +117 -0
  243. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
  244. package/dist/connectors/telegram/commands/modelProviders.js +966 -0
  245. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
  246. package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
  247. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
  248. package/dist/connectors/telegram/commands/reminders.js +624 -0
  249. package/dist/connectors/telegram/commands/reminders.js.map +1 -0
  250. package/dist/connectors/telegram/fileIntake.d.ts +166 -0
  251. package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
  252. package/dist/connectors/telegram/fileIntake.js +304 -0
  253. package/dist/connectors/telegram/fileIntake.js.map +1 -0
  254. package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
  255. package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
  256. package/dist/connectors/telegram/fileSendGateway.js +221 -0
  257. package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
  258. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
  259. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
  260. package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
  261. package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
  262. package/dist/connectors/telegram/inbound.d.ts +131 -0
  263. package/dist/connectors/telegram/inbound.d.ts.map +1 -0
  264. package/dist/connectors/telegram/inbound.js +278 -0
  265. package/dist/connectors/telegram/inbound.js.map +1 -0
  266. package/dist/connectors/telegram/languagePicker.d.ts +32 -0
  267. package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
  268. package/dist/connectors/telegram/languagePicker.js +55 -0
  269. package/dist/connectors/telegram/languagePicker.js.map +1 -0
  270. package/dist/connectors/telegram/messageSplit.d.ts +62 -0
  271. package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
  272. package/dist/connectors/telegram/messageSplit.js +119 -0
  273. package/dist/connectors/telegram/messageSplit.js.map +1 -0
  274. package/dist/connectors/telegram/outbound.d.ts +62 -0
  275. package/dist/connectors/telegram/outbound.d.ts.map +1 -0
  276. package/dist/connectors/telegram/outbound.js +116 -0
  277. package/dist/connectors/telegram/outbound.js.map +1 -0
  278. package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
  279. package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
  280. package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
  281. package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
  282. package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
  283. package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
  284. package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
  285. package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
  286. package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
  287. package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
  288. package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
  289. package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
  290. package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
  291. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
  292. package/dist/connectors/telegram/outputFlushPlan.js +120 -0
  293. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
  294. package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
  295. package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
  296. package/dist/connectors/telegram/questionKeyboards.js +37 -0
  297. package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
  298. package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
  299. package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
  300. package/dist/connectors/telegram/renderAgentHtml.js +97 -0
  301. package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
  302. package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
  303. package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
  304. package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
  305. package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
  306. package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
  307. package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
  308. package/dist/connectors/telegram/telegramCallGuard.js +35 -0
  309. package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
  310. package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
  311. package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
  312. package/dist/connectors/telegram/timezonePicker.js +142 -0
  313. package/dist/connectors/telegram/timezonePicker.js.map +1 -0
  314. package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
  315. package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
  316. package/dist/connectors/telegram/updateDispatcher.js +159 -0
  317. package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
  318. package/dist/connectors/test/connector.d.ts +52 -0
  319. package/dist/connectors/test/connector.d.ts.map +1 -0
  320. package/dist/connectors/test/connector.js +143 -0
  321. package/dist/connectors/test/connector.js.map +1 -0
  322. package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
  323. package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
  324. package/dist/connectors/test/sessionKeyCodec.js +50 -0
  325. package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
  326. package/dist/diagLog.d.ts +6 -0
  327. package/dist/diagLog.d.ts.map +1 -0
  328. package/dist/diagLog.js +58 -0
  329. package/dist/diagLog.js.map +1 -0
  330. package/dist/effortLevels.d.ts +68 -0
  331. package/dist/effortLevels.d.ts.map +1 -0
  332. package/dist/effortLevels.js +114 -0
  333. package/dist/effortLevels.js.map +1 -0
  334. package/dist/folderName.d.ts +42 -0
  335. package/dist/folderName.d.ts.map +1 -0
  336. package/dist/folderName.js +51 -0
  337. package/dist/folderName.js.map +1 -0
  338. package/dist/i18n/de.d.ts +2 -0
  339. package/dist/i18n/de.d.ts.map +1 -0
  340. package/dist/i18n/de.js +665 -0
  341. package/dist/i18n/de.js.map +1 -0
  342. package/dist/i18n/en.d.ts +7 -0
  343. package/dist/i18n/en.d.ts.map +1 -0
  344. package/dist/i18n/en.js +694 -0
  345. package/dist/i18n/en.js.map +1 -0
  346. package/dist/i18n/es.d.ts +2 -0
  347. package/dist/i18n/es.d.ts.map +1 -0
  348. package/dist/i18n/es.js +665 -0
  349. package/dist/i18n/es.js.map +1 -0
  350. package/dist/i18n/fr.d.ts +2 -0
  351. package/dist/i18n/fr.d.ts.map +1 -0
  352. package/dist/i18n/fr.js +665 -0
  353. package/dist/i18n/fr.js.map +1 -0
  354. package/dist/i18n/hi.d.ts +2 -0
  355. package/dist/i18n/hi.d.ts.map +1 -0
  356. package/dist/i18n/hi.js +665 -0
  357. package/dist/i18n/hi.js.map +1 -0
  358. package/dist/i18n/ja.d.ts +2 -0
  359. package/dist/i18n/ja.d.ts.map +1 -0
  360. package/dist/i18n/ja.js +665 -0
  361. package/dist/i18n/ja.js.map +1 -0
  362. package/dist/i18n/ka.d.ts +2 -0
  363. package/dist/i18n/ka.d.ts.map +1 -0
  364. package/dist/i18n/ka.js +665 -0
  365. package/dist/i18n/ka.js.map +1 -0
  366. package/dist/i18n/pt.d.ts +2 -0
  367. package/dist/i18n/pt.d.ts.map +1 -0
  368. package/dist/i18n/pt.js +665 -0
  369. package/dist/i18n/pt.js.map +1 -0
  370. package/dist/i18n/ru.d.ts +6 -0
  371. package/dist/i18n/ru.d.ts.map +1 -0
  372. package/dist/i18n/ru.js +668 -0
  373. package/dist/i18n/ru.js.map +1 -0
  374. package/dist/i18n/uk.d.ts +8 -0
  375. package/dist/i18n/uk.d.ts.map +1 -0
  376. package/dist/i18n/uk.js +670 -0
  377. package/dist/i18n/uk.js.map +1 -0
  378. package/dist/i18n/uz.d.ts +2 -0
  379. package/dist/i18n/uz.d.ts.map +1 -0
  380. package/dist/i18n/uz.js +665 -0
  381. package/dist/i18n/uz.js.map +1 -0
  382. package/dist/i18n/zh.d.ts +2 -0
  383. package/dist/i18n/zh.d.ts.map +1 -0
  384. package/dist/i18n/zh.js +665 -0
  385. package/dist/i18n/zh.js.map +1 -0
  386. package/dist/i18n.d.ts +115 -0
  387. package/dist/i18n.d.ts.map +1 -0
  388. package/dist/i18n.js +233 -0
  389. package/dist/i18n.js.map +1 -0
  390. package/dist/index.d.ts +3 -0
  391. package/dist/index.d.ts.map +1 -0
  392. package/dist/index.js +10 -0
  393. package/dist/index.js.map +1 -0
  394. package/dist/installManager.d.ts +99 -0
  395. package/dist/installManager.d.ts.map +1 -0
  396. package/dist/installManager.js +943 -0
  397. package/dist/installManager.js.map +1 -0
  398. package/dist/instanceLock.d.ts +161 -0
  399. package/dist/instanceLock.d.ts.map +1 -0
  400. package/dist/instanceLock.js +388 -0
  401. package/dist/instanceLock.js.map +1 -0
  402. package/dist/mcpConfig.d.ts +76 -0
  403. package/dist/mcpConfig.d.ts.map +1 -0
  404. package/dist/mcpConfig.js +270 -0
  405. package/dist/mcpConfig.js.map +1 -0
  406. package/dist/openCodeOpenQuestion.d.ts +44 -0
  407. package/dist/openCodeOpenQuestion.d.ts.map +1 -0
  408. package/dist/openCodeOpenQuestion.js +64 -0
  409. package/dist/openCodeOpenQuestion.js.map +1 -0
  410. package/dist/openCodeQuestionFlow.d.ts +105 -0
  411. package/dist/openCodeQuestionFlow.d.ts.map +1 -0
  412. package/dist/openCodeQuestionFlow.js +143 -0
  413. package/dist/openCodeQuestionFlow.js.map +1 -0
  414. package/dist/openCodeSessionRouting.d.ts +133 -0
  415. package/dist/openCodeSessionRouting.d.ts.map +1 -0
  416. package/dist/openCodeSessionRouting.js +253 -0
  417. package/dist/openCodeSessionRouting.js.map +1 -0
  418. package/dist/openCodeSessionTitle.d.ts +50 -0
  419. package/dist/openCodeSessionTitle.d.ts.map +1 -0
  420. package/dist/openCodeSessionTitle.js +84 -0
  421. package/dist/openCodeSessionTitle.js.map +1 -0
  422. package/dist/outputTrace.d.ts +108 -0
  423. package/dist/outputTrace.d.ts.map +1 -0
  424. package/dist/outputTrace.js +430 -0
  425. package/dist/outputTrace.js.map +1 -0
  426. package/dist/pendingQuestionRepost.d.ts +47 -0
  427. package/dist/pendingQuestionRepost.d.ts.map +1 -0
  428. package/dist/pendingQuestionRepost.js +29 -0
  429. package/dist/pendingQuestionRepost.js.map +1 -0
  430. package/dist/pinnedStatus.d.ts +52 -0
  431. package/dist/pinnedStatus.d.ts.map +1 -0
  432. package/dist/pinnedStatus.js +36 -0
  433. package/dist/pinnedStatus.js.map +1 -0
  434. package/dist/platform/answerSink.d.ts +93 -0
  435. package/dist/platform/answerSink.d.ts.map +1 -0
  436. package/dist/platform/answerSink.js +31 -0
  437. package/dist/platform/answerSink.js.map +1 -0
  438. package/dist/platform/capabilityFallback.d.ts +39 -0
  439. package/dist/platform/capabilityFallback.d.ts.map +1 -0
  440. package/dist/platform/capabilityFallback.js +55 -0
  441. package/dist/platform/capabilityFallback.js.map +1 -0
  442. package/dist/platform/commandRouter.d.ts +51 -0
  443. package/dist/platform/commandRouter.d.ts.map +1 -0
  444. package/dist/platform/commandRouter.js +53 -0
  445. package/dist/platform/commandRouter.js.map +1 -0
  446. package/dist/platform/connectorSet.d.ts +39 -0
  447. package/dist/platform/connectorSet.d.ts.map +1 -0
  448. package/dist/platform/connectorSet.js +55 -0
  449. package/dist/platform/connectorSet.js.map +1 -0
  450. package/dist/platform/inbound.d.ts +147 -0
  451. package/dist/platform/inbound.d.ts.map +1 -0
  452. package/dist/platform/inbound.js +18 -0
  453. package/dist/platform/inbound.js.map +1 -0
  454. package/dist/platform/outbound.d.ts +225 -0
  455. package/dist/platform/outbound.d.ts.map +1 -0
  456. package/dist/platform/outbound.js +30 -0
  457. package/dist/platform/outbound.js.map +1 -0
  458. package/dist/platform/unservedStateGuard.d.ts +27 -0
  459. package/dist/platform/unservedStateGuard.d.ts.map +1 -0
  460. package/dist/platform/unservedStateGuard.js +42 -0
  461. package/dist/platform/unservedStateGuard.js.map +1 -0
  462. package/dist/postToSession.d.ts +94 -0
  463. package/dist/postToSession.d.ts.map +1 -0
  464. package/dist/postToSession.js +56 -0
  465. package/dist/postToSession.js.map +1 -0
  466. package/dist/progressLine.d.ts +180 -0
  467. package/dist/progressLine.d.ts.map +1 -0
  468. package/dist/progressLine.js +293 -0
  469. package/dist/progressLine.js.map +1 -0
  470. package/dist/rateLimiter.d.ts +246 -0
  471. package/dist/rateLimiter.d.ts.map +1 -0
  472. package/dist/rateLimiter.js +555 -0
  473. package/dist/rateLimiter.js.map +1 -0
  474. package/dist/requests/answerRequest.d.ts +57 -0
  475. package/dist/requests/answerRequest.d.ts.map +1 -0
  476. package/dist/requests/answerRequest.js +96 -0
  477. package/dist/requests/answerRequest.js.map +1 -0
  478. package/dist/requests/answerTail.d.ts +83 -0
  479. package/dist/requests/answerTail.d.ts.map +1 -0
  480. package/dist/requests/answerTail.js +102 -0
  481. package/dist/requests/answerTail.js.map +1 -0
  482. package/dist/requests/limitWaitAnswer.d.ts +87 -0
  483. package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
  484. package/dist/requests/limitWaitAnswer.js +83 -0
  485. package/dist/requests/limitWaitAnswer.js.map +1 -0
  486. package/dist/requests/requestGroup.d.ts +44 -0
  487. package/dist/requests/requestGroup.d.ts.map +1 -0
  488. package/dist/requests/requestGroup.js +63 -0
  489. package/dist/requests/requestGroup.js.map +1 -0
  490. package/dist/requests/requestHeader.d.ts +70 -0
  491. package/dist/requests/requestHeader.d.ts.map +1 -0
  492. package/dist/requests/requestHeader.js +83 -0
  493. package/dist/requests/requestHeader.js.map +1 -0
  494. package/dist/requests/requestLedger.d.ts +217 -0
  495. package/dist/requests/requestLedger.d.ts.map +1 -0
  496. package/dist/requests/requestLedger.js +468 -0
  497. package/dist/requests/requestLedger.js.map +1 -0
  498. package/dist/requests/sessionTurnProbe.d.ts +52 -0
  499. package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
  500. package/dist/requests/sessionTurnProbe.js +29 -0
  501. package/dist/requests/sessionTurnProbe.js.map +1 -0
  502. package/dist/requests/types.d.ts +181 -0
  503. package/dist/requests/types.d.ts.map +1 -0
  504. package/dist/requests/types.js +9 -0
  505. package/dist/requests/types.js.map +1 -0
  506. package/dist/requests/wakeUpEngine.d.ts +160 -0
  507. package/dist/requests/wakeUpEngine.d.ts.map +1 -0
  508. package/dist/requests/wakeUpEngine.js +399 -0
  509. package/dist/requests/wakeUpEngine.js.map +1 -0
  510. package/dist/requests/wakeUpRules.d.ts +151 -0
  511. package/dist/requests/wakeUpRules.d.ts.map +1 -0
  512. package/dist/requests/wakeUpRules.js +167 -0
  513. package/dist/requests/wakeUpRules.js.map +1 -0
  514. package/dist/resumeContext.d.ts +87 -0
  515. package/dist/resumeContext.d.ts.map +1 -0
  516. package/dist/resumeContext.js +114 -0
  517. package/dist/resumeContext.js.map +1 -0
  518. package/dist/scheduler/checkRun.d.ts +95 -0
  519. package/dist/scheduler/checkRun.d.ts.map +1 -0
  520. package/dist/scheduler/checkRun.js +172 -0
  521. package/dist/scheduler/checkRun.js.map +1 -0
  522. package/dist/scheduler/delivery.d.ts +99 -0
  523. package/dist/scheduler/delivery.d.ts.map +1 -0
  524. package/dist/scheduler/delivery.js +212 -0
  525. package/dist/scheduler/delivery.js.map +1 -0
  526. package/dist/scheduler/deliveryKind.d.ts +29 -0
  527. package/dist/scheduler/deliveryKind.d.ts.map +1 -0
  528. package/dist/scheduler/deliveryKind.js +39 -0
  529. package/dist/scheduler/deliveryKind.js.map +1 -0
  530. package/dist/scheduler/directoryThreads.d.ts +19 -0
  531. package/dist/scheduler/directoryThreads.d.ts.map +1 -0
  532. package/dist/scheduler/directoryThreads.js +28 -0
  533. package/dist/scheduler/directoryThreads.js.map +1 -0
  534. package/dist/scheduler/engine.d.ts +77 -0
  535. package/dist/scheduler/engine.d.ts.map +1 -0
  536. package/dist/scheduler/engine.js +337 -0
  537. package/dist/scheduler/engine.js.map +1 -0
  538. package/dist/scheduler/injection.d.ts +102 -0
  539. package/dist/scheduler/injection.d.ts.map +1 -0
  540. package/dist/scheduler/injection.js +122 -0
  541. package/dist/scheduler/injection.js.map +1 -0
  542. package/dist/scheduler/mcpBoot.d.ts +65 -0
  543. package/dist/scheduler/mcpBoot.d.ts.map +1 -0
  544. package/dist/scheduler/mcpBoot.js +60 -0
  545. package/dist/scheduler/mcpBoot.js.map +1 -0
  546. package/dist/scheduler/mcpSurface.d.ts +363 -0
  547. package/dist/scheduler/mcpSurface.d.ts.map +1 -0
  548. package/dist/scheduler/mcpSurface.js +1297 -0
  549. package/dist/scheduler/mcpSurface.js.map +1 -0
  550. package/dist/scheduler/rebindResume.d.ts +27 -0
  551. package/dist/scheduler/rebindResume.d.ts.map +1 -0
  552. package/dist/scheduler/rebindResume.js +17 -0
  553. package/dist/scheduler/rebindResume.js.map +1 -0
  554. package/dist/scheduler/recurrence.d.ts +58 -0
  555. package/dist/scheduler/recurrence.d.ts.map +1 -0
  556. package/dist/scheduler/recurrence.js +210 -0
  557. package/dist/scheduler/recurrence.js.map +1 -0
  558. package/dist/scheduler/runLedger.d.ts +59 -0
  559. package/dist/scheduler/runLedger.d.ts.map +1 -0
  560. package/dist/scheduler/runLedger.js +54 -0
  561. package/dist/scheduler/runLedger.js.map +1 -0
  562. package/dist/scheduler/store.d.ts +97 -0
  563. package/dist/scheduler/store.d.ts.map +1 -0
  564. package/dist/scheduler/store.js +124 -0
  565. package/dist/scheduler/store.js.map +1 -0
  566. package/dist/scheduler/timezoneRecompute.d.ts +61 -0
  567. package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
  568. package/dist/scheduler/timezoneRecompute.js +46 -0
  569. package/dist/scheduler/timezoneRecompute.js.map +1 -0
  570. package/dist/scheduler/types.d.ts +139 -0
  571. package/dist/scheduler/types.d.ts.map +1 -0
  572. package/dist/scheduler/types.js +8 -0
  573. package/dist/scheduler/types.js.map +1 -0
  574. package/dist/sendErrorClassifier.d.ts +45 -0
  575. package/dist/sendErrorClassifier.d.ts.map +1 -0
  576. package/dist/sendErrorClassifier.js +65 -0
  577. package/dist/sendErrorClassifier.js.map +1 -0
  578. package/dist/sessionKey.d.ts +136 -0
  579. package/dist/sessionKey.d.ts.map +1 -0
  580. package/dist/sessionKey.js +153 -0
  581. package/dist/sessionKey.js.map +1 -0
  582. package/dist/sessionPick.d.ts +42 -0
  583. package/dist/sessionPick.d.ts.map +1 -0
  584. package/dist/sessionPick.js +39 -0
  585. package/dist/sessionPick.js.map +1 -0
  586. package/dist/shutdown.d.ts +126 -0
  587. package/dist/shutdown.d.ts.map +1 -0
  588. package/dist/shutdown.js +164 -0
  589. package/dist/shutdown.js.map +1 -0
  590. package/dist/startupPromptBuffer.d.ts +85 -0
  591. package/dist/startupPromptBuffer.d.ts.map +1 -0
  592. package/dist/startupPromptBuffer.js +123 -0
  593. package/dist/startupPromptBuffer.js.map +1 -0
  594. package/dist/state.d.ts +1416 -0
  595. package/dist/state.d.ts.map +1 -0
  596. package/dist/state.js +2128 -0
  597. package/dist/state.js.map +1 -0
  598. package/dist/threadContextPreamble.d.ts +89 -0
  599. package/dist/threadContextPreamble.d.ts.map +1 -0
  600. package/dist/threadContextPreamble.js +102 -0
  601. package/dist/threadContextPreamble.js.map +1 -0
  602. package/dist/threadRouting.d.ts +164 -0
  603. package/dist/threadRouting.d.ts.map +1 -0
  604. package/dist/threadRouting.js +182 -0
  605. package/dist/threadRouting.js.map +1 -0
  606. package/dist/types.d.ts +1022 -0
  607. package/dist/types.d.ts.map +1 -0
  608. package/dist/types.js +3 -0
  609. package/dist/types.js.map +1 -0
  610. package/dist/utils/abortableFifo.d.ts +10 -0
  611. package/dist/utils/abortableFifo.d.ts.map +1 -0
  612. package/dist/utils/abortableFifo.js +55 -0
  613. package/dist/utils/abortableFifo.js.map +1 -0
  614. package/dist/utils/adoptedToolList.d.ts +27 -0
  615. package/dist/utils/adoptedToolList.d.ts.map +1 -0
  616. package/dist/utils/adoptedToolList.js +22 -0
  617. package/dist/utils/adoptedToolList.js.map +1 -0
  618. package/dist/utils/agentEnvironment.d.ts +42 -0
  619. package/dist/utils/agentEnvironment.d.ts.map +1 -0
  620. package/dist/utils/agentEnvironment.js +122 -0
  621. package/dist/utils/agentEnvironment.js.map +1 -0
  622. package/dist/utils/ansiClean.d.ts +11 -0
  623. package/dist/utils/ansiClean.d.ts.map +1 -0
  624. package/dist/utils/ansiClean.js +139 -0
  625. package/dist/utils/ansiClean.js.map +1 -0
  626. package/dist/utils/autoContinueOnLimit.d.ts +56 -0
  627. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
  628. package/dist/utils/autoContinueOnLimit.js +79 -0
  629. package/dist/utils/autoContinueOnLimit.js.map +1 -0
  630. package/dist/utils/canonicalPathContainment.d.ts +7 -0
  631. package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
  632. package/dist/utils/canonicalPathContainment.js +48 -0
  633. package/dist/utils/canonicalPathContainment.js.map +1 -0
  634. package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
  635. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
  636. package/dist/utils/claudeAccountPickerPlan.js +123 -0
  637. package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
  638. package/dist/utils/claudeAuthLogin.d.ts +71 -0
  639. package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
  640. package/dist/utils/claudeAuthLogin.js +93 -0
  641. package/dist/utils/claudeAuthLogin.js.map +1 -0
  642. package/dist/utils/claudeChunkClassifier.d.ts +97 -0
  643. package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
  644. package/dist/utils/claudeChunkClassifier.js +254 -0
  645. package/dist/utils/claudeChunkClassifier.js.map +1 -0
  646. package/dist/utils/claudeCodeVersion.d.ts +31 -0
  647. package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
  648. package/dist/utils/claudeCodeVersion.js +62 -0
  649. package/dist/utils/claudeCodeVersion.js.map +1 -0
  650. package/dist/utils/claudeCompactHook.d.ts +64 -0
  651. package/dist/utils/claudeCompactHook.d.ts.map +1 -0
  652. package/dist/utils/claudeCompactHook.js +98 -0
  653. package/dist/utils/claudeCompactHook.js.map +1 -0
  654. package/dist/utils/claudeLimitSwitch.d.ts +40 -0
  655. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
  656. package/dist/utils/claudeLimitSwitch.js +54 -0
  657. package/dist/utils/claudeLimitSwitch.js.map +1 -0
  658. package/dist/utils/claudeLivenessAction.d.ts +208 -0
  659. package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
  660. package/dist/utils/claudeLivenessAction.js +135 -0
  661. package/dist/utils/claudeLivenessAction.js.map +1 -0
  662. package/dist/utils/claudeMcpHeal.d.ts +92 -0
  663. package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
  664. package/dist/utils/claudeMcpHeal.js +91 -0
  665. package/dist/utils/claudeMcpHeal.js.map +1 -0
  666. package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
  667. package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
  668. package/dist/utils/claudeProfileUsageLines.js +42 -0
  669. package/dist/utils/claudeProfileUsageLines.js.map +1 -0
  670. package/dist/utils/claudeProfiles.d.ts +117 -0
  671. package/dist/utils/claudeProfiles.d.ts.map +1 -0
  672. package/dist/utils/claudeProfiles.js +285 -0
  673. package/dist/utils/claudeProfiles.js.map +1 -0
  674. package/dist/utils/claudeRelayRouting.d.ts +86 -0
  675. package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
  676. package/dist/utils/claudeRelayRouting.js +159 -0
  677. package/dist/utils/claudeRelayRouting.js.map +1 -0
  678. package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
  679. package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
  680. package/dist/utils/claudeRuntimeInfo.js +151 -0
  681. package/dist/utils/claudeRuntimeInfo.js.map +1 -0
  682. package/dist/utils/claudeScrapeShapes.d.ts +256 -0
  683. package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
  684. package/dist/utils/claudeScrapeShapes.js +290 -0
  685. package/dist/utils/claudeScrapeShapes.js.map +1 -0
  686. package/dist/utils/claudeSessionTitle.d.ts +27 -0
  687. package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
  688. package/dist/utils/claudeSessionTitle.js +90 -0
  689. package/dist/utils/claudeSessionTitle.js.map +1 -0
  690. package/dist/utils/claudeStreamJson.d.ts +214 -0
  691. package/dist/utils/claudeStreamJson.d.ts.map +1 -0
  692. package/dist/utils/claudeStreamJson.js +364 -0
  693. package/dist/utils/claudeStreamJson.js.map +1 -0
  694. package/dist/utils/claudeSubagentTail.d.ts +93 -0
  695. package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
  696. package/dist/utils/claudeSubagentTail.js +136 -0
  697. package/dist/utils/claudeSubagentTail.js.map +1 -0
  698. package/dist/utils/claudeUsage.d.ts +209 -0
  699. package/dist/utils/claudeUsage.d.ts.map +1 -0
  700. package/dist/utils/claudeUsage.js +413 -0
  701. package/dist/utils/claudeUsage.js.map +1 -0
  702. package/dist/utils/claudeUsageRefresher.d.ts +44 -0
  703. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
  704. package/dist/utils/claudeUsageRefresher.js +95 -0
  705. package/dist/utils/claudeUsageRefresher.js.map +1 -0
  706. package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
  707. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
  708. package/dist/utils/clearThreadOutputQueues.js +39 -0
  709. package/dist/utils/clearThreadOutputQueues.js.map +1 -0
  710. package/dist/utils/compactCommandRoute.d.ts +45 -0
  711. package/dist/utils/compactCommandRoute.d.ts.map +1 -0
  712. package/dist/utils/compactCommandRoute.js +36 -0
  713. package/dist/utils/compactCommandRoute.js.map +1 -0
  714. package/dist/utils/compactOnIdle.d.ts +329 -0
  715. package/dist/utils/compactOnIdle.d.ts.map +1 -0
  716. package/dist/utils/compactOnIdle.js +379 -0
  717. package/dist/utils/compactOnIdle.js.map +1 -0
  718. package/dist/utils/consoleFileTap.d.ts +51 -0
  719. package/dist/utils/consoleFileTap.d.ts.map +1 -0
  720. package/dist/utils/consoleFileTap.js +86 -0
  721. package/dist/utils/consoleFileTap.js.map +1 -0
  722. package/dist/utils/displayVerbosity.d.ts +44 -0
  723. package/dist/utils/displayVerbosity.d.ts.map +1 -0
  724. package/dist/utils/displayVerbosity.js +75 -0
  725. package/dist/utils/displayVerbosity.js.map +1 -0
  726. package/dist/utils/download.d.ts +72 -0
  727. package/dist/utils/download.d.ts.map +1 -0
  728. package/dist/utils/download.js +216 -0
  729. package/dist/utils/download.js.map +1 -0
  730. package/dist/utils/draftFinalize.d.ts +110 -0
  731. package/dist/utils/draftFinalize.d.ts.map +1 -0
  732. package/dist/utils/draftFinalize.js +100 -0
  733. package/dist/utils/draftFinalize.js.map +1 -0
  734. package/dist/utils/draftId.d.ts +36 -0
  735. package/dist/utils/draftId.d.ts.map +1 -0
  736. package/dist/utils/draftId.js +46 -0
  737. package/dist/utils/draftId.js.map +1 -0
  738. package/dist/utils/draftPacer.d.ts +72 -0
  739. package/dist/utils/draftPacer.d.ts.map +1 -0
  740. package/dist/utils/draftPacer.js +53 -0
  741. package/dist/utils/draftPacer.js.map +1 -0
  742. package/dist/utils/effortStartupKeystroke.d.ts +20 -0
  743. package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
  744. package/dist/utils/effortStartupKeystroke.js +28 -0
  745. package/dist/utils/effortStartupKeystroke.js.map +1 -0
  746. package/dist/utils/ensureSessionPlan.d.ts +70 -0
  747. package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
  748. package/dist/utils/ensureSessionPlan.js +54 -0
  749. package/dist/utils/ensureSessionPlan.js.map +1 -0
  750. package/dist/utils/fallbackBridge.d.ts +32 -0
  751. package/dist/utils/fallbackBridge.d.ts.map +1 -0
  752. package/dist/utils/fallbackBridge.js +62 -0
  753. package/dist/utils/fallbackBridge.js.map +1 -0
  754. package/dist/utils/fallbackChain.d.ts +299 -0
  755. package/dist/utils/fallbackChain.d.ts.map +1 -0
  756. package/dist/utils/fallbackChain.js +542 -0
  757. package/dist/utils/fallbackChain.js.map +1 -0
  758. package/dist/utils/fileSendPlan.d.ts +217 -0
  759. package/dist/utils/fileSendPlan.d.ts.map +1 -0
  760. package/dist/utils/fileSendPlan.js +291 -0
  761. package/dist/utils/fileSendPlan.js.map +1 -0
  762. package/dist/utils/fileSendService.d.ts +94 -0
  763. package/dist/utils/fileSendService.d.ts.map +1 -0
  764. package/dist/utils/fileSendService.js +387 -0
  765. package/dist/utils/fileSendService.js.map +1 -0
  766. package/dist/utils/groupFinalizePlan.d.ts +38 -0
  767. package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
  768. package/dist/utils/groupFinalizePlan.js +35 -0
  769. package/dist/utils/groupFinalizePlan.js.map +1 -0
  770. package/dist/utils/identicalOutputGuard.d.ts +83 -0
  771. package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
  772. package/dist/utils/identicalOutputGuard.js +99 -0
  773. package/dist/utils/identicalOutputGuard.js.map +1 -0
  774. package/dist/utils/isoTimestamp.d.ts +16 -0
  775. package/dist/utils/isoTimestamp.d.ts.map +1 -0
  776. package/dist/utils/isoTimestamp.js +34 -0
  777. package/dist/utils/isoTimestamp.js.map +1 -0
  778. package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
  779. package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
  780. package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
  781. package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
  782. package/dist/utils/jsonStreamHost.d.ts +238 -0
  783. package/dist/utils/jsonStreamHost.d.ts.map +1 -0
  784. package/dist/utils/jsonStreamHost.js +438 -0
  785. package/dist/utils/jsonStreamHost.js.map +1 -0
  786. package/dist/utils/keyedTransitionQueue.d.ts +18 -0
  787. package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
  788. package/dist/utils/keyedTransitionQueue.js +34 -0
  789. package/dist/utils/keyedTransitionQueue.js.map +1 -0
  790. package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
  791. package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
  792. package/dist/utils/limitEpisodeRecovery.js +133 -0
  793. package/dist/utils/limitEpisodeRecovery.js.map +1 -0
  794. package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
  795. package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
  796. package/dist/utils/limitHeldPromptQueue.js +59 -0
  797. package/dist/utils/limitHeldPromptQueue.js.map +1 -0
  798. package/dist/utils/limitHeldPrompts.d.ts +58 -0
  799. package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
  800. package/dist/utils/limitHeldPrompts.js +65 -0
  801. package/dist/utils/limitHeldPrompts.js.map +1 -0
  802. package/dist/utils/linkPreviewSuppression.d.ts +18 -0
  803. package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
  804. package/dist/utils/linkPreviewSuppression.js +37 -0
  805. package/dist/utils/linkPreviewSuppression.js.map +1 -0
  806. package/dist/utils/localClock.d.ts +15 -0
  807. package/dist/utils/localClock.d.ts.map +1 -0
  808. package/dist/utils/localClock.js +29 -0
  809. package/dist/utils/localClock.js.map +1 -0
  810. package/dist/utils/markdownTableRender.d.ts +83 -0
  811. package/dist/utils/markdownTableRender.d.ts.map +1 -0
  812. package/dist/utils/markdownTableRender.js +298 -0
  813. package/dist/utils/markdownTableRender.js.map +1 -0
  814. package/dist/utils/mediaGroupCollector.d.ts +51 -0
  815. package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
  816. package/dist/utils/mediaGroupCollector.js +90 -0
  817. package/dist/utils/mediaGroupCollector.js.map +1 -0
  818. package/dist/utils/messageSendService.d.ts +136 -0
  819. package/dist/utils/messageSendService.d.ts.map +1 -0
  820. package/dist/utils/messageSendService.js +165 -0
  821. package/dist/utils/messageSendService.js.map +1 -0
  822. package/dist/utils/minutesOverride.d.ts +7 -0
  823. package/dist/utils/minutesOverride.d.ts.map +1 -0
  824. package/dist/utils/minutesOverride.js +16 -0
  825. package/dist/utils/minutesOverride.js.map +1 -0
  826. package/dist/utils/modelPickerPlan.d.ts +119 -0
  827. package/dist/utils/modelPickerPlan.d.ts.map +1 -0
  828. package/dist/utils/modelPickerPlan.js +171 -0
  829. package/dist/utils/modelPickerPlan.js.map +1 -0
  830. package/dist/utils/modelRecentPlan.d.ts +56 -0
  831. package/dist/utils/modelRecentPlan.d.ts.map +1 -0
  832. package/dist/utils/modelRecentPlan.js +107 -0
  833. package/dist/utils/modelRecentPlan.js.map +1 -0
  834. package/dist/utils/modelSetReplyDecision.d.ts +67 -0
  835. package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
  836. package/dist/utils/modelSetReplyDecision.js +27 -0
  837. package/dist/utils/modelSetReplyDecision.js.map +1 -0
  838. package/dist/utils/openCodeAuthLogin.d.ts +181 -0
  839. package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
  840. package/dist/utils/openCodeAuthLogin.js +393 -0
  841. package/dist/utils/openCodeAuthLogin.js.map +1 -0
  842. package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
  843. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
  844. package/dist/utils/openCodeCompactPlugin.js +146 -0
  845. package/dist/utils/openCodeCompactPlugin.js.map +1 -0
  846. package/dist/utils/openCodeTurnActivity.d.ts +67 -0
  847. package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
  848. package/dist/utils/openCodeTurnActivity.js +27 -0
  849. package/dist/utils/openCodeTurnActivity.js.map +1 -0
  850. package/dist/utils/outputDebounce.d.ts +24 -0
  851. package/dist/utils/outputDebounce.d.ts.map +1 -0
  852. package/dist/utils/outputDebounce.js +30 -0
  853. package/dist/utils/outputDebounce.js.map +1 -0
  854. package/dist/utils/outputFlushTiming.d.ts +54 -0
  855. package/dist/utils/outputFlushTiming.d.ts.map +1 -0
  856. package/dist/utils/outputFlushTiming.js +48 -0
  857. package/dist/utils/outputFlushTiming.js.map +1 -0
  858. package/dist/utils/paginateList.d.ts +25 -0
  859. package/dist/utils/paginateList.d.ts.map +1 -0
  860. package/dist/utils/paginateList.js +32 -0
  861. package/dist/utils/paginateList.js.map +1 -0
  862. package/dist/utils/paneDiff.d.ts +55 -0
  863. package/dist/utils/paneDiff.d.ts.map +1 -0
  864. package/dist/utils/paneDiff.js +88 -0
  865. package/dist/utils/paneDiff.js.map +1 -0
  866. package/dist/utils/paneResizeGuard.d.ts +69 -0
  867. package/dist/utils/paneResizeGuard.d.ts.map +1 -0
  868. package/dist/utils/paneResizeGuard.js +91 -0
  869. package/dist/utils/paneResizeGuard.js.map +1 -0
  870. package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
  871. package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
  872. package/dist/utils/persistAdapterSessionIds.js +28 -0
  873. package/dist/utils/persistAdapterSessionIds.js.map +1 -0
  874. package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
  875. package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
  876. package/dist/utils/pinnedBannerSkipDecision.js +20 -0
  877. package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
  878. package/dist/utils/pollBackoff.d.ts +45 -0
  879. package/dist/utils/pollBackoff.d.ts.map +1 -0
  880. package/dist/utils/pollBackoff.js +44 -0
  881. package/dist/utils/pollBackoff.js.map +1 -0
  882. package/dist/utils/promptDelivery.d.ts +46 -0
  883. package/dist/utils/promptDelivery.d.ts.map +1 -0
  884. package/dist/utils/promptDelivery.js +49 -0
  885. package/dist/utils/promptDelivery.js.map +1 -0
  886. package/dist/utils/providerDisconnectPlan.d.ts +82 -0
  887. package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
  888. package/dist/utils/providerDisconnectPlan.js +110 -0
  889. package/dist/utils/providerDisconnectPlan.js.map +1 -0
  890. package/dist/utils/rateLimitLog.d.ts +48 -0
  891. package/dist/utils/rateLimitLog.d.ts.map +1 -0
  892. package/dist/utils/rateLimitLog.js +43 -0
  893. package/dist/utils/rateLimitLog.js.map +1 -0
  894. package/dist/utils/recentRelayWindow.d.ts +165 -0
  895. package/dist/utils/recentRelayWindow.d.ts.map +1 -0
  896. package/dist/utils/recentRelayWindow.js +284 -0
  897. package/dist/utils/recentRelayWindow.js.map +1 -0
  898. package/dist/utils/recvPreviewRedaction.d.ts +23 -0
  899. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
  900. package/dist/utils/recvPreviewRedaction.js +39 -0
  901. package/dist/utils/recvPreviewRedaction.js.map +1 -0
  902. package/dist/utils/reminderFlow.d.ts +148 -0
  903. package/dist/utils/reminderFlow.d.ts.map +1 -0
  904. package/dist/utils/reminderFlow.js +122 -0
  905. package/dist/utils/reminderFlow.js.map +1 -0
  906. package/dist/utils/reminderScheduleText.d.ts +87 -0
  907. package/dist/utils/reminderScheduleText.d.ts.map +1 -0
  908. package/dist/utils/reminderScheduleText.js +135 -0
  909. package/dist/utils/reminderScheduleText.js.map +1 -0
  910. package/dist/utils/reminderWizard.d.ts +710 -0
  911. package/dist/utils/reminderWizard.d.ts.map +1 -0
  912. package/dist/utils/reminderWizard.js +1164 -0
  913. package/dist/utils/reminderWizard.js.map +1 -0
  914. package/dist/utils/replyQuote.d.ts +111 -0
  915. package/dist/utils/replyQuote.d.ts.map +1 -0
  916. package/dist/utils/replyQuote.js +122 -0
  917. package/dist/utils/replyQuote.js.map +1 -0
  918. package/dist/utils/resolveBinary.d.ts +25 -0
  919. package/dist/utils/resolveBinary.d.ts.map +1 -0
  920. package/dist/utils/resolveBinary.js +99 -0
  921. package/dist/utils/resolveBinary.js.map +1 -0
  922. package/dist/utils/retryAfterHeader.d.ts +7 -0
  923. package/dist/utils/retryAfterHeader.d.ts.map +1 -0
  924. package/dist/utils/retryAfterHeader.js +17 -0
  925. package/dist/utils/retryAfterHeader.js.map +1 -0
  926. package/dist/utils/rotatingJsonlFile.d.ts +40 -0
  927. package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
  928. package/dist/utils/rotatingJsonlFile.js +106 -0
  929. package/dist/utils/rotatingJsonlFile.js.map +1 -0
  930. package/dist/utils/rotatingLogFile.d.ts +25 -0
  931. package/dist/utils/rotatingLogFile.d.ts.map +1 -0
  932. package/dist/utils/rotatingLogFile.js +74 -0
  933. package/dist/utils/rotatingLogFile.js.map +1 -0
  934. package/dist/utils/sendRateTracker.d.ts +59 -0
  935. package/dist/utils/sendRateTracker.d.ts.map +1 -0
  936. package/dist/utils/sendRateTracker.js +144 -0
  937. package/dist/utils/sendRateTracker.js.map +1 -0
  938. package/dist/utils/serialQueue.d.ts +5 -0
  939. package/dist/utils/serialQueue.d.ts.map +1 -0
  940. package/dist/utils/serialQueue.js +14 -0
  941. package/dist/utils/serialQueue.js.map +1 -0
  942. package/dist/utils/sseStreamLifecycle.d.ts +32 -0
  943. package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
  944. package/dist/utils/sseStreamLifecycle.js +41 -0
  945. package/dist/utils/sseStreamLifecycle.js.map +1 -0
  946. package/dist/utils/startupReadiness.d.ts +119 -0
  947. package/dist/utils/startupReadiness.d.ts.map +1 -0
  948. package/dist/utils/startupReadiness.js +148 -0
  949. package/dist/utils/startupReadiness.js.map +1 -0
  950. package/dist/utils/statusFlushDecision.d.ts +18 -0
  951. package/dist/utils/statusFlushDecision.d.ts.map +1 -0
  952. package/dist/utils/statusFlushDecision.js +53 -0
  953. package/dist/utils/statusFlushDecision.js.map +1 -0
  954. package/dist/utils/subagentRender.d.ts +52 -0
  955. package/dist/utils/subagentRender.d.ts.map +1 -0
  956. package/dist/utils/subagentRender.js +66 -0
  957. package/dist/utils/subagentRender.js.map +1 -0
  958. package/dist/utils/subagentStatusRender.d.ts +90 -0
  959. package/dist/utils/subagentStatusRender.d.ts.map +1 -0
  960. package/dist/utils/subagentStatusRender.js +124 -0
  961. package/dist/utils/subagentStatusRender.js.map +1 -0
  962. package/dist/utils/telegramError.d.ts +2 -0
  963. package/dist/utils/telegramError.d.ts.map +1 -0
  964. package/dist/utils/telegramError.js +16 -0
  965. package/dist/utils/telegramError.js.map +1 -0
  966. package/dist/utils/terminalEmitPlan.d.ts +74 -0
  967. package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
  968. package/dist/utils/terminalEmitPlan.js +86 -0
  969. package/dist/utils/terminalEmitPlan.js.map +1 -0
  970. package/dist/utils/thinkingRender.d.ts +74 -0
  971. package/dist/utils/thinkingRender.d.ts.map +1 -0
  972. package/dist/utils/thinkingRender.js +85 -0
  973. package/dist/utils/thinkingRender.js.map +1 -0
  974. package/dist/utils/threadStatusReport.d.ts +79 -0
  975. package/dist/utils/threadStatusReport.d.ts.map +1 -0
  976. package/dist/utils/threadStatusReport.js +88 -0
  977. package/dist/utils/threadStatusReport.js.map +1 -0
  978. package/dist/utils/threadToggle.d.ts +29 -0
  979. package/dist/utils/threadToggle.d.ts.map +1 -0
  980. package/dist/utils/threadToggle.js +39 -0
  981. package/dist/utils/threadToggle.js.map +1 -0
  982. package/dist/utils/timezone.d.ts +125 -0
  983. package/dist/utils/timezone.d.ts.map +1 -0
  984. package/dist/utils/timezone.js +278 -0
  985. package/dist/utils/timezone.js.map +1 -0
  986. package/dist/utils/tmuxExec.d.ts +61 -0
  987. package/dist/utils/tmuxExec.d.ts.map +1 -0
  988. package/dist/utils/tmuxExec.js +109 -0
  989. package/dist/utils/tmuxExec.js.map +1 -0
  990. package/dist/utils/tmuxSessionName.d.ts +34 -0
  991. package/dist/utils/tmuxSessionName.d.ts.map +1 -0
  992. package/dist/utils/tmuxSessionName.js +51 -0
  993. package/dist/utils/tmuxSessionName.js.map +1 -0
  994. package/dist/utils/toolResultRender.d.ts +61 -0
  995. package/dist/utils/toolResultRender.d.ts.map +1 -0
  996. package/dist/utils/toolResultRender.js +62 -0
  997. package/dist/utils/toolResultRender.js.map +1 -0
  998. package/dist/utils/topicRequest.d.ts +61 -0
  999. package/dist/utils/topicRequest.d.ts.map +1 -0
  1000. package/dist/utils/topicRequest.js +68 -0
  1001. package/dist/utils/topicRequest.js.map +1 -0
  1002. package/dist/utils/topicView.d.ts +55 -0
  1003. package/dist/utils/topicView.d.ts.map +1 -0
  1004. package/dist/utils/topicView.js +56 -0
  1005. package/dist/utils/topicView.js.map +1 -0
  1006. package/dist/utils/transcribeAudio.d.ts +89 -0
  1007. package/dist/utils/transcribeAudio.d.ts.map +1 -0
  1008. package/dist/utils/transcribeAudio.js +249 -0
  1009. package/dist/utils/transcribeAudio.js.map +1 -0
  1010. package/dist/utils/transientFrames.d.ts +52 -0
  1011. package/dist/utils/transientFrames.d.ts.map +1 -0
  1012. package/dist/utils/transientFrames.js +41 -0
  1013. package/dist/utils/transientFrames.js.map +1 -0
  1014. package/dist/utils/typingActive.d.ts +35 -0
  1015. package/dist/utils/typingActive.d.ts.map +1 -0
  1016. package/dist/utils/typingActive.js +22 -0
  1017. package/dist/utils/typingActive.js.map +1 -0
  1018. package/dist/utils/typingLoopBackstop.d.ts +64 -0
  1019. package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
  1020. package/dist/utils/typingLoopBackstop.js +68 -0
  1021. package/dist/utils/typingLoopBackstop.js.map +1 -0
  1022. package/dist/utils/verbosityRender.d.ts +18 -0
  1023. package/dist/utils/verbosityRender.d.ts.map +1 -0
  1024. package/dist/utils/verbosityRender.js +17 -0
  1025. package/dist/utils/verbosityRender.js.map +1 -0
  1026. package/dist/utils/wedgeRecovery.d.ts +57 -0
  1027. package/dist/utils/wedgeRecovery.d.ts.map +1 -0
  1028. package/dist/utils/wedgeRecovery.js +24 -0
  1029. package/dist/utils/wedgeRecovery.js.map +1 -0
  1030. package/dist/utils.d.ts +30 -0
  1031. package/dist/utils.d.ts.map +1 -0
  1032. package/dist/utils.js +61 -0
  1033. package/dist/utils.js.map +1 -0
  1034. package/dist/validation.d.ts +113 -0
  1035. package/dist/validation.d.ts.map +1 -0
  1036. package/dist/validation.js +226 -0
  1037. package/dist/validation.js.map +1 -0
  1038. package/dist/voiceQueue.d.ts +7 -0
  1039. package/dist/voiceQueue.d.ts.map +1 -0
  1040. package/dist/voiceQueue.js +33 -0
  1041. package/dist/voiceQueue.js.map +1 -0
  1042. package/examples/.env.example +17 -0
  1043. package/examples/docker-compose.yml +36 -0
  1044. package/package.json +83 -4
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.telegramPostUploadResponseDeadlineMs = void 0;
7
+ exports.createTelegramFileInput = createTelegramFileInput;
8
+ exports.checkIsDocumentFileSendMediaGroup = checkIsDocumentFileSendMediaGroup;
9
+ exports.createTelegramMediaGroup = createTelegramMediaGroup;
10
+ exports.getTelegramMessageIds = getTelegramMessageIds;
11
+ exports.createTelegramFileSendGateway = createTelegramFileSendGateway;
12
+ const node_fs_1 = require("node:fs");
13
+ const node_stream_1 = require("node:stream");
14
+ const promises_1 = require("node:stream/promises");
15
+ const abort_controller_1 = __importDefault(require("abort-controller"));
16
+ const fileSendService_1 = require("../../utils/fileSendService");
17
+ const utils_1 = require("../../utils");
18
+ const sendErrorClassifier_1 = require("../../sendErrorClassifier");
19
+ /** A stream may terminate without closing the descriptor retained by the service. */
20
+ const descriptorStreamFs = {
21
+ read: node_fs_1.read,
22
+ close: (_fileDescriptor, callback) => callback(null),
23
+ };
24
+ /** Maximum wait for Telegram's response after every request-body stream ends. */
25
+ exports.telegramPostUploadResponseDeadlineMs = 30_000;
26
+ function startPostUploadResponseDeadline(callback, delayMs) {
27
+ const timer = setTimeout(callback, delayMs);
28
+ timer.unref?.();
29
+ return () => clearTimeout(timer);
30
+ }
31
+ /** Create the Telegraf-side controller; stream state decides whether to abort it. */
32
+ function createTelegrafAbortBridge() {
33
+ const controller = new abort_controller_1.default();
34
+ return {
35
+ signal: controller.signal,
36
+ abort: () => controller.abort(),
37
+ };
38
+ }
39
+ /**
40
+ * Keep one attempt's streams alive only for its send callback. Terminal listeners
41
+ * are registered before the callback starts. Cancellation destroys unread streams
42
+ * and aborts the sender only while any request body remains unconsumed. Once every
43
+ * stream has ended, the callback owns the delivery outcome and must settle before
44
+ * cleanup completes or a retry can begin. A bounded response deadline starts only
45
+ * after every stream ends normally; expiry aborts the sender and awaits settlement.
46
+ */
47
+ async function executeWithTerminalStreams(streams, signal, abortSender, startResponseDeadline, send) {
48
+ const terminalPromises = streams.map(async (stream) => {
49
+ try {
50
+ await (0, promises_1.finished)(stream, { cleanup: true });
51
+ }
52
+ catch {
53
+ // destroy() rejects finished(); settlement, not that expected error, owns this boundary.
54
+ }
55
+ return stream.readableEnded;
56
+ });
57
+ const destroyLiveStreams = () => {
58
+ for (const stream of streams) {
59
+ if (!stream.destroyed && !stream.readableEnded)
60
+ stream.destroy();
61
+ }
62
+ };
63
+ let handleAbort = null;
64
+ if (signal) {
65
+ handleAbort = () => {
66
+ if (streams.every((stream) => stream.readableEnded))
67
+ return;
68
+ destroyLiveStreams();
69
+ abortSender();
70
+ };
71
+ signal.addEventListener('abort', handleAbort, { once: true });
72
+ if (signal.aborted)
73
+ handleAbort();
74
+ }
75
+ let isSendSettled = false;
76
+ let responseDeadlineError = null;
77
+ let cancelResponseDeadline = () => { };
78
+ const responseDeadlineReady = Promise.all(terminalPromises).then((streamEndStates) => {
79
+ if (isSendSettled || !streamEndStates.every(Boolean))
80
+ return;
81
+ cancelResponseDeadline = startResponseDeadline(() => {
82
+ responseDeadlineError = new Error(`Telegram did not respond within ${exports.telegramPostUploadResponseDeadlineMs} ms after upload completed`);
83
+ abortSender();
84
+ }, exports.telegramPostUploadResponseDeadlineMs);
85
+ });
86
+ try {
87
+ return await send();
88
+ }
89
+ catch (error) {
90
+ if (responseDeadlineError) {
91
+ throw new fileSendService_1.FileSendDeliveryUnknownError(responseDeadlineError);
92
+ }
93
+ throw error;
94
+ }
95
+ finally {
96
+ isSendSettled = true;
97
+ cancelResponseDeadline();
98
+ if (signal && handleAbort)
99
+ signal.removeEventListener('abort', handleAbort);
100
+ destroyLiveStreams();
101
+ await Promise.all(terminalPromises);
102
+ await responseDeadlineReady;
103
+ }
104
+ }
105
+ /**
106
+ * Build a fresh retry input without transferring descriptor ownership. Non-empty
107
+ * snapshots use a positional stream capped at the validated end byte; an empty
108
+ * snapshot uses an in-memory empty Readable so later file growth stays invisible.
109
+ */
110
+ function createTelegramFileInput(snapshot) {
111
+ return {
112
+ source: snapshot.sizeBytes === 0
113
+ ? node_stream_1.Readable.from(Buffer.alloc(0), { objectMode: false })
114
+ : (0, node_fs_1.createReadStream)('', {
115
+ fd: snapshot.fd,
116
+ autoClose: false,
117
+ fs: descriptorStreamFs,
118
+ start: 0,
119
+ end: snapshot.sizeBytes - 1,
120
+ }),
121
+ filename: snapshot.filename,
122
+ };
123
+ }
124
+ /** Narrow the project media union before constructing Telegraf's homogeneous arrays. */
125
+ function checkIsDocumentFileSendMediaGroup(mediaGroup) {
126
+ return mediaGroup.kind === 'document';
127
+ }
128
+ /** Convert a project-owned descriptor group into fresh Telegraf inputs for one attempt. */
129
+ function createTelegramMediaGroup(mediaGroup) {
130
+ if (checkIsDocumentFileSendMediaGroup(mediaGroup)) {
131
+ const media = mediaGroup.media.map((entry) => ({
132
+ type: 'document',
133
+ media: createTelegramFileInput(entry.media),
134
+ ...(entry.caption !== undefined ? { caption: entry.caption } : {}),
135
+ }));
136
+ return media;
137
+ }
138
+ const media = mediaGroup.media.map((entry) => {
139
+ const telegramInput = createTelegramFileInput(entry.media);
140
+ if (entry.type === 'photo') {
141
+ return {
142
+ type: 'photo',
143
+ media: telegramInput,
144
+ ...(entry.caption !== undefined ? { caption: entry.caption } : {}),
145
+ };
146
+ }
147
+ return {
148
+ type: 'video',
149
+ media: telegramInput,
150
+ ...(entry.caption !== undefined ? { caption: entry.caption } : {}),
151
+ };
152
+ });
153
+ return media;
154
+ }
155
+ /** Extract sent message ids in Telegram response order for `/clear` tracking. */
156
+ function getTelegramMessageIds(sent) {
157
+ return Array.isArray(sent)
158
+ ? sent.map((message) => message.message_id)
159
+ : [sent.message_id];
160
+ }
161
+ /** Preserve retryable API errors/cancellation and mark only ambiguous initiated sends. */
162
+ function throwTelegramDeliveryError(error, isDeliveryInitiated, isAbortForwarded, signal) {
163
+ if (error instanceof fileSendService_1.FileSendDeliveryUnknownError)
164
+ throw error;
165
+ if (isAbortForwarded && signal)
166
+ throw (0, utils_1.getAbortError)(signal);
167
+ if ((0, utils_1.checkIsAbortError)(error))
168
+ throw error;
169
+ if ((0, sendErrorClassifier_1.checkIsApiError)(error) || !isDeliveryInitiated)
170
+ throw error;
171
+ const cause = error instanceof Error
172
+ ? error
173
+ : new Error('Telegram delivery failed without an error response');
174
+ throw new fileSendService_1.FileSendDeliveryUnknownError(cause);
175
+ }
176
+ /**
177
+ * Build the production gateway so every invocation constructs fresh bounded
178
+ * inputs and no attempt settles until all of its streams are terminal.
179
+ */
180
+ function createTelegramFileSendGateway(deps) {
181
+ const startResponseDeadline = deps.startPostUploadResponseDeadline
182
+ ?? startPostUploadResponseDeadline;
183
+ async function executeSingleSend(target, source, caption, send, signal) {
184
+ const input = createTelegramFileInput(source);
185
+ const telegrafAbort = createTelegrafAbortBridge();
186
+ let isDeliveryInitiated = false;
187
+ try {
188
+ const sent = await executeWithTerminalStreams([input.source], signal, telegrafAbort.abort, startResponseDeadline, async () => {
189
+ isDeliveryInitiated = true;
190
+ return send(target, input, caption, telegrafAbort.signal);
191
+ });
192
+ return { messageIds: getTelegramMessageIds(sent) };
193
+ }
194
+ catch (error) {
195
+ throwTelegramDeliveryError(error, isDeliveryInitiated, telegrafAbort.signal.aborted, signal);
196
+ }
197
+ }
198
+ return {
199
+ sendPhoto: (target, source, caption, signal) => executeSingleSend(target, source, caption, deps.sendPhoto, signal),
200
+ sendAnimation: (target, source, caption, signal) => executeSingleSend(target, source, caption, deps.sendAnimation, signal),
201
+ sendVideo: (target, source, caption, signal) => executeSingleSend(target, source, caption, deps.sendVideo, signal),
202
+ sendDocument: (target, source, caption, signal) => executeSingleSend(target, source, caption, deps.sendDocument, signal),
203
+ sendMediaGroup: async (target, mediaGroup, signal) => {
204
+ const telegramMediaGroup = createTelegramMediaGroup(mediaGroup);
205
+ const streams = telegramMediaGroup.map((entry) => entry.media.source);
206
+ const telegrafAbort = createTelegrafAbortBridge();
207
+ let isDeliveryInitiated = false;
208
+ try {
209
+ const sent = await executeWithTerminalStreams(streams, signal, telegrafAbort.abort, startResponseDeadline, async () => {
210
+ isDeliveryInitiated = true;
211
+ return deps.sendMediaGroup(target, telegramMediaGroup, telegrafAbort.signal);
212
+ });
213
+ return { messageIds: getTelegramMessageIds(sent) };
214
+ }
215
+ catch (error) {
216
+ throwTelegramDeliveryError(error, isDeliveryInitiated, telegrafAbort.signal.aborted, signal);
217
+ }
218
+ },
219
+ };
220
+ }
221
+ //# sourceMappingURL=fileSendGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSendGateway.js","sourceRoot":"","sources":["../../../src/connectors/telegram/fileSendGateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type Locale } from '../../i18n';
2
+ import type { SessionKey } from '../../sessionKey';
3
+ /**
4
+ * @description What the Telegram side of `bot.ts` does with a conversation of
5
+ * ANOTHER platform (Jira connector plan J2, D19). Every adapter event runs inside
6
+ * a locale lookup and may reach a Telegram send; both read the Telegram chat id,
7
+ * which throws for a foreign key — so without these a Jira session would throw on
8
+ * its first output. A foreign key gets the fallback locale, no group title, and
9
+ * every Telegram I/O primitive returns early.
10
+ */
11
+ /** The per-chat locale settings `state.json` holds for Telegram chats. */
12
+ export interface TelegramChatLocaleStore {
13
+ getChatLocaleOverride(chatId: number): Locale | null;
14
+ getChatTelegramLocale(chatId: number): Locale | null;
15
+ }
16
+ /**
17
+ * @description The locale a conversation's bot texts are written in: the chat's
18
+ * `/language` override, else the Telegram locale last seen there, else the
19
+ * default — which is also what a conversation of another platform gets.
20
+ */
21
+ export declare function getTelegramConversationLocale(key: SessionKey, store: TelegramChatLocaleStore | null): Locale;
22
+ /** Where the preamble's `group:` label comes from. */
23
+ export interface PreambleGroupTitleSources {
24
+ getCachedGroupTitle(chatId: number): string | undefined;
25
+ checkIsDmKey(key: SessionKey): boolean;
26
+ getBotName(): string | undefined;
27
+ }
28
+ /**
29
+ * @description The `group:` label of the thread-context preamble: the cached
30
+ * supergroup title; for the owner's DM (a private chat has no title) the bot's
31
+ * own name; nothing for a conversation of another platform.
32
+ */
33
+ export declare function getTelegramPreambleGroupTitle(key: SessionKey, sources: PreambleGroupTitleSources): string | undefined;
34
+ /**
35
+ * @description Only the Telegram conversations of a list. The binding store is
36
+ * shared by every platform (a Jira issue binds its project folder too), while a
37
+ * Telegram listing or check over it reads each key's chat or topic id — which
38
+ * throws for a foreign key.
39
+ */
40
+ export declare function getTelegramConversations<T extends {
41
+ key: SessionKey;
42
+ }>(entries: readonly T[]): T[];
43
+ /** What every Telegram refusal of a foreign conversation says — the primitive guard's skip and the send queue's error alike. */
44
+ export declare const notTelegramChatPhrase = "is not a Telegram chat";
45
+ /**
46
+ * @description A guard for the Telegram I/O primitives (send / edit / delete /
47
+ * typing / pin / pinned banner): `true` for a Telegram key, `false` for any
48
+ * other — the primitive then returns early. The skip is logged ONCE per
49
+ * primitive and conversation, since output arrives in many chunks.
50
+ */
51
+ export declare function createTelegramPrimitiveGuard(warn?: (line: string) => void): (key: SessionKey, primitive: string) => boolean;
52
+ //# sourceMappingURL=foreignKeyFallbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foreignKeyFallbacks.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/foreignKeyFallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI/D;;;;;;;GAOG;AAEH,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrD,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,uBAAuB,GAAG,IAAI,GAAG,MAAM,CAI5G;AAED,sDAAsD;AACtD,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxD,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;IACvC,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,GAAG,SAAS,CAKrH;AAKD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAElG;AAED,gIAAgI;AAChI,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAK9D;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmB,GAC1C,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAYjD"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notTelegramChatPhrase = void 0;
4
+ exports.getTelegramConversationLocale = getTelegramConversationLocale;
5
+ exports.getTelegramPreambleGroupTitle = getTelegramPreambleGroupTitle;
6
+ exports.getTelegramConversations = getTelegramConversations;
7
+ exports.createTelegramPrimitiveGuard = createTelegramPrimitiveGuard;
8
+ const i18n_1 = require("../../i18n");
9
+ const connectorSet_1 = require("../../platform/connectorSet");
10
+ const sessionKeyCodec_1 = require("./sessionKeyCodec");
11
+ /**
12
+ * @description The locale a conversation's bot texts are written in: the chat's
13
+ * `/language` override, else the Telegram locale last seen there, else the
14
+ * default — which is also what a conversation of another platform gets.
15
+ */
16
+ function getTelegramConversationLocale(key, store) {
17
+ if (!store || !(0, sessionKeyCodec_1.checkIsTelegramKey)(key))
18
+ return i18n_1.defaultLocale;
19
+ const chatId = (0, sessionKeyCodec_1.getTelegramChatId)(key);
20
+ return store.getChatLocaleOverride(chatId) ?? store.getChatTelegramLocale(chatId) ?? i18n_1.defaultLocale;
21
+ }
22
+ /**
23
+ * @description The `group:` label of the thread-context preamble: the cached
24
+ * supergroup title; for the owner's DM (a private chat has no title) the bot's
25
+ * own name; nothing for a conversation of another platform.
26
+ */
27
+ function getTelegramPreambleGroupTitle(key, sources) {
28
+ if (!(0, sessionKeyCodec_1.checkIsTelegramKey)(key))
29
+ return undefined;
30
+ const cached = sources.getCachedGroupTitle((0, sessionKeyCodec_1.getTelegramChatId)(key));
31
+ if (cached)
32
+ return cached;
33
+ return sources.checkIsDmKey(key) ? sources.getBotName() : undefined;
34
+ }
35
+ /** The platform set {@link getTelegramConversations} keeps. */
36
+ const telegramPlatforms = (0, connectorSet_1.getServedPlatforms)(['telegram']);
37
+ /**
38
+ * @description Only the Telegram conversations of a list. The binding store is
39
+ * shared by every platform (a Jira issue binds its project folder too), while a
40
+ * Telegram listing or check over it reads each key's chat or topic id — which
41
+ * throws for a foreign key.
42
+ */
43
+ function getTelegramConversations(entries) {
44
+ return (0, connectorSet_1.getServedConversations)(entries, telegramPlatforms);
45
+ }
46
+ /** What every Telegram refusal of a foreign conversation says — the primitive guard's skip and the send queue's error alike. */
47
+ exports.notTelegramChatPhrase = 'is not a Telegram chat';
48
+ /** Distinct (primitive, conversation) pairs remembered before the memory starts over. */
49
+ const reportedPrimitiveSkipsMaxSize = 1000;
50
+ /**
51
+ * @description A guard for the Telegram I/O primitives (send / edit / delete /
52
+ * typing / pin / pinned banner): `true` for a Telegram key, `false` for any
53
+ * other — the primitive then returns early. The skip is logged ONCE per
54
+ * primitive and conversation, since output arrives in many chunks.
55
+ */
56
+ function createTelegramPrimitiveGuard(warn = console.warn) {
57
+ const reported = new Set();
58
+ return (key, primitive) => {
59
+ if ((0, sessionKeyCodec_1.checkIsTelegramKey)(key))
60
+ return true;
61
+ const reportKey = [primitive, key.platform, key.space, key.thread].join('|');
62
+ if (!reported.has(reportKey)) {
63
+ if (reported.size >= reportedPrimitiveSkipsMaxSize)
64
+ reported.clear();
65
+ reported.add(reportKey);
66
+ warn(`[telegram] ${primitive} skipped: ${key.platform} conversation ${key.space}/${key.thread} ${exports.notTelegramChatPhrase}`);
67
+ }
68
+ return false;
69
+ };
70
+ }
71
+ //# sourceMappingURL=foreignKeyFallbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foreignKeyFallbacks.js","sourceRoot":"","sources":["../../../src/connectors/telegram/foreignKeyFallbacks.ts"],"names":[],"mappings":";;;AAyBA,sEAIC;AAcD,sEAKC;AAWD,4DAEC;AAcD,oEAcC;AAzFD,qCAAwD;AAExD,8DAAyF;AACzF,uDAA0E;AAiB1E;;;;GAIG;AACH,SAAgB,6BAA6B,CAAC,GAAe,EAAE,KAAqC;IAClG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAA,oCAAkB,EAAC,GAAG,CAAC;QAAE,OAAO,oBAAa,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAA,mCAAiB,EAAC,GAAG,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,oBAAa,CAAC;AACrG,CAAC;AASD;;;;GAIG;AACH,SAAgB,6BAA6B,CAAC,GAAe,EAAE,OAAkC;IAC/F,IAAI,CAAC,IAAA,oCAAkB,EAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAA,mCAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,+DAA+D;AAC/D,MAAM,iBAAiB,GAA4B,IAAA,iCAAkB,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEpF;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAgC,OAAqB;IAC3F,OAAO,IAAA,qCAAsB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED,gIAAgI;AACnH,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,yFAAyF;AACzF,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,SAAgB,4BAA4B,CAC1C,OAA+B,OAAO,CAAC,IAAI;IAE3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACxB,IAAI,IAAA,oCAAkB,EAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,IAAI,IAAI,6BAA6B;gBAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,SAAS,aAAa,GAAG,CAAC,QAAQ,iBAAiB,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,6BAAqB,EAAE,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * @description The Telegram connector's inbound half — everything that turns a
3
+ * raw Telegram update into the core's platform-neutral {@link InboundEvent},
4
+ * plus the membership vocabulary the access policy used to import from telegraf
5
+ * directly.
6
+ *
7
+ * Nothing here decides policy. It translates: Telegram's nine `ChatMember`
8
+ * statuses become one `hasElevatedRights` boolean, its six media fields become
9
+ * five {@link AttachmentKind}s, and its `/name@bot args` syntax becomes an
10
+ * {@link InboundCommand} the neutral router can dispatch.
11
+ */
12
+ import type { ChatMember, Message } from 'telegraf/typings/core/types/typegram';
13
+ import type { SessionKey } from '../../sessionKey';
14
+ import type { ConnectorInbound, InboundCommand, InboundEvent, NormalizedAttachment, PlatformMember } from '../../platform/inbound';
15
+ import { type TelegramFileMeta } from './fileIntake';
16
+ /**
17
+ * @description The two facts about THIS bot that inbound normalization needs:
18
+ * the username, to tell `/cmd@thisbot` from a command aimed at another bot in
19
+ * the same group, and the user id, to attribute a quoted reply to the assistant
20
+ * rather than to a person.
21
+ */
22
+ export interface TelegramBotIdentity {
23
+ username?: string;
24
+ userId?: number;
25
+ }
26
+ /**
27
+ * @description Reduce a `getChatAdministrators` response to the core's neutral
28
+ * member shape. Bots are kept but flagged, so the policy's "real person" rule
29
+ * stays in the policy instead of being silently pre-applied here.
30
+ */
31
+ export declare function getPlatformMembers(members: ChatMember[]): PlatformMember[];
32
+ /**
33
+ * @description Should a `chat_member` status transition invalidate the cached
34
+ * admin set? Only transitions that TOUCH elevated status matter — someone was
35
+ * or becomes creator/administrator (promotion, demotion, an admin leaving).
36
+ * Joins/leaves of regular members can't change the admin set, so they must not
37
+ * trigger a `getChatAdministrators` refetch.
38
+ *
39
+ * Lives in the connector because the decision is expressed entirely in
40
+ * Telegram's status vocabulary.
41
+ */
42
+ export declare function checkShouldInvalidateAdminCache(oldStatus: ChatMember['status'], newStatus: ChatMember['status']): boolean;
43
+ /**
44
+ * @description Normalize a message's media into the core's attachment shape.
45
+ *
46
+ * Voice is handled separately from {@link getTelegramFileMeta} because the bot
47
+ * routes it to transcription rather than file intake — but the core still needs
48
+ * to see that the message CARRIED something, so it is normalized here.
49
+ */
50
+ export declare function getNormalizedAttachments(message: Message): NormalizedAttachment[];
51
+ /**
52
+ * @description Recognise Telegram's command syntax in a text message.
53
+ *
54
+ * Deliberately mirrors telegraf's own `Composer.command` matching rule so
55
+ * routing commands through the neutral router cannot change which messages
56
+ * count as commands:
57
+ *
58
+ * - the message's FIRST entity must be a `bot_command` at offset 0;
59
+ * - `/name@someone` only counts when `someone` is this bot (case-insensitive),
60
+ * so a command addressed to another bot in the same group falls through;
61
+ * - everything after the command token is the argument remainder.
62
+ *
63
+ * Returns `null` when the message is not a command — the caller then treats it
64
+ * as plain text.
65
+ */
66
+ export declare function getTelegramCommand(message: Message.TextMessage, identity: TelegramBotIdentity): InboundCommand | null;
67
+ /**
68
+ * @description Finds the bot's saved copy of a file sent to the conversation
69
+ * earlier (the file intake keeps it under `DATA_DIR`), or `undefined` once it is
70
+ * gone or was never taken in.
71
+ */
72
+ export type SavedFileFinder = (meta: TelegramFileMeta) => string | undefined;
73
+ /**
74
+ * @description The agent-facing reply-quote block for a message the bot forwards
75
+ * as a prompt — a typed text, a voice note whose transcript becomes one, or a
76
+ * file whose announcement does — or `undefined` when there is nothing to fold in
77
+ * (no reply, the topic root, a service message, nothing quotable). One reader for
78
+ * all of them, so a spoken reply or a file sent as a reply carries exactly the
79
+ * block a typed reply to the same message does. A reply TO a file names that
80
+ * file, with the path `findSavedFile` returns for it.
81
+ */
82
+ export declare function getTelegramReplyQuoteBlock(message: Message, identity: TelegramBotIdentity, findSavedFile?: SavedFileFinder): string | undefined;
83
+ /**
84
+ * @description Turn one Telegram message into the core's {@link InboundEvent}.
85
+ *
86
+ * `key` is passed in rather than derived here because resolving it needs the
87
+ * surface configuration (owner id, served group, chat mode) that lives in the
88
+ * bot's routing layer, not in this translation step.
89
+ *
90
+ * `raw` overrides what lands on the event's connector-private escape hatch. It
91
+ * exists because the not-yet-relocated command handlers still read Telegram
92
+ * fields off the telegraf CONTEXT rather than off the bare message; once they
93
+ * move into this directory the override goes away and `raw` is the message.
94
+ */
95
+ export declare function getInboundEvent(message: Message, key: SessionKey, identity: TelegramBotIdentity, raw?: unknown): InboundEvent;
96
+ /**
97
+ * @description What the Telegram connector needs from the bot to serve the
98
+ * inbound side. Injected so this module never imports `bot.ts` (which would be
99
+ * a cycle) and so the connector is testable without Telegraf.
100
+ */
101
+ export interface TelegramInboundDeps {
102
+ /** `bot.telegram.getChatAdministrators` for one chat id. */
103
+ listAdministrators: (chatId: number) => Promise<ChatMember[]>;
104
+ /**
105
+ * `bot.botInfo` reduced to the two facts normalization needs. Read lazily:
106
+ * `botInfo` is only populated once telegraf has called `getMe` at launch,
107
+ * which happens after this connector is constructed.
108
+ */
109
+ getIdentity: () => TelegramBotIdentity;
110
+ }
111
+ /**
112
+ * @description The Telegram connector's inbound side.
113
+ *
114
+ * {@link deliver} is the connector-facing entry: the telegraf handlers call it
115
+ * with a raw message and the resolved key, it normalizes, and the core's
116
+ * registered handler receives a platform-neutral {@link InboundEvent}.
117
+ *
118
+ * `start` / `stop` arm and disarm that delivery. They deliberately do NOT own
119
+ * the long-polling transport yet: `bot.launch` still lives in the bot's startup
120
+ * sequence alongside the rest of the telegraf wiring, and moves in behind this
121
+ * interface when that wiring relocates into this directory.
122
+ */
123
+ export interface TelegramConnectorInbound extends ConnectorInbound {
124
+ /**
125
+ * Normalize one Telegram message and hand it to the registered core handler.
126
+ * `raw` overrides the event's escape hatch — see {@link getInboundEvent}.
127
+ */
128
+ deliver(message: Message, key: SessionKey, raw?: unknown): Promise<void>;
129
+ }
130
+ export declare function createTelegramConnectorInbound(deps: TelegramInboundDeps): TelegramConnectorInbound;
131
+ //# sourceMappingURL=inbound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/inbound.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAQ,MAAM,sCAAsC,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAEV,gBAAgB,EAEhB,cAAc,EACd,YAAY,EAGZ,oBAAoB,EACpB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAA8C,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA2BjG;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAO1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC/B,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,GAC9B,OAAO,CAET;AAgBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,EAAE,CAyBjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,WAAW,EAC5B,QAAQ,EAAE,mBAAmB,GAC5B,cAAc,GAAG,IAAI,CASvB;AAOD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;AA+D7E;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,CAAC,EAAE,eAAe,GAC9B,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,mBAAmB,EAC7B,GAAG,GAAE,OAAiB,GACrB,YAAY,CAcd;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D;;;;OAIG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,GACxB,wBAAwB,CAkC1B"}