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 @@
1
+ {"version":3,"file":"checkRun.js","sourceRoot":"","sources":["../../src/scheduler/checkRun.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { type CheckRunResult } from './checkRun';
2
+ import type { DeliveryOutcome, FireContext, ScheduleRecord } from './types';
3
+ import { type PostToSessionDeps } from '../postToSession';
4
+ /**
5
+ * @description Scheduler delivery (plan S4): the real `deliver(job, fireContext)`
6
+ * callback the engine (S3) invokes at fire time. The flow is locked by the plan:
7
+ *
8
+ * 1. announce — post a visible message into the topic (job name + human
9
+ * schedule text + the prompt; a "missed at HH:MM" note for a catch-up run).
10
+ * 2. pin — pin that announcement (silent ONLY when the job opted in;
11
+ * default notifies all members). A pin failure degrades to a `console.warn`
12
+ * and the flow continues — the announcement is already visible.
13
+ * 3–4. post the prefixed prompt to the session ({@link postToSession}, shared
14
+ * with the Jira connector): ensure a session (starting one with the job's
15
+ * `lastAdapterName` snapshot as the adapter fallback — a topic that never
16
+ * picked an agent and carries no snapshot fails with `no agent selected`),
17
+ * let a BUSY one finish its turn up to the wait bound, then forward. An
18
+ * unbound topic → outcome `failed` with a distinct error string the engine
19
+ * records (S8 turns that into a pause).
20
+ *
21
+ * A REMINDER record (`deliveryKind: 'reminder'`) stops after step 2: its whole
22
+ * delivery IS the announcement plus its pin, which is what pierces a muted topic.
23
+ * Steps 3–4 are skipped entirely, so a reminder fires in an unbound topic and in
24
+ * General — there is no session to ensure, nothing to interrupt, and no agent to
25
+ * tell about the run.
26
+ *
27
+ * A CHECK record (`deliveryKind: 'check'`) runs its command FIRST and decides
28
+ * from the result and its persisted failing flag: a pass after a pass, or a
29
+ * failure after a failure, posts nothing; a pass after a failure posts one
30
+ * unpinned "passes again" line; the first failure posts the alert, pins it, and
31
+ * then wakes the agent through steps 3–4 with the failure details ahead of the
32
+ * job's prompt. An unbound topic fails with the same distinct error as a prompt
33
+ * job, so it is paused the same way.
34
+ *
35
+ * It owns NO bot.ts import: every side effect is injected via
36
+ * {@link ScheduleDeliveryDeps} (announce / pin / busy probe / ensure-session /
37
+ * forward / clock / sleep), so bot.ts wires its existing functions in with thin
38
+ * lambdas (S8) and the wait-loop is unit-testable on a fake clock.
39
+ */
40
+ /** Distinct error string the engine records when a fire hits an unbound topic. */
41
+ export declare const unboundDeliveryError = "thread is unbound";
42
+ /**
43
+ * @name ScheduleDeliveryDeps
44
+ * @description Everything the delivery callback needs from bot.ts, injected so
45
+ * the module stays free of bot.ts imports and the poll loop is testable.
46
+ * `threadKey` is the serialized `"<chatId>:<threadId>"` string carried on the
47
+ * record; the bot's lambdas parse it back into a `SessionKey` where needed.
48
+ */
49
+ export interface ScheduleDeliveryDeps extends PostToSessionDeps {
50
+ /**
51
+ * Post the announcement into the topic (the bot bakes in priority
52
+ * `'interactive'`). Resolves with the sent message id, or `null` when the
53
+ * send failed — pinning is skipped on `null`.
54
+ */
55
+ announce: (threadKey: string, text: string) => Promise<number | null>;
56
+ /** Pin the announcement. `isSilent` ⇒ `disable_notification`. Rejects on failure. */
57
+ pin: (threadKey: string, messageId: number, isSilent: boolean) => Promise<void>;
58
+ /** Run a check job's command in the thread's bound folder; `null` when the thread is unbound. */
59
+ runCheck: (threadKey: string, command: string, timeoutMs: number) => Promise<CheckRunResult | null>;
60
+ /** Persist a check job's failing flag (it decides whether the next run alerts). */
61
+ setCheckFailing: (jobId: string, isFailing: boolean) => Promise<void>;
62
+ }
63
+ /**
64
+ * @description Prefix a scheduled job's prompt with a single English line that
65
+ * tells the agent THIS turn is a scheduled run — `[Scheduled run "<name>"]`.
66
+ * Pure, English-stable (same convention as the `[Telegram thread context]`
67
+ * preamble): the agent may have no memory of the schedule being created (a
68
+ * different session, or created by the human, not the agent), so the visible
69
+ * topic announcement alone is not enough — the forwarded prompt itself must
70
+ * carry the marker so the agent acts on it as a scheduled task, not a stray
71
+ * message. Kept to one line so it never overwhelms a short prompt.
72
+ */
73
+ export declare function prependScheduledRunMarker(jobName: string, prompt: string, options?: {
74
+ dueAtMs?: number;
75
+ }): string;
76
+ /**
77
+ * @description Build the visible fire-announcement text via i18n, per delivery
78
+ * kind: a prompt job frames the run as a scheduled prompt for the agent, a
79
+ * reminder leads with its own text (the pin notification previews it, so the
80
+ * operator reads the reminder without opening the topic). Both interpolate the
81
+ * SAME `{missedNote}` — the catch-up annotation (host-local HH:MM of the missed
82
+ * instant) for a `catch-up` fire, empty for an `on-time` run — so a replayed run
83
+ * is annotated identically whichever kind it is.
84
+ *
85
+ * The `{schedule}` text differs per kind ON PURPOSE. A prompt job keeps
86
+ * English-only {@link describeSchedule} (its announcement is read alongside the
87
+ * agent-facing prompt). A reminder uses the LOCALIZED
88
+ * {@link getReminderScheduleText} — the very same words its `/reminders` list row
89
+ * and card show, because describing one reminder two different ways is a defect.
90
+ */
91
+ export declare function buildFireAnnouncement(job: ScheduleRecord, fireContext: FireContext): string;
92
+ /** @description The topic alert of a check's first failure: what failed, how, and the output tail. */
93
+ export declare function buildCheckFailedAnnouncement(job: ScheduleRecord, fireContext: FireContext, failure: string, output: string): string;
94
+ /**
95
+ * @description Build the engine's `deliver(job, fireContext)` callback bound to
96
+ * the injected deps. See the module header for the locked flow.
97
+ */
98
+ export declare function createScheduleDelivery(deps: ScheduleDeliveryDeps): (job: ScheduleRecord, fireContext: FireContext) => Promise<DeliveryOutcome>;
99
+ //# sourceMappingURL=delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;OAIG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,qFAAqF;IACrF,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,iGAAiG;IACjG,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpG,mFAAmF;IACnF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAGrH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAe3F;AASD,sGAAsG;AACtG,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CASR;AA0FD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,GACzB,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,CAqB7E"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unboundDeliveryError = void 0;
4
+ exports.prependScheduledRunMarker = prependScheduledRunMarker;
5
+ exports.buildFireAnnouncement = buildFireAnnouncement;
6
+ exports.buildCheckFailedAnnouncement = buildCheckFailedAnnouncement;
7
+ exports.createScheduleDelivery = createScheduleDelivery;
8
+ const i18n_1 = require("../i18n");
9
+ const reminderScheduleText_1 = require("../utils/reminderScheduleText");
10
+ const localClock_1 = require("../utils/localClock");
11
+ const checkRun_1 = require("./checkRun");
12
+ const deliveryKind_1 = require("./deliveryKind");
13
+ const recurrence_1 = require("./recurrence");
14
+ const postToSession_1 = require("../postToSession");
15
+ /**
16
+ * @description Scheduler delivery (plan S4): the real `deliver(job, fireContext)`
17
+ * callback the engine (S3) invokes at fire time. The flow is locked by the plan:
18
+ *
19
+ * 1. announce — post a visible message into the topic (job name + human
20
+ * schedule text + the prompt; a "missed at HH:MM" note for a catch-up run).
21
+ * 2. pin — pin that announcement (silent ONLY when the job opted in;
22
+ * default notifies all members). A pin failure degrades to a `console.warn`
23
+ * and the flow continues — the announcement is already visible.
24
+ * 3–4. post the prefixed prompt to the session ({@link postToSession}, shared
25
+ * with the Jira connector): ensure a session (starting one with the job's
26
+ * `lastAdapterName` snapshot as the adapter fallback — a topic that never
27
+ * picked an agent and carries no snapshot fails with `no agent selected`),
28
+ * let a BUSY one finish its turn up to the wait bound, then forward. An
29
+ * unbound topic → outcome `failed` with a distinct error string the engine
30
+ * records (S8 turns that into a pause).
31
+ *
32
+ * A REMINDER record (`deliveryKind: 'reminder'`) stops after step 2: its whole
33
+ * delivery IS the announcement plus its pin, which is what pierces a muted topic.
34
+ * Steps 3–4 are skipped entirely, so a reminder fires in an unbound topic and in
35
+ * General — there is no session to ensure, nothing to interrupt, and no agent to
36
+ * tell about the run.
37
+ *
38
+ * A CHECK record (`deliveryKind: 'check'`) runs its command FIRST and decides
39
+ * from the result and its persisted failing flag: a pass after a pass, or a
40
+ * failure after a failure, posts nothing; a pass after a failure posts one
41
+ * unpinned "passes again" line; the first failure posts the alert, pins it, and
42
+ * then wakes the agent through steps 3–4 with the failure details ahead of the
43
+ * job's prompt. An unbound topic fails with the same distinct error as a prompt
44
+ * job, so it is paused the same way.
45
+ *
46
+ * It owns NO bot.ts import: every side effect is injected via
47
+ * {@link ScheduleDeliveryDeps} (announce / pin / busy probe / ensure-session /
48
+ * forward / clock / sleep), so bot.ts wires its existing functions in with thin
49
+ * lambdas (S8) and the wait-loop is unit-testable on a fake clock.
50
+ */
51
+ /** Distinct error string the engine records when a fire hits an unbound topic. */
52
+ exports.unboundDeliveryError = 'thread is unbound';
53
+ /**
54
+ * @description Prefix a scheduled job's prompt with a single English line that
55
+ * tells the agent THIS turn is a scheduled run — `[Scheduled run "<name>"]`.
56
+ * Pure, English-stable (same convention as the `[Telegram thread context]`
57
+ * preamble): the agent may have no memory of the schedule being created (a
58
+ * different session, or created by the human, not the agent), so the visible
59
+ * topic announcement alone is not enough — the forwarded prompt itself must
60
+ * carry the marker so the agent acts on it as a scheduled task, not a stray
61
+ * message. Kept to one line so it never overwhelms a short prompt.
62
+ */
63
+ function prependScheduledRunMarker(jobName, prompt, options = {}) {
64
+ const dueNote = options.dueAtMs === undefined ? '' : ` · was due at ${(0, localClock_1.formatLocalDateAndClock)(options.dueAtMs)}`;
65
+ return `[Scheduled run "${jobName}"${dueNote}]\n${prompt}`;
66
+ }
67
+ /**
68
+ * @description Build the visible fire-announcement text via i18n, per delivery
69
+ * kind: a prompt job frames the run as a scheduled prompt for the agent, a
70
+ * reminder leads with its own text (the pin notification previews it, so the
71
+ * operator reads the reminder without opening the topic). Both interpolate the
72
+ * SAME `{missedNote}` — the catch-up annotation (host-local HH:MM of the missed
73
+ * instant) for a `catch-up` fire, empty for an `on-time` run — so a replayed run
74
+ * is annotated identically whichever kind it is.
75
+ *
76
+ * The `{schedule}` text differs per kind ON PURPOSE. A prompt job keeps
77
+ * English-only {@link describeSchedule} (its announcement is read alongside the
78
+ * agent-facing prompt). A reminder uses the LOCALIZED
79
+ * {@link getReminderScheduleText} — the very same words its `/reminders` list row
80
+ * and card show, because describing one reminder two different ways is a defect.
81
+ */
82
+ function buildFireAnnouncement(job, fireContext) {
83
+ const missedNote = getMissedNote(fireContext);
84
+ if ((0, deliveryKind_1.checkIsReminderSchedule)(job)) {
85
+ return (0, i18n_1.t)('reminders.fired', {
86
+ text: job.prompt,
87
+ schedule: (0, reminderScheduleText_1.getReminderScheduleText)(job.spec),
88
+ missedNote,
89
+ });
90
+ }
91
+ return (0, i18n_1.t)('schedule.fired', {
92
+ name: job.name,
93
+ schedule: (0, recurrence_1.describeSchedule)(job.spec),
94
+ prompt: job.prompt,
95
+ missedNote,
96
+ });
97
+ }
98
+ /** @description The catch-up note of a fire, empty for an on-time run. */
99
+ function getMissedNote(fireContext) {
100
+ return fireContext.kind === 'catch-up' && fireContext.missedAtMs !== undefined
101
+ ? (0, i18n_1.t)('schedule.missedNote', { time: (0, localClock_1.formatLocalClock)(fireContext.missedAtMs) })
102
+ : '';
103
+ }
104
+ /** @description The topic alert of a check's first failure: what failed, how, and the output tail. */
105
+ function buildCheckFailedAnnouncement(job, fireContext, failure, output) {
106
+ return (0, i18n_1.t)('schedule.checkFailed', {
107
+ name: job.name,
108
+ schedule: (0, recurrence_1.describeSchedule)(job.spec),
109
+ missedNote: getMissedNote(fireContext),
110
+ failure,
111
+ command: (0, checkRun_1.getCheckAlertCommand)(job.checkCommand ?? ''),
112
+ output: (0, checkRun_1.getOutputTail)(output.trim(), checkRun_1.checkAlertOutputMaxChars) || '—',
113
+ });
114
+ }
115
+ /**
116
+ * @description Steps 1–2: post the announcement and pin it. A pin failure only
117
+ * logs — the announcement is already visible.
118
+ */
119
+ async function announceAndPin(deps, job, text) {
120
+ const messageId = await deps.announce(job.threadKey, text);
121
+ if (messageId === null)
122
+ return;
123
+ try {
124
+ await deps.pin(job.threadKey, messageId, job.isPinSilent === true);
125
+ }
126
+ catch (error) {
127
+ console.warn(`[scheduler] pin announcement for job ${job.id} failed:`, error instanceof Error ? error.message : error);
128
+ }
129
+ }
130
+ /**
131
+ * @description Steps 3–4: post `prompt` (already carrying its marker) into the
132
+ * thread's session through {@link postToSession} and map its outcome onto the
133
+ * engine's delivery outcome.
134
+ */
135
+ async function deliverToAgent(deps, job, prompt, options = {}) {
136
+ // 3–4. ensure a session, let a busy one finish its turn, forward the prefixed prompt
137
+ const posted = await (0, postToSession_1.postToSession)(deps, job.threadKey, prompt, job.lastAdapterName, options);
138
+ if (posted.ok) {
139
+ // A run held during a usage-limit wait reaches the agent once the wait ends —
140
+ // with its resume, the operator's next message, or the next session (R23).
141
+ if (posted.isHeld)
142
+ console.log(`[scheduler] job ${job.id}: held until the usage-limit wait ends`);
143
+ return { status: 'delivered' };
144
+ }
145
+ // Unbound → distinct error the engine records; S8 pauses the job on it.
146
+ // no-adapter → the topic never picked an agent; start-failed → a start
147
+ // that threw; a failed forward keeps its own message.
148
+ switch (posted.reason) {
149
+ case 'unbound':
150
+ return { status: 'failed', error: exports.unboundDeliveryError };
151
+ case 'no-adapter':
152
+ return { status: 'failed', error: 'no agent selected for this topic' };
153
+ case 'start-failed':
154
+ return { status: 'failed', error: 'failed to start agent session' };
155
+ case 'forward-failed':
156
+ return { status: 'failed', error: posted.error };
157
+ }
158
+ }
159
+ /**
160
+ * @description The check flow: run the command, then stay quiet, post the
161
+ * "passes again" line, or raise the alert and wake the agent. The failing flag is
162
+ * stored BEFORE the agent is woken, so a restart mid-delivery cannot raise the
163
+ * same alert twice.
164
+ */
165
+ async function deliverCheck(deps, job, fireContext) {
166
+ const timeoutSec = job.checkTimeoutSec ?? checkRun_1.defaultCheckTimeoutSec;
167
+ const command = job.checkCommand ?? '';
168
+ const result = await deps.runCheck(job.threadKey, command, timeoutSec * 1000);
169
+ if (!result)
170
+ return { status: 'failed', error: exports.unboundDeliveryError };
171
+ const decision = (0, checkRun_1.getCheckAlertDecision)({
172
+ isPassing: (0, checkRun_1.checkIsCheckPassing)(result),
173
+ wasFailing: job.isCheckFailing === true,
174
+ });
175
+ if (decision === 'quiet')
176
+ return { status: 'delivered' };
177
+ if (decision === 'recovered') {
178
+ await deps.setCheckFailing(job.id, false);
179
+ await deps.announce(job.threadKey, (0, i18n_1.t)('schedule.checkRecovered', { name: job.name }));
180
+ return { status: 'delivered' };
181
+ }
182
+ await deps.setCheckFailing(job.id, true);
183
+ const failure = (0, checkRun_1.describeCheckFailure)(result, timeoutSec);
184
+ await announceAndPin(deps, job, buildCheckFailedAnnouncement(job, fireContext, failure, result.output));
185
+ return deliverToAgent(deps, job, (0, checkRun_1.buildCheckFailurePrompt)({ name: job.name, command, failure, output: result.output, prompt: job.prompt }));
186
+ }
187
+ /**
188
+ * @description Build the engine's `deliver(job, fireContext)` callback bound to
189
+ * the injected deps. See the module header for the locked flow.
190
+ */
191
+ function createScheduleDelivery(deps) {
192
+ return async (job, fireContext) => {
193
+ if ((0, deliveryKind_1.checkIsCheckSchedule)(job))
194
+ return deliverCheck(deps, job, fireContext);
195
+ // Read before the paced announce and pin, which can take a while under load:
196
+ // a run held over a usage-limit wait says when it was due (R27).
197
+ const dueAtMs = fireContext.kind === 'catch-up' && fireContext.missedAtMs !== undefined ? fireContext.missedAtMs : deps.now();
198
+ // 1–2. announce and pin
199
+ await announceAndPin(deps, job, buildFireAnnouncement(job, fireContext));
200
+ // A reminder is done here: announced and pinned, with no agent involved at
201
+ // all. Returning before `ensureSession` is also what lets it fire in an
202
+ // unbound topic and in General — there is no session to fail to ensure.
203
+ if ((0, deliveryKind_1.checkIsReminderSchedule)(job))
204
+ return { status: 'delivered' };
205
+ // 3–4. wake the agent with the prompt. A run held over a usage-limit wait
206
+ // reaches the agent later: it says when it was due (R27).
207
+ return deliverToAgent(deps, job, prependScheduledRunMarker(job.name, job.prompt), {
208
+ heldText: prependScheduledRunMarker(job.name, job.prompt, { dueAtMs }),
209
+ });
210
+ };
211
+ }
212
+ //# sourceMappingURL=delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/scheduler/delivery.ts"],"names":[],"mappings":";;;AA2FA,8DAGC;AAiBD,sDAeC;AAUD,oEAcC;AA8FD,wDAuBC;AA3QD,kCAA4B;AAC5B,wEAAwE;AACxE,oDAAgF;AAChF,yCAUoB;AACpB,iDAA+E;AAC/E,6CAAgD;AAEhD,oDAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kFAAkF;AACrE,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAwBxD;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CAAC,OAAe,EAAE,MAAc,EAAE,UAAgC,EAAE;IAC3G,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,IAAA,oCAAuB,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACjH,OAAO,mBAAmB,OAAO,IAAI,OAAO,MAAM,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,qBAAqB,CAAC,GAAmB,EAAE,WAAwB;IACjF,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,IAAA,sCAAuB,EAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAA,QAAC,EAAC,iBAAiB,EAAE;YAC1B,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,QAAQ,EAAE,IAAA,8CAAuB,EAAC,GAAG,CAAC,IAAI,CAAC;YAC3C,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAA,QAAC,EAAC,gBAAgB,EAAE;QACzB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,IAAA,6BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,SAAS,aAAa,CAAC,WAAwB;IAC7C,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS;QAC5E,CAAC,CAAC,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAA,6BAAgB,EAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,sGAAsG;AACtG,SAAgB,4BAA4B,CAC1C,GAAmB,EACnB,WAAwB,EACxB,OAAe,EACf,MAAc;IAEd,OAAO,IAAA,QAAC,EAAC,sBAAsB,EAAE;QAC/B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,IAAA,6BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC;QACpC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC;QACtC,OAAO;QACP,OAAO,EAAE,IAAA,+BAAoB,EAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QACrD,MAAM,EAAE,IAAA,wBAAa,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,mCAAwB,CAAC,IAAI,GAAG;KACtE,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,IAA0B,EAAE,GAAmB,EAAE,IAAY;IACzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO;IAC/B,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,wCAAwC,GAAG,CAAC,EAAE,UAAU,EACxD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAC3B,IAA0B,EAC1B,GAAmB,EACnB,MAAc,EACd,UAAiC,EAAE;IAEnC,qFAAqF;IACrF,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAa,EAAC,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9F,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,8EAA8E;QAC9E,2EAA2E;QAC3E,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,EAAE,wCAAwC,CAAC,CAAC;QAClG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,wEAAwE;IACxE,uEAAuE;IACvE,sDAAsD;IACtD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAAoB,EAAE,CAAC;QAC3D,KAAK,YAAY;YACf,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;QACzE,KAAK,cAAc;YACjB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QACtE,KAAK,gBAAgB;YACnB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CACzB,IAA0B,EAC1B,GAAmB,EACnB,WAAwB;IAExB,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,IAAI,iCAAsB,CAAC;IACjE,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAAoB,EAAE,CAAC;IAEtE,MAAM,QAAQ,GAAG,IAAA,gCAAqB,EAAC;QACrC,SAAS,EAAE,IAAA,8BAAmB,EAAC,MAAM,CAAC;QACtC,UAAU,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;KACxC,CAAC,CAAC;IACH,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACzD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,QAAC,EAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,4BAA4B,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxG,OAAO,cAAc,CACnB,IAAI,EACJ,GAAG,EACH,IAAA,kCAAuB,EAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CACzG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,IAA0B;IAE1B,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;QAChC,IAAI,IAAA,mCAAoB,EAAC,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3E,6EAA6E;QAC7E,iEAAiE;QACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9H,wBAAwB;QACxB,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzE,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,IAAA,sCAAuB,EAAC,GAAG,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAEjE,0EAA0E;QAC1E,0DAA0D;QAC1D,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;YAChF,QAAQ,EAAE,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;SACvE,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ScheduleRecord } from './types';
2
+ /**
3
+ * @description Pure decisions that depend on a schedule's {@link
4
+ * ScheduleRecord.deliveryKind}: the discriminator predicate itself, and the ONE
5
+ * policy that has to read it outside the fire path — which of a thread's jobs an
6
+ * unbound-topic pause applies to.
7
+ *
8
+ * The pause filter lives here rather than in `bot.ts` because `bot.ts` cannot be
9
+ * imported by a test (its module-scope `parseEnv()` exits the process), and this
10
+ * rule is the load-bearing half of the reminder feature: a reminder needs neither
11
+ * a bound folder nor an agent, so pausing it when the topic leaves its folder
12
+ * would silently stop the one job kind that could still have run.
13
+ */
14
+ /**
15
+ * @description Whether a record is a bot-local reminder (post + pin, no agent).
16
+ * Takes only the field it reads so a caller can ask about a partial record.
17
+ */
18
+ export declare function checkIsReminderSchedule(record: Pick<ScheduleRecord, 'deliveryKind'>): boolean;
19
+ /** @description Whether a record is a watchdog check (the bot runs its command; a failure wakes the agent). */
20
+ export declare function checkIsCheckSchedule(record: Pick<ScheduleRecord, 'deliveryKind'>): boolean;
21
+ /**
22
+ * @description The jobs an UNBOUND topic must pause: the agent-prompt jobs and the
23
+ * checks (a check runs in the bound folder and wakes the agent), reminders left
24
+ * out so they stay armed. The caller must therefore count what this
25
+ * returns rather than the thread's whole list — a thread holding only reminders
26
+ * yields an empty array, i.e. nothing paused and no notice to post.
27
+ */
28
+ export declare function getUnboundPausableSchedules(records: readonly ScheduleRecord[]): ScheduleRecord[];
29
+ //# sourceMappingURL=deliveryKind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveryKind.d.ts","sourceRoot":"","sources":["../../src/scheduler/deliveryKind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,OAAO,CAE7F;AAED,+GAA+G;AAC/G,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,OAAO,CAE1F;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,cAAc,EAAE,CAElB"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkIsReminderSchedule = checkIsReminderSchedule;
4
+ exports.checkIsCheckSchedule = checkIsCheckSchedule;
5
+ exports.getUnboundPausableSchedules = getUnboundPausableSchedules;
6
+ /**
7
+ * @description Pure decisions that depend on a schedule's {@link
8
+ * ScheduleRecord.deliveryKind}: the discriminator predicate itself, and the ONE
9
+ * policy that has to read it outside the fire path — which of a thread's jobs an
10
+ * unbound-topic pause applies to.
11
+ *
12
+ * The pause filter lives here rather than in `bot.ts` because `bot.ts` cannot be
13
+ * imported by a test (its module-scope `parseEnv()` exits the process), and this
14
+ * rule is the load-bearing half of the reminder feature: a reminder needs neither
15
+ * a bound folder nor an agent, so pausing it when the topic leaves its folder
16
+ * would silently stop the one job kind that could still have run.
17
+ */
18
+ /**
19
+ * @description Whether a record is a bot-local reminder (post + pin, no agent).
20
+ * Takes only the field it reads so a caller can ask about a partial record.
21
+ */
22
+ function checkIsReminderSchedule(record) {
23
+ return record.deliveryKind === 'reminder';
24
+ }
25
+ /** @description Whether a record is a watchdog check (the bot runs its command; a failure wakes the agent). */
26
+ function checkIsCheckSchedule(record) {
27
+ return record.deliveryKind === 'check';
28
+ }
29
+ /**
30
+ * @description The jobs an UNBOUND topic must pause: the agent-prompt jobs and the
31
+ * checks (a check runs in the bound folder and wakes the agent), reminders left
32
+ * out so they stay armed. The caller must therefore count what this
33
+ * returns rather than the thread's whole list — a thread holding only reminders
34
+ * yields an empty array, i.e. nothing paused and no notice to post.
35
+ */
36
+ function getUnboundPausableSchedules(records) {
37
+ return records.filter((record) => !checkIsReminderSchedule(record));
38
+ }
39
+ //# sourceMappingURL=deliveryKind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveryKind.js","sourceRoot":"","sources":["../../src/scheduler/deliveryKind.ts"],"names":[],"mappings":";;AAmBA,0DAEC;AAGD,oDAEC;AASD,kEAIC;AArCD;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,MAA4C;IAClF,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU,CAAC;AAC5C,CAAC;AAED,+GAA+G;AAC/G,SAAgB,oBAAoB,CAAC,MAA4C;IAC/E,OAAO,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,OAAkC;IAElC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BindingData } from '../state';
2
+ import { type SessionKey } from '../sessionKey';
3
+ /**
4
+ * @description Invert a directory (an OpenCode instance's absolute working
5
+ * folder) to the serialized thread keys bound to it. The scheduler MCP server's
6
+ * `dir:<directory>` scope (S5) needs this to resolve which threads a directory
7
+ * token may touch; `bot.ts` has the forward `binding → workDir` mapping
8
+ * (`resolveBoundWorkDir`) but no inverse, so this is the single place that walks
9
+ * every binding and matches its RESOLVED workDir against `directory`.
10
+ *
11
+ * Why resolved workDir and not the raw `subdir`: the OpenCode injection (S6)
12
+ * scopes the token to the canonical agent workdir. Comparing against the raw
13
+ * relative `subdir`, or an unresolved `WORK_ROOT`, would miss symlinked roots.
14
+ */
15
+ export declare function getThreadKeysForDirectory(bindings: Array<{
16
+ key: SessionKey;
17
+ data: BindingData;
18
+ }>, workRoot: string, directory: string): string[];
19
+ //# sourceMappingURL=directoryThreads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryThreads.d.ts","sourceRoot":"","sources":["../../src/scheduler/directoryThreads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,EACvD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CASV"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThreadKeysForDirectory = getThreadKeysForDirectory;
4
+ const validation_1 = require("../validation");
5
+ const sessionKey_1 = require("../sessionKey");
6
+ /**
7
+ * @description Invert a directory (an OpenCode instance's absolute working
8
+ * folder) to the serialized thread keys bound to it. The scheduler MCP server's
9
+ * `dir:<directory>` scope (S5) needs this to resolve which threads a directory
10
+ * token may touch; `bot.ts` has the forward `binding → workDir` mapping
11
+ * (`resolveBoundWorkDir`) but no inverse, so this is the single place that walks
12
+ * every binding and matches its RESOLVED workDir against `directory`.
13
+ *
14
+ * Why resolved workDir and not the raw `subdir`: the OpenCode injection (S6)
15
+ * scopes the token to the canonical agent workdir. Comparing against the raw
16
+ * relative `subdir`, or an unresolved `WORK_ROOT`, would miss symlinked roots.
17
+ */
18
+ function getThreadKeysForDirectory(bindings, workRoot, directory) {
19
+ const matches = [];
20
+ for (const { key, data } of bindings) {
21
+ const decision = (0, validation_1.resolveBoundWorkDir)(workRoot, data);
22
+ if (decision.kind === 'proceed' && decision.workDir === directory) {
23
+ matches.push((0, sessionKey_1.keyToString)(key));
24
+ }
25
+ }
26
+ return matches;
27
+ }
28
+ //# sourceMappingURL=directoryThreads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryThreads.js","sourceRoot":"","sources":["../../src/scheduler/directoryThreads.ts"],"names":[],"mappings":";;AAgBA,8DAaC;AA7BD,8CAAoD;AAEpD,8CAA6D;AAE7D;;;;;;;;;;;GAWG;AACH,SAAgB,yBAAyB,CACvC,QAAuD,EACvD,QAAgB,EAChB,SAAiB;IAEjB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAA,gCAAmB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,77 @@
1
+ import type { StateStore } from '../state';
2
+ import type { RunLedger } from './runLedger';
3
+ import type { DeliveryOutcome, FireContext, ScheduleRecord } from './types';
4
+ /**
5
+ * @description The scheduler timer engine (plan S3). Owns one `setTimeout` per
6
+ * armed job, the boot replay (`rearmAll`), and the no-overlap guard. It is
7
+ * deliberately decoupled from `bot.ts`: every external concern is injected via
8
+ * {@link SchedulerEngineDeps} (the store, the run ledger, a `deliver` callback,
9
+ * a clock, and optional timer functions), so the engine is constructible in a
10
+ * test with a fake clock and a fake `deliver`.
11
+ *
12
+ * Lifecycle of one job:
13
+ *
14
+ * armJob(record) → setTimeout(nextRunAt − now), clamped to {@link maxTimeoutMs}
15
+ * │ (a longer delay arms an INTERMEDIATE timer that re-arms).
16
+ * ▼
17
+ * timer fires → re-read the FRESH record from the store (it may have been
18
+ * │ removed/paused since arming); then:
19
+ * │ gone → disarm, no-op
20
+ * │ paused → ledger 'paused-skip', disarm (do NOT re-arm)
21
+ * │ in-flight → ledger 'skipped-overlap', recompute + re-arm
22
+ * │ otherwise → fire()
23
+ * ▼
24
+ * fire() → ledger begin record → await deliver(job, fireContext) (wrapped:
25
+ * │ a thrown deliver is classified 'failed', never kills the engine)
26
+ * │ → bookkeeping (lastRunAt/lastRunStatus; recurring recompute+re-arm;
27
+ * │ N-times decrement, remove at 0; one-shot remove) → store.flush()
28
+ * ▼ → ledger end record (always written).
29
+ */
30
+ /**
31
+ * Node's `setTimeout` clamps any delay above 2^31−1 ms (~24.8 days) to 1, which
32
+ * would fire the timer immediately. For a job further out than this we arm an
33
+ * INTERMEDIATE timer at the cap that simply re-arms when it fires, walking the
34
+ * delay down in cap-sized hops until it fits.
35
+ */
36
+ export declare const maxTimeoutMs = 2147483647;
37
+ /**
38
+ * @name SchedulerEngineDeps
39
+ * @description Everything the engine needs from the outside world. `store` and
40
+ * `ledger` are the persistence seams; `deliver` is the actual fire action
41
+ * (announce + pin + forward, implemented in S4); `now` is the injectable clock;
42
+ * `setTimeoutFn`/`clearTimeoutFn` let tests drive a fake timer queue.
43
+ */
44
+ export interface SchedulerEngineDeps {
45
+ store: Pick<StateStore, 'getSchedules' | 'upsertSchedule' | 'removeSchedule' | 'flush'>;
46
+ ledger: Pick<RunLedger, 'append'>;
47
+ /** Fire the job: announce, pin, deliver to the agent. Resolves with the outcome. */
48
+ deliver: (job: ScheduleRecord, fireContext: FireContext) => Promise<DeliveryOutcome>;
49
+ /** Current epoch ms. Injected so tests run on a fake clock. */
50
+ now: () => number;
51
+ setTimeoutFn?: (callback: () => void, delayMs: number) => NodeJS.Timeout;
52
+ clearTimeoutFn?: (handle: NodeJS.Timeout) => void;
53
+ }
54
+ /**
55
+ * @name SchedulerEngine
56
+ * @description Public engine surface. `armJob`/`disarmJob` manage a single
57
+ * job's timer; `rearmAll` is the boot step (walks the store, fires catch-ups,
58
+ * arms the rest); `shutdown` clears every timer.
59
+ */
60
+ export interface SchedulerEngine {
61
+ /** Arm (or re-arm) a single job's timer to its `nextRunAt`. */
62
+ armJob(record: ScheduleRecord): void;
63
+ /** Cancel a job's timer if one is armed. Idempotent. */
64
+ disarmJob(jobId: string): void;
65
+ /** Boot replay: arm every persisted job, firing one catch-up per missed run. */
66
+ rearmAll(): Promise<void>;
67
+ /**
68
+ * Resolve once every fire chain currently in flight (delivery + bookkeeping +
69
+ * flush + ledger end record) has settled. A timer-driven fire is dispatched
70
+ * fire-and-forget, so this is the seam a caller (or a test) uses to await it.
71
+ */
72
+ whenIdle(): Promise<void>;
73
+ /** Clear every armed timer (process shutdown). */
74
+ shutdown(): void;
75
+ }
76
+ export declare function createSchedulerEngine(deps: SchedulerEngineDeps): SchedulerEngine;
77
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/scheduler/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,aAAgB,CAAC;AAK1C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,CAAC,CAAC;IACxF,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,oFAAoF;IACpF,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACrF,+DAA+D;IAC/D,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC;IACzE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;CACnD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gFAAgF;IAChF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAuThF"}