charness 0.0.0-stage → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1044) hide show
  1. package/.env.example +88 -0
  2. package/DEVELOPMENT.md +110 -0
  3. package/LICENSE +21 -0
  4. package/MIGRATION_1_TO_2.md +24 -0
  5. package/README.md +1196 -2
  6. package/dist/accessControl.d.ts +71 -0
  7. package/dist/accessControl.d.ts.map +1 -0
  8. package/dist/accessControl.js +108 -0
  9. package/dist/accessControl.js.map +1 -0
  10. package/dist/adapters/adapterEventRouting.d.ts +51 -0
  11. package/dist/adapters/adapterEventRouting.d.ts.map +1 -0
  12. package/dist/adapters/adapterEventRouting.js +74 -0
  13. package/dist/adapters/adapterEventRouting.js.map +1 -0
  14. package/dist/adapters/adapterNames.d.ts +19 -0
  15. package/dist/adapters/adapterNames.d.ts.map +1 -0
  16. package/dist/adapters/adapterNames.js +25 -0
  17. package/dist/adapters/adapterNames.js.map +1 -0
  18. package/dist/adapters/claudeCliAdapter.d.ts +1351 -0
  19. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
  20. package/dist/adapters/claudeCliAdapter.js +4239 -0
  21. package/dist/adapters/claudeCliAdapter.js.map +1 -0
  22. package/dist/adapters/claudeConfigDir.d.ts +40 -0
  23. package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
  24. package/dist/adapters/claudeConfigDir.js +3 -0
  25. package/dist/adapters/claudeConfigDir.js.map +1 -0
  26. package/dist/adapters/claudeJsonStreamAdapter.d.ts +580 -0
  27. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
  28. package/dist/adapters/claudeJsonStreamAdapter.js +1891 -0
  29. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
  30. package/dist/adapters/claudePlatformFlags.d.ts +35 -0
  31. package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
  32. package/dist/adapters/claudePlatformFlags.js +46 -0
  33. package/dist/adapters/claudePlatformFlags.js.map +1 -0
  34. package/dist/adapters/createAdapter.d.ts +260 -0
  35. package/dist/adapters/createAdapter.d.ts.map +1 -0
  36. package/dist/adapters/createAdapter.js +512 -0
  37. package/dist/adapters/createAdapter.js.map +1 -0
  38. package/dist/adapters/openCodeAdapter.d.ts +1469 -0
  39. package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
  40. package/dist/adapters/openCodeAdapter.js +4623 -0
  41. package/dist/adapters/openCodeAdapter.js.map +1 -0
  42. package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
  43. package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
  44. package/dist/adapters/sessionLaunchDefaults.js +15 -0
  45. package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
  46. package/dist/adapters/terminalAdapter.d.ts +68 -0
  47. package/dist/adapters/terminalAdapter.d.ts.map +1 -0
  48. package/dist/adapters/terminalAdapter.js +371 -0
  49. package/dist/adapters/terminalAdapter.js.map +1 -0
  50. package/dist/agentLogin/agentLogin.d.ts +44 -0
  51. package/dist/agentLogin/agentLogin.d.ts.map +1 -0
  52. package/dist/agentLogin/agentLogin.js +530 -0
  53. package/dist/agentLogin/agentLogin.js.map +1 -0
  54. package/dist/agentTrigger.d.ts +28 -0
  55. package/dist/agentTrigger.d.ts.map +1 -0
  56. package/dist/agentTrigger.js +53 -0
  57. package/dist/agentTrigger.js.map +1 -0
  58. package/dist/apiErrorRetry.d.ts +214 -0
  59. package/dist/apiErrorRetry.d.ts.map +1 -0
  60. package/dist/apiErrorRetry.js +382 -0
  61. package/dist/apiErrorRetry.js.map +1 -0
  62. package/dist/apiRetryKick.d.ts +157 -0
  63. package/dist/apiRetryKick.d.ts.map +1 -0
  64. package/dist/apiRetryKick.js +174 -0
  65. package/dist/apiRetryKick.js.map +1 -0
  66. package/dist/bootClassifier.d.ts +46 -0
  67. package/dist/bootClassifier.d.ts.map +1 -0
  68. package/dist/bootClassifier.js +43 -0
  69. package/dist/bootClassifier.js.map +1 -0
  70. package/dist/bot.d.ts +207 -0
  71. package/dist/bot.d.ts.map +1 -0
  72. package/dist/bot.js +11226 -0
  73. package/dist/bot.js.map +1 -0
  74. package/dist/botFileStorage.d.ts +60 -0
  75. package/dist/botFileStorage.d.ts.map +1 -0
  76. package/dist/botFileStorage.js +205 -0
  77. package/dist/botFileStorage.js.map +1 -0
  78. package/dist/cli/applyDnsFix.d.ts +7 -0
  79. package/dist/cli/applyDnsFix.d.ts.map +1 -0
  80. package/dist/cli/applyDnsFix.js +46 -0
  81. package/dist/cli/applyDnsFix.js.map +1 -0
  82. package/dist/cli/bot.d.ts +27 -0
  83. package/dist/cli/bot.d.ts.map +1 -0
  84. package/dist/cli/bot.js +98 -0
  85. package/dist/cli/bot.js.map +1 -0
  86. package/dist/cli/botEntry.d.ts +3 -0
  87. package/dist/cli/botEntry.d.ts.map +1 -0
  88. package/dist/cli/botEntry.js +11 -0
  89. package/dist/cli/botEntry.js.map +1 -0
  90. package/dist/cli/claudeProfiles.d.ts +42 -0
  91. package/dist/cli/claudeProfiles.d.ts.map +1 -0
  92. package/dist/cli/claudeProfiles.js +106 -0
  93. package/dist/cli/claudeProfiles.js.map +1 -0
  94. package/dist/cli/connectorGuards.d.ts +31 -0
  95. package/dist/cli/connectorGuards.d.ts.map +1 -0
  96. package/dist/cli/connectorGuards.js +159 -0
  97. package/dist/cli/connectorGuards.js.map +1 -0
  98. package/dist/cli/envLoader.d.ts +34 -0
  99. package/dist/cli/envLoader.d.ts.map +1 -0
  100. package/dist/cli/envLoader.js +132 -0
  101. package/dist/cli/envLoader.js.map +1 -0
  102. package/dist/cli/hot.d.ts +82 -0
  103. package/dist/cli/hot.d.ts.map +1 -0
  104. package/dist/cli/hot.js +323 -0
  105. package/dist/cli/hot.js.map +1 -0
  106. package/dist/cli.d.ts +3 -0
  107. package/dist/cli.d.ts.map +1 -0
  108. package/dist/cli.js +140 -0
  109. package/dist/cli.js.map +1 -0
  110. package/dist/connectors/jira/adf.d.ts +74 -0
  111. package/dist/connectors/jira/adf.d.ts.map +1 -0
  112. package/dist/connectors/jira/adf.js +412 -0
  113. package/dist/connectors/jira/adf.js.map +1 -0
  114. package/dist/connectors/jira/agentBinaries.d.ts +14 -0
  115. package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
  116. package/dist/connectors/jira/agentBinaries.js +75 -0
  117. package/dist/connectors/jira/agentBinaries.js.map +1 -0
  118. package/dist/connectors/jira/answerSink.d.ts +59 -0
  119. package/dist/connectors/jira/answerSink.d.ts.map +1 -0
  120. package/dist/connectors/jira/answerSink.js +234 -0
  121. package/dist/connectors/jira/answerSink.js.map +1 -0
  122. package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
  123. package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
  124. package/dist/connectors/jira/attachmentDownload.js +92 -0
  125. package/dist/connectors/jira/attachmentDownload.js.map +1 -0
  126. package/dist/connectors/jira/attachmentTool.d.ts +50 -0
  127. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
  128. package/dist/connectors/jira/attachmentTool.js +166 -0
  129. package/dist/connectors/jira/attachmentTool.js.map +1 -0
  130. package/dist/connectors/jira/client.d.ts +522 -0
  131. package/dist/connectors/jira/client.d.ts.map +1 -0
  132. package/dist/connectors/jira/client.js +491 -0
  133. package/dist/connectors/jira/client.js.map +1 -0
  134. package/dist/connectors/jira/config.d.ts +104 -0
  135. package/dist/connectors/jira/config.d.ts.map +1 -0
  136. package/dist/connectors/jira/config.js +323 -0
  137. package/dist/connectors/jira/config.js.map +1 -0
  138. package/dist/connectors/jira/configFile.d.ts +10 -0
  139. package/dist/connectors/jira/configFile.d.ts.map +1 -0
  140. package/dist/connectors/jira/configFile.js +50 -0
  141. package/dist/connectors/jira/configFile.js.map +1 -0
  142. package/dist/connectors/jira/connector.d.ts +71 -0
  143. package/dist/connectors/jira/connector.d.ts.map +1 -0
  144. package/dist/connectors/jira/connector.js +312 -0
  145. package/dist/connectors/jira/connector.js.map +1 -0
  146. package/dist/connectors/jira/contextLedger.d.ts +60 -0
  147. package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
  148. package/dist/connectors/jira/contextLedger.js +196 -0
  149. package/dist/connectors/jira/contextLedger.js.map +1 -0
  150. package/dist/connectors/jira/contextPreamble.d.ts +18 -0
  151. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
  152. package/dist/connectors/jira/contextPreamble.js +31 -0
  153. package/dist/connectors/jira/contextPreamble.js.map +1 -0
  154. package/dist/connectors/jira/inbound.d.ts +141 -0
  155. package/dist/connectors/jira/inbound.d.ts.map +1 -0
  156. package/dist/connectors/jira/inbound.js +331 -0
  157. package/dist/connectors/jira/inbound.js.map +1 -0
  158. package/dist/connectors/jira/issueBlocks.d.ts +74 -0
  159. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
  160. package/dist/connectors/jira/issueBlocks.js +257 -0
  161. package/dist/connectors/jira/issueBlocks.js.map +1 -0
  162. package/dist/connectors/jira/issueContext.d.ts +31 -0
  163. package/dist/connectors/jira/issueContext.d.ts.map +1 -0
  164. package/dist/connectors/jira/issueContext.js +70 -0
  165. package/dist/connectors/jira/issueContext.js.map +1 -0
  166. package/dist/connectors/jira/issueDelta.d.ts +38 -0
  167. package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
  168. package/dist/connectors/jira/issueDelta.js +59 -0
  169. package/dist/connectors/jira/issueDelta.js.map +1 -0
  170. package/dist/connectors/jira/mediaPlaceholders.d.ts +22 -0
  171. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
  172. package/dist/connectors/jira/mediaPlaceholders.js +105 -0
  173. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
  174. package/dist/connectors/jira/outbound.d.ts +6 -0
  175. package/dist/connectors/jira/outbound.d.ts.map +1 -0
  176. package/dist/connectors/jira/outbound.js +38 -0
  177. package/dist/connectors/jira/outbound.js.map +1 -0
  178. package/dist/connectors/jira/prompt.d.ts +39 -0
  179. package/dist/connectors/jira/prompt.d.ts.map +1 -0
  180. package/dist/connectors/jira/prompt.js +102 -0
  181. package/dist/connectors/jira/prompt.js.map +1 -0
  182. package/dist/connectors/jira/promptSpill.d.ts +50 -0
  183. package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
  184. package/dist/connectors/jira/promptSpill.js +157 -0
  185. package/dist/connectors/jira/promptSpill.js.map +1 -0
  186. package/dist/connectors/jira/promptText.d.ts +7 -0
  187. package/dist/connectors/jira/promptText.d.ts.map +1 -0
  188. package/dist/connectors/jira/promptText.js +26 -0
  189. package/dist/connectors/jira/promptText.js.map +1 -0
  190. package/dist/connectors/jira/sessionKeyCodec.d.ts +18 -0
  191. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
  192. package/dist/connectors/jira/sessionKeyCodec.js +106 -0
  193. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
  194. package/dist/connectors/jira/trigger.d.ts +54 -0
  195. package/dist/connectors/jira/trigger.d.ts.map +1 -0
  196. package/dist/connectors/jira/trigger.js +101 -0
  197. package/dist/connectors/jira/trigger.js.map +1 -0
  198. package/dist/connectors/jira/triggerLog.d.ts +53 -0
  199. package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
  200. package/dist/connectors/jira/triggerLog.js +78 -0
  201. package/dist/connectors/jira/triggerLog.js.map +1 -0
  202. package/dist/connectors/jira/trustedGroup.d.ts +54 -0
  203. package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
  204. package/dist/connectors/jira/trustedGroup.js +98 -0
  205. package/dist/connectors/jira/trustedGroup.js.map +1 -0
  206. package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
  207. package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
  208. package/dist/connectors/jira/unconfirmedPosts.js +105 -0
  209. package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
  210. package/dist/connectors/telegram/answerSink.d.ts +46 -0
  211. package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
  212. package/dist/connectors/telegram/answerSink.js +71 -0
  213. package/dist/connectors/telegram/answerSink.js.map +1 -0
  214. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +34 -0
  215. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
  216. package/dist/connectors/telegram/commands/autoContinueLimits.js +112 -0
  217. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
  218. package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
  219. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
  220. package/dist/connectors/telegram/commands/botCore.js +3 -0
  221. package/dist/connectors/telegram/commands/botCore.js.map +1 -0
  222. package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
  223. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
  224. package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
  225. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
  226. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
  227. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
  228. package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
  229. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
  230. package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
  231. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
  232. package/dist/connectors/telegram/commands/compaction.js +868 -0
  233. package/dist/connectors/telegram/commands/compaction.js.map +1 -0
  234. package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
  235. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
  236. package/dist/connectors/telegram/commands/displayModes.js +335 -0
  237. package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
  238. package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
  239. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
  240. package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
  241. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
  242. package/dist/connectors/telegram/commands/modelProviders.d.ts +117 -0
  243. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
  244. package/dist/connectors/telegram/commands/modelProviders.js +966 -0
  245. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
  246. package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
  247. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
  248. package/dist/connectors/telegram/commands/reminders.js +624 -0
  249. package/dist/connectors/telegram/commands/reminders.js.map +1 -0
  250. package/dist/connectors/telegram/fileIntake.d.ts +166 -0
  251. package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
  252. package/dist/connectors/telegram/fileIntake.js +304 -0
  253. package/dist/connectors/telegram/fileIntake.js.map +1 -0
  254. package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
  255. package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
  256. package/dist/connectors/telegram/fileSendGateway.js +221 -0
  257. package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
  258. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
  259. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
  260. package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
  261. package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
  262. package/dist/connectors/telegram/inbound.d.ts +131 -0
  263. package/dist/connectors/telegram/inbound.d.ts.map +1 -0
  264. package/dist/connectors/telegram/inbound.js +278 -0
  265. package/dist/connectors/telegram/inbound.js.map +1 -0
  266. package/dist/connectors/telegram/languagePicker.d.ts +32 -0
  267. package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
  268. package/dist/connectors/telegram/languagePicker.js +55 -0
  269. package/dist/connectors/telegram/languagePicker.js.map +1 -0
  270. package/dist/connectors/telegram/messageSplit.d.ts +62 -0
  271. package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
  272. package/dist/connectors/telegram/messageSplit.js +119 -0
  273. package/dist/connectors/telegram/messageSplit.js.map +1 -0
  274. package/dist/connectors/telegram/outbound.d.ts +62 -0
  275. package/dist/connectors/telegram/outbound.d.ts.map +1 -0
  276. package/dist/connectors/telegram/outbound.js +116 -0
  277. package/dist/connectors/telegram/outbound.js.map +1 -0
  278. package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
  279. package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
  280. package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
  281. package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
  282. package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
  283. package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
  284. package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
  285. package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
  286. package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
  287. package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
  288. package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
  289. package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
  290. package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
  291. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
  292. package/dist/connectors/telegram/outputFlushPlan.js +120 -0
  293. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
  294. package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
  295. package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
  296. package/dist/connectors/telegram/questionKeyboards.js +37 -0
  297. package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
  298. package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
  299. package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
  300. package/dist/connectors/telegram/renderAgentHtml.js +97 -0
  301. package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
  302. package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
  303. package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
  304. package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
  305. package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
  306. package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
  307. package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
  308. package/dist/connectors/telegram/telegramCallGuard.js +35 -0
  309. package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
  310. package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
  311. package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
  312. package/dist/connectors/telegram/timezonePicker.js +142 -0
  313. package/dist/connectors/telegram/timezonePicker.js.map +1 -0
  314. package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
  315. package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
  316. package/dist/connectors/telegram/updateDispatcher.js +159 -0
  317. package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
  318. package/dist/connectors/test/connector.d.ts +52 -0
  319. package/dist/connectors/test/connector.d.ts.map +1 -0
  320. package/dist/connectors/test/connector.js +143 -0
  321. package/dist/connectors/test/connector.js.map +1 -0
  322. package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
  323. package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
  324. package/dist/connectors/test/sessionKeyCodec.js +50 -0
  325. package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
  326. package/dist/diagLog.d.ts +6 -0
  327. package/dist/diagLog.d.ts.map +1 -0
  328. package/dist/diagLog.js +58 -0
  329. package/dist/diagLog.js.map +1 -0
  330. package/dist/effortLevels.d.ts +68 -0
  331. package/dist/effortLevels.d.ts.map +1 -0
  332. package/dist/effortLevels.js +114 -0
  333. package/dist/effortLevels.js.map +1 -0
  334. package/dist/folderName.d.ts +42 -0
  335. package/dist/folderName.d.ts.map +1 -0
  336. package/dist/folderName.js +51 -0
  337. package/dist/folderName.js.map +1 -0
  338. package/dist/i18n/de.d.ts +2 -0
  339. package/dist/i18n/de.d.ts.map +1 -0
  340. package/dist/i18n/de.js +665 -0
  341. package/dist/i18n/de.js.map +1 -0
  342. package/dist/i18n/en.d.ts +7 -0
  343. package/dist/i18n/en.d.ts.map +1 -0
  344. package/dist/i18n/en.js +694 -0
  345. package/dist/i18n/en.js.map +1 -0
  346. package/dist/i18n/es.d.ts +2 -0
  347. package/dist/i18n/es.d.ts.map +1 -0
  348. package/dist/i18n/es.js +665 -0
  349. package/dist/i18n/es.js.map +1 -0
  350. package/dist/i18n/fr.d.ts +2 -0
  351. package/dist/i18n/fr.d.ts.map +1 -0
  352. package/dist/i18n/fr.js +665 -0
  353. package/dist/i18n/fr.js.map +1 -0
  354. package/dist/i18n/hi.d.ts +2 -0
  355. package/dist/i18n/hi.d.ts.map +1 -0
  356. package/dist/i18n/hi.js +665 -0
  357. package/dist/i18n/hi.js.map +1 -0
  358. package/dist/i18n/ja.d.ts +2 -0
  359. package/dist/i18n/ja.d.ts.map +1 -0
  360. package/dist/i18n/ja.js +665 -0
  361. package/dist/i18n/ja.js.map +1 -0
  362. package/dist/i18n/ka.d.ts +2 -0
  363. package/dist/i18n/ka.d.ts.map +1 -0
  364. package/dist/i18n/ka.js +665 -0
  365. package/dist/i18n/ka.js.map +1 -0
  366. package/dist/i18n/pt.d.ts +2 -0
  367. package/dist/i18n/pt.d.ts.map +1 -0
  368. package/dist/i18n/pt.js +665 -0
  369. package/dist/i18n/pt.js.map +1 -0
  370. package/dist/i18n/ru.d.ts +6 -0
  371. package/dist/i18n/ru.d.ts.map +1 -0
  372. package/dist/i18n/ru.js +668 -0
  373. package/dist/i18n/ru.js.map +1 -0
  374. package/dist/i18n/uk.d.ts +8 -0
  375. package/dist/i18n/uk.d.ts.map +1 -0
  376. package/dist/i18n/uk.js +670 -0
  377. package/dist/i18n/uk.js.map +1 -0
  378. package/dist/i18n/uz.d.ts +2 -0
  379. package/dist/i18n/uz.d.ts.map +1 -0
  380. package/dist/i18n/uz.js +665 -0
  381. package/dist/i18n/uz.js.map +1 -0
  382. package/dist/i18n/zh.d.ts +2 -0
  383. package/dist/i18n/zh.d.ts.map +1 -0
  384. package/dist/i18n/zh.js +665 -0
  385. package/dist/i18n/zh.js.map +1 -0
  386. package/dist/i18n.d.ts +115 -0
  387. package/dist/i18n.d.ts.map +1 -0
  388. package/dist/i18n.js +233 -0
  389. package/dist/i18n.js.map +1 -0
  390. package/dist/index.d.ts +3 -0
  391. package/dist/index.d.ts.map +1 -0
  392. package/dist/index.js +10 -0
  393. package/dist/index.js.map +1 -0
  394. package/dist/installManager.d.ts +99 -0
  395. package/dist/installManager.d.ts.map +1 -0
  396. package/dist/installManager.js +943 -0
  397. package/dist/installManager.js.map +1 -0
  398. package/dist/instanceLock.d.ts +161 -0
  399. package/dist/instanceLock.d.ts.map +1 -0
  400. package/dist/instanceLock.js +388 -0
  401. package/dist/instanceLock.js.map +1 -0
  402. package/dist/mcpConfig.d.ts +76 -0
  403. package/dist/mcpConfig.d.ts.map +1 -0
  404. package/dist/mcpConfig.js +270 -0
  405. package/dist/mcpConfig.js.map +1 -0
  406. package/dist/openCodeOpenQuestion.d.ts +44 -0
  407. package/dist/openCodeOpenQuestion.d.ts.map +1 -0
  408. package/dist/openCodeOpenQuestion.js +64 -0
  409. package/dist/openCodeOpenQuestion.js.map +1 -0
  410. package/dist/openCodeQuestionFlow.d.ts +105 -0
  411. package/dist/openCodeQuestionFlow.d.ts.map +1 -0
  412. package/dist/openCodeQuestionFlow.js +143 -0
  413. package/dist/openCodeQuestionFlow.js.map +1 -0
  414. package/dist/openCodeSessionRouting.d.ts +133 -0
  415. package/dist/openCodeSessionRouting.d.ts.map +1 -0
  416. package/dist/openCodeSessionRouting.js +253 -0
  417. package/dist/openCodeSessionRouting.js.map +1 -0
  418. package/dist/openCodeSessionTitle.d.ts +50 -0
  419. package/dist/openCodeSessionTitle.d.ts.map +1 -0
  420. package/dist/openCodeSessionTitle.js +84 -0
  421. package/dist/openCodeSessionTitle.js.map +1 -0
  422. package/dist/outputTrace.d.ts +108 -0
  423. package/dist/outputTrace.d.ts.map +1 -0
  424. package/dist/outputTrace.js +430 -0
  425. package/dist/outputTrace.js.map +1 -0
  426. package/dist/pendingQuestionRepost.d.ts +47 -0
  427. package/dist/pendingQuestionRepost.d.ts.map +1 -0
  428. package/dist/pendingQuestionRepost.js +29 -0
  429. package/dist/pendingQuestionRepost.js.map +1 -0
  430. package/dist/pinnedStatus.d.ts +52 -0
  431. package/dist/pinnedStatus.d.ts.map +1 -0
  432. package/dist/pinnedStatus.js +36 -0
  433. package/dist/pinnedStatus.js.map +1 -0
  434. package/dist/platform/answerSink.d.ts +93 -0
  435. package/dist/platform/answerSink.d.ts.map +1 -0
  436. package/dist/platform/answerSink.js +31 -0
  437. package/dist/platform/answerSink.js.map +1 -0
  438. package/dist/platform/capabilityFallback.d.ts +39 -0
  439. package/dist/platform/capabilityFallback.d.ts.map +1 -0
  440. package/dist/platform/capabilityFallback.js +55 -0
  441. package/dist/platform/capabilityFallback.js.map +1 -0
  442. package/dist/platform/commandRouter.d.ts +51 -0
  443. package/dist/platform/commandRouter.d.ts.map +1 -0
  444. package/dist/platform/commandRouter.js +53 -0
  445. package/dist/platform/commandRouter.js.map +1 -0
  446. package/dist/platform/connectorSet.d.ts +39 -0
  447. package/dist/platform/connectorSet.d.ts.map +1 -0
  448. package/dist/platform/connectorSet.js +55 -0
  449. package/dist/platform/connectorSet.js.map +1 -0
  450. package/dist/platform/inbound.d.ts +147 -0
  451. package/dist/platform/inbound.d.ts.map +1 -0
  452. package/dist/platform/inbound.js +18 -0
  453. package/dist/platform/inbound.js.map +1 -0
  454. package/dist/platform/outbound.d.ts +225 -0
  455. package/dist/platform/outbound.d.ts.map +1 -0
  456. package/dist/platform/outbound.js +30 -0
  457. package/dist/platform/outbound.js.map +1 -0
  458. package/dist/platform/unservedStateGuard.d.ts +27 -0
  459. package/dist/platform/unservedStateGuard.d.ts.map +1 -0
  460. package/dist/platform/unservedStateGuard.js +42 -0
  461. package/dist/platform/unservedStateGuard.js.map +1 -0
  462. package/dist/postToSession.d.ts +94 -0
  463. package/dist/postToSession.d.ts.map +1 -0
  464. package/dist/postToSession.js +56 -0
  465. package/dist/postToSession.js.map +1 -0
  466. package/dist/progressLine.d.ts +180 -0
  467. package/dist/progressLine.d.ts.map +1 -0
  468. package/dist/progressLine.js +293 -0
  469. package/dist/progressLine.js.map +1 -0
  470. package/dist/rateLimiter.d.ts +246 -0
  471. package/dist/rateLimiter.d.ts.map +1 -0
  472. package/dist/rateLimiter.js +555 -0
  473. package/dist/rateLimiter.js.map +1 -0
  474. package/dist/requests/answerRequest.d.ts +57 -0
  475. package/dist/requests/answerRequest.d.ts.map +1 -0
  476. package/dist/requests/answerRequest.js +96 -0
  477. package/dist/requests/answerRequest.js.map +1 -0
  478. package/dist/requests/answerTail.d.ts +83 -0
  479. package/dist/requests/answerTail.d.ts.map +1 -0
  480. package/dist/requests/answerTail.js +102 -0
  481. package/dist/requests/answerTail.js.map +1 -0
  482. package/dist/requests/limitWaitAnswer.d.ts +87 -0
  483. package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
  484. package/dist/requests/limitWaitAnswer.js +83 -0
  485. package/dist/requests/limitWaitAnswer.js.map +1 -0
  486. package/dist/requests/requestGroup.d.ts +44 -0
  487. package/dist/requests/requestGroup.d.ts.map +1 -0
  488. package/dist/requests/requestGroup.js +63 -0
  489. package/dist/requests/requestGroup.js.map +1 -0
  490. package/dist/requests/requestHeader.d.ts +70 -0
  491. package/dist/requests/requestHeader.d.ts.map +1 -0
  492. package/dist/requests/requestHeader.js +83 -0
  493. package/dist/requests/requestHeader.js.map +1 -0
  494. package/dist/requests/requestLedger.d.ts +217 -0
  495. package/dist/requests/requestLedger.d.ts.map +1 -0
  496. package/dist/requests/requestLedger.js +468 -0
  497. package/dist/requests/requestLedger.js.map +1 -0
  498. package/dist/requests/sessionTurnProbe.d.ts +52 -0
  499. package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
  500. package/dist/requests/sessionTurnProbe.js +29 -0
  501. package/dist/requests/sessionTurnProbe.js.map +1 -0
  502. package/dist/requests/types.d.ts +181 -0
  503. package/dist/requests/types.d.ts.map +1 -0
  504. package/dist/requests/types.js +9 -0
  505. package/dist/requests/types.js.map +1 -0
  506. package/dist/requests/wakeUpEngine.d.ts +160 -0
  507. package/dist/requests/wakeUpEngine.d.ts.map +1 -0
  508. package/dist/requests/wakeUpEngine.js +399 -0
  509. package/dist/requests/wakeUpEngine.js.map +1 -0
  510. package/dist/requests/wakeUpRules.d.ts +151 -0
  511. package/dist/requests/wakeUpRules.d.ts.map +1 -0
  512. package/dist/requests/wakeUpRules.js +167 -0
  513. package/dist/requests/wakeUpRules.js.map +1 -0
  514. package/dist/resumeContext.d.ts +87 -0
  515. package/dist/resumeContext.d.ts.map +1 -0
  516. package/dist/resumeContext.js +114 -0
  517. package/dist/resumeContext.js.map +1 -0
  518. package/dist/scheduler/checkRun.d.ts +95 -0
  519. package/dist/scheduler/checkRun.d.ts.map +1 -0
  520. package/dist/scheduler/checkRun.js +172 -0
  521. package/dist/scheduler/checkRun.js.map +1 -0
  522. package/dist/scheduler/delivery.d.ts +99 -0
  523. package/dist/scheduler/delivery.d.ts.map +1 -0
  524. package/dist/scheduler/delivery.js +212 -0
  525. package/dist/scheduler/delivery.js.map +1 -0
  526. package/dist/scheduler/deliveryKind.d.ts +29 -0
  527. package/dist/scheduler/deliveryKind.d.ts.map +1 -0
  528. package/dist/scheduler/deliveryKind.js +39 -0
  529. package/dist/scheduler/deliveryKind.js.map +1 -0
  530. package/dist/scheduler/directoryThreads.d.ts +19 -0
  531. package/dist/scheduler/directoryThreads.d.ts.map +1 -0
  532. package/dist/scheduler/directoryThreads.js +28 -0
  533. package/dist/scheduler/directoryThreads.js.map +1 -0
  534. package/dist/scheduler/engine.d.ts +77 -0
  535. package/dist/scheduler/engine.d.ts.map +1 -0
  536. package/dist/scheduler/engine.js +337 -0
  537. package/dist/scheduler/engine.js.map +1 -0
  538. package/dist/scheduler/injection.d.ts +102 -0
  539. package/dist/scheduler/injection.d.ts.map +1 -0
  540. package/dist/scheduler/injection.js +122 -0
  541. package/dist/scheduler/injection.js.map +1 -0
  542. package/dist/scheduler/mcpBoot.d.ts +65 -0
  543. package/dist/scheduler/mcpBoot.d.ts.map +1 -0
  544. package/dist/scheduler/mcpBoot.js +60 -0
  545. package/dist/scheduler/mcpBoot.js.map +1 -0
  546. package/dist/scheduler/mcpSurface.d.ts +363 -0
  547. package/dist/scheduler/mcpSurface.d.ts.map +1 -0
  548. package/dist/scheduler/mcpSurface.js +1297 -0
  549. package/dist/scheduler/mcpSurface.js.map +1 -0
  550. package/dist/scheduler/rebindResume.d.ts +27 -0
  551. package/dist/scheduler/rebindResume.d.ts.map +1 -0
  552. package/dist/scheduler/rebindResume.js +17 -0
  553. package/dist/scheduler/rebindResume.js.map +1 -0
  554. package/dist/scheduler/recurrence.d.ts +58 -0
  555. package/dist/scheduler/recurrence.d.ts.map +1 -0
  556. package/dist/scheduler/recurrence.js +210 -0
  557. package/dist/scheduler/recurrence.js.map +1 -0
  558. package/dist/scheduler/runLedger.d.ts +59 -0
  559. package/dist/scheduler/runLedger.d.ts.map +1 -0
  560. package/dist/scheduler/runLedger.js +54 -0
  561. package/dist/scheduler/runLedger.js.map +1 -0
  562. package/dist/scheduler/store.d.ts +97 -0
  563. package/dist/scheduler/store.d.ts.map +1 -0
  564. package/dist/scheduler/store.js +124 -0
  565. package/dist/scheduler/store.js.map +1 -0
  566. package/dist/scheduler/timezoneRecompute.d.ts +61 -0
  567. package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
  568. package/dist/scheduler/timezoneRecompute.js +46 -0
  569. package/dist/scheduler/timezoneRecompute.js.map +1 -0
  570. package/dist/scheduler/types.d.ts +139 -0
  571. package/dist/scheduler/types.d.ts.map +1 -0
  572. package/dist/scheduler/types.js +8 -0
  573. package/dist/scheduler/types.js.map +1 -0
  574. package/dist/sendErrorClassifier.d.ts +45 -0
  575. package/dist/sendErrorClassifier.d.ts.map +1 -0
  576. package/dist/sendErrorClassifier.js +65 -0
  577. package/dist/sendErrorClassifier.js.map +1 -0
  578. package/dist/sessionKey.d.ts +136 -0
  579. package/dist/sessionKey.d.ts.map +1 -0
  580. package/dist/sessionKey.js +153 -0
  581. package/dist/sessionKey.js.map +1 -0
  582. package/dist/sessionPick.d.ts +42 -0
  583. package/dist/sessionPick.d.ts.map +1 -0
  584. package/dist/sessionPick.js +39 -0
  585. package/dist/sessionPick.js.map +1 -0
  586. package/dist/shutdown.d.ts +126 -0
  587. package/dist/shutdown.d.ts.map +1 -0
  588. package/dist/shutdown.js +164 -0
  589. package/dist/shutdown.js.map +1 -0
  590. package/dist/startupPromptBuffer.d.ts +85 -0
  591. package/dist/startupPromptBuffer.d.ts.map +1 -0
  592. package/dist/startupPromptBuffer.js +123 -0
  593. package/dist/startupPromptBuffer.js.map +1 -0
  594. package/dist/state.d.ts +1416 -0
  595. package/dist/state.d.ts.map +1 -0
  596. package/dist/state.js +2128 -0
  597. package/dist/state.js.map +1 -0
  598. package/dist/threadContextPreamble.d.ts +89 -0
  599. package/dist/threadContextPreamble.d.ts.map +1 -0
  600. package/dist/threadContextPreamble.js +102 -0
  601. package/dist/threadContextPreamble.js.map +1 -0
  602. package/dist/threadRouting.d.ts +164 -0
  603. package/dist/threadRouting.d.ts.map +1 -0
  604. package/dist/threadRouting.js +182 -0
  605. package/dist/threadRouting.js.map +1 -0
  606. package/dist/types.d.ts +1022 -0
  607. package/dist/types.d.ts.map +1 -0
  608. package/dist/types.js +3 -0
  609. package/dist/types.js.map +1 -0
  610. package/dist/utils/abortableFifo.d.ts +10 -0
  611. package/dist/utils/abortableFifo.d.ts.map +1 -0
  612. package/dist/utils/abortableFifo.js +55 -0
  613. package/dist/utils/abortableFifo.js.map +1 -0
  614. package/dist/utils/adoptedToolList.d.ts +27 -0
  615. package/dist/utils/adoptedToolList.d.ts.map +1 -0
  616. package/dist/utils/adoptedToolList.js +22 -0
  617. package/dist/utils/adoptedToolList.js.map +1 -0
  618. package/dist/utils/agentEnvironment.d.ts +42 -0
  619. package/dist/utils/agentEnvironment.d.ts.map +1 -0
  620. package/dist/utils/agentEnvironment.js +122 -0
  621. package/dist/utils/agentEnvironment.js.map +1 -0
  622. package/dist/utils/ansiClean.d.ts +11 -0
  623. package/dist/utils/ansiClean.d.ts.map +1 -0
  624. package/dist/utils/ansiClean.js +139 -0
  625. package/dist/utils/ansiClean.js.map +1 -0
  626. package/dist/utils/autoContinueOnLimit.d.ts +56 -0
  627. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
  628. package/dist/utils/autoContinueOnLimit.js +79 -0
  629. package/dist/utils/autoContinueOnLimit.js.map +1 -0
  630. package/dist/utils/canonicalPathContainment.d.ts +7 -0
  631. package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
  632. package/dist/utils/canonicalPathContainment.js +48 -0
  633. package/dist/utils/canonicalPathContainment.js.map +1 -0
  634. package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
  635. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
  636. package/dist/utils/claudeAccountPickerPlan.js +123 -0
  637. package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
  638. package/dist/utils/claudeAuthLogin.d.ts +71 -0
  639. package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
  640. package/dist/utils/claudeAuthLogin.js +93 -0
  641. package/dist/utils/claudeAuthLogin.js.map +1 -0
  642. package/dist/utils/claudeChunkClassifier.d.ts +97 -0
  643. package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
  644. package/dist/utils/claudeChunkClassifier.js +254 -0
  645. package/dist/utils/claudeChunkClassifier.js.map +1 -0
  646. package/dist/utils/claudeCodeVersion.d.ts +31 -0
  647. package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
  648. package/dist/utils/claudeCodeVersion.js +62 -0
  649. package/dist/utils/claudeCodeVersion.js.map +1 -0
  650. package/dist/utils/claudeCompactHook.d.ts +64 -0
  651. package/dist/utils/claudeCompactHook.d.ts.map +1 -0
  652. package/dist/utils/claudeCompactHook.js +98 -0
  653. package/dist/utils/claudeCompactHook.js.map +1 -0
  654. package/dist/utils/claudeLimitSwitch.d.ts +40 -0
  655. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
  656. package/dist/utils/claudeLimitSwitch.js +54 -0
  657. package/dist/utils/claudeLimitSwitch.js.map +1 -0
  658. package/dist/utils/claudeLivenessAction.d.ts +208 -0
  659. package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
  660. package/dist/utils/claudeLivenessAction.js +135 -0
  661. package/dist/utils/claudeLivenessAction.js.map +1 -0
  662. package/dist/utils/claudeMcpHeal.d.ts +92 -0
  663. package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
  664. package/dist/utils/claudeMcpHeal.js +91 -0
  665. package/dist/utils/claudeMcpHeal.js.map +1 -0
  666. package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
  667. package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
  668. package/dist/utils/claudeProfileUsageLines.js +42 -0
  669. package/dist/utils/claudeProfileUsageLines.js.map +1 -0
  670. package/dist/utils/claudeProfiles.d.ts +117 -0
  671. package/dist/utils/claudeProfiles.d.ts.map +1 -0
  672. package/dist/utils/claudeProfiles.js +285 -0
  673. package/dist/utils/claudeProfiles.js.map +1 -0
  674. package/dist/utils/claudeRelayRouting.d.ts +86 -0
  675. package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
  676. package/dist/utils/claudeRelayRouting.js +159 -0
  677. package/dist/utils/claudeRelayRouting.js.map +1 -0
  678. package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
  679. package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
  680. package/dist/utils/claudeRuntimeInfo.js +151 -0
  681. package/dist/utils/claudeRuntimeInfo.js.map +1 -0
  682. package/dist/utils/claudeScrapeShapes.d.ts +256 -0
  683. package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
  684. package/dist/utils/claudeScrapeShapes.js +290 -0
  685. package/dist/utils/claudeScrapeShapes.js.map +1 -0
  686. package/dist/utils/claudeSessionTitle.d.ts +27 -0
  687. package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
  688. package/dist/utils/claudeSessionTitle.js +90 -0
  689. package/dist/utils/claudeSessionTitle.js.map +1 -0
  690. package/dist/utils/claudeStreamJson.d.ts +214 -0
  691. package/dist/utils/claudeStreamJson.d.ts.map +1 -0
  692. package/dist/utils/claudeStreamJson.js +364 -0
  693. package/dist/utils/claudeStreamJson.js.map +1 -0
  694. package/dist/utils/claudeSubagentTail.d.ts +93 -0
  695. package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
  696. package/dist/utils/claudeSubagentTail.js +136 -0
  697. package/dist/utils/claudeSubagentTail.js.map +1 -0
  698. package/dist/utils/claudeUsage.d.ts +209 -0
  699. package/dist/utils/claudeUsage.d.ts.map +1 -0
  700. package/dist/utils/claudeUsage.js +413 -0
  701. package/dist/utils/claudeUsage.js.map +1 -0
  702. package/dist/utils/claudeUsageRefresher.d.ts +44 -0
  703. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
  704. package/dist/utils/claudeUsageRefresher.js +95 -0
  705. package/dist/utils/claudeUsageRefresher.js.map +1 -0
  706. package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
  707. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
  708. package/dist/utils/clearThreadOutputQueues.js +39 -0
  709. package/dist/utils/clearThreadOutputQueues.js.map +1 -0
  710. package/dist/utils/compactCommandRoute.d.ts +45 -0
  711. package/dist/utils/compactCommandRoute.d.ts.map +1 -0
  712. package/dist/utils/compactCommandRoute.js +36 -0
  713. package/dist/utils/compactCommandRoute.js.map +1 -0
  714. package/dist/utils/compactOnIdle.d.ts +329 -0
  715. package/dist/utils/compactOnIdle.d.ts.map +1 -0
  716. package/dist/utils/compactOnIdle.js +379 -0
  717. package/dist/utils/compactOnIdle.js.map +1 -0
  718. package/dist/utils/consoleFileTap.d.ts +51 -0
  719. package/dist/utils/consoleFileTap.d.ts.map +1 -0
  720. package/dist/utils/consoleFileTap.js +86 -0
  721. package/dist/utils/consoleFileTap.js.map +1 -0
  722. package/dist/utils/displayVerbosity.d.ts +44 -0
  723. package/dist/utils/displayVerbosity.d.ts.map +1 -0
  724. package/dist/utils/displayVerbosity.js +75 -0
  725. package/dist/utils/displayVerbosity.js.map +1 -0
  726. package/dist/utils/download.d.ts +72 -0
  727. package/dist/utils/download.d.ts.map +1 -0
  728. package/dist/utils/download.js +216 -0
  729. package/dist/utils/download.js.map +1 -0
  730. package/dist/utils/draftFinalize.d.ts +110 -0
  731. package/dist/utils/draftFinalize.d.ts.map +1 -0
  732. package/dist/utils/draftFinalize.js +100 -0
  733. package/dist/utils/draftFinalize.js.map +1 -0
  734. package/dist/utils/draftId.d.ts +36 -0
  735. package/dist/utils/draftId.d.ts.map +1 -0
  736. package/dist/utils/draftId.js +46 -0
  737. package/dist/utils/draftId.js.map +1 -0
  738. package/dist/utils/draftPacer.d.ts +72 -0
  739. package/dist/utils/draftPacer.d.ts.map +1 -0
  740. package/dist/utils/draftPacer.js +53 -0
  741. package/dist/utils/draftPacer.js.map +1 -0
  742. package/dist/utils/effortStartupKeystroke.d.ts +20 -0
  743. package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
  744. package/dist/utils/effortStartupKeystroke.js +28 -0
  745. package/dist/utils/effortStartupKeystroke.js.map +1 -0
  746. package/dist/utils/ensureSessionPlan.d.ts +70 -0
  747. package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
  748. package/dist/utils/ensureSessionPlan.js +54 -0
  749. package/dist/utils/ensureSessionPlan.js.map +1 -0
  750. package/dist/utils/fallbackBridge.d.ts +32 -0
  751. package/dist/utils/fallbackBridge.d.ts.map +1 -0
  752. package/dist/utils/fallbackBridge.js +62 -0
  753. package/dist/utils/fallbackBridge.js.map +1 -0
  754. package/dist/utils/fallbackChain.d.ts +299 -0
  755. package/dist/utils/fallbackChain.d.ts.map +1 -0
  756. package/dist/utils/fallbackChain.js +542 -0
  757. package/dist/utils/fallbackChain.js.map +1 -0
  758. package/dist/utils/fileSendPlan.d.ts +217 -0
  759. package/dist/utils/fileSendPlan.d.ts.map +1 -0
  760. package/dist/utils/fileSendPlan.js +291 -0
  761. package/dist/utils/fileSendPlan.js.map +1 -0
  762. package/dist/utils/fileSendService.d.ts +94 -0
  763. package/dist/utils/fileSendService.d.ts.map +1 -0
  764. package/dist/utils/fileSendService.js +387 -0
  765. package/dist/utils/fileSendService.js.map +1 -0
  766. package/dist/utils/groupFinalizePlan.d.ts +38 -0
  767. package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
  768. package/dist/utils/groupFinalizePlan.js +35 -0
  769. package/dist/utils/groupFinalizePlan.js.map +1 -0
  770. package/dist/utils/identicalOutputGuard.d.ts +83 -0
  771. package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
  772. package/dist/utils/identicalOutputGuard.js +99 -0
  773. package/dist/utils/identicalOutputGuard.js.map +1 -0
  774. package/dist/utils/isoTimestamp.d.ts +16 -0
  775. package/dist/utils/isoTimestamp.d.ts.map +1 -0
  776. package/dist/utils/isoTimestamp.js +34 -0
  777. package/dist/utils/isoTimestamp.js.map +1 -0
  778. package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
  779. package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
  780. package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
  781. package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
  782. package/dist/utils/jsonStreamHost.d.ts +238 -0
  783. package/dist/utils/jsonStreamHost.d.ts.map +1 -0
  784. package/dist/utils/jsonStreamHost.js +438 -0
  785. package/dist/utils/jsonStreamHost.js.map +1 -0
  786. package/dist/utils/keyedTransitionQueue.d.ts +18 -0
  787. package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
  788. package/dist/utils/keyedTransitionQueue.js +34 -0
  789. package/dist/utils/keyedTransitionQueue.js.map +1 -0
  790. package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
  791. package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
  792. package/dist/utils/limitEpisodeRecovery.js +133 -0
  793. package/dist/utils/limitEpisodeRecovery.js.map +1 -0
  794. package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
  795. package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
  796. package/dist/utils/limitHeldPromptQueue.js +59 -0
  797. package/dist/utils/limitHeldPromptQueue.js.map +1 -0
  798. package/dist/utils/limitHeldPrompts.d.ts +58 -0
  799. package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
  800. package/dist/utils/limitHeldPrompts.js +65 -0
  801. package/dist/utils/limitHeldPrompts.js.map +1 -0
  802. package/dist/utils/linkPreviewSuppression.d.ts +18 -0
  803. package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
  804. package/dist/utils/linkPreviewSuppression.js +37 -0
  805. package/dist/utils/linkPreviewSuppression.js.map +1 -0
  806. package/dist/utils/localClock.d.ts +15 -0
  807. package/dist/utils/localClock.d.ts.map +1 -0
  808. package/dist/utils/localClock.js +29 -0
  809. package/dist/utils/localClock.js.map +1 -0
  810. package/dist/utils/markdownTableRender.d.ts +83 -0
  811. package/dist/utils/markdownTableRender.d.ts.map +1 -0
  812. package/dist/utils/markdownTableRender.js +298 -0
  813. package/dist/utils/markdownTableRender.js.map +1 -0
  814. package/dist/utils/mediaGroupCollector.d.ts +51 -0
  815. package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
  816. package/dist/utils/mediaGroupCollector.js +90 -0
  817. package/dist/utils/mediaGroupCollector.js.map +1 -0
  818. package/dist/utils/messageSendService.d.ts +136 -0
  819. package/dist/utils/messageSendService.d.ts.map +1 -0
  820. package/dist/utils/messageSendService.js +165 -0
  821. package/dist/utils/messageSendService.js.map +1 -0
  822. package/dist/utils/minutesOverride.d.ts +7 -0
  823. package/dist/utils/minutesOverride.d.ts.map +1 -0
  824. package/dist/utils/minutesOverride.js +16 -0
  825. package/dist/utils/minutesOverride.js.map +1 -0
  826. package/dist/utils/modelPickerPlan.d.ts +119 -0
  827. package/dist/utils/modelPickerPlan.d.ts.map +1 -0
  828. package/dist/utils/modelPickerPlan.js +171 -0
  829. package/dist/utils/modelPickerPlan.js.map +1 -0
  830. package/dist/utils/modelRecentPlan.d.ts +56 -0
  831. package/dist/utils/modelRecentPlan.d.ts.map +1 -0
  832. package/dist/utils/modelRecentPlan.js +107 -0
  833. package/dist/utils/modelRecentPlan.js.map +1 -0
  834. package/dist/utils/modelSetReplyDecision.d.ts +67 -0
  835. package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
  836. package/dist/utils/modelSetReplyDecision.js +27 -0
  837. package/dist/utils/modelSetReplyDecision.js.map +1 -0
  838. package/dist/utils/openCodeAuthLogin.d.ts +181 -0
  839. package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
  840. package/dist/utils/openCodeAuthLogin.js +393 -0
  841. package/dist/utils/openCodeAuthLogin.js.map +1 -0
  842. package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
  843. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
  844. package/dist/utils/openCodeCompactPlugin.js +146 -0
  845. package/dist/utils/openCodeCompactPlugin.js.map +1 -0
  846. package/dist/utils/openCodeTurnActivity.d.ts +67 -0
  847. package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
  848. package/dist/utils/openCodeTurnActivity.js +27 -0
  849. package/dist/utils/openCodeTurnActivity.js.map +1 -0
  850. package/dist/utils/outputDebounce.d.ts +24 -0
  851. package/dist/utils/outputDebounce.d.ts.map +1 -0
  852. package/dist/utils/outputDebounce.js +30 -0
  853. package/dist/utils/outputDebounce.js.map +1 -0
  854. package/dist/utils/outputFlushTiming.d.ts +54 -0
  855. package/dist/utils/outputFlushTiming.d.ts.map +1 -0
  856. package/dist/utils/outputFlushTiming.js +48 -0
  857. package/dist/utils/outputFlushTiming.js.map +1 -0
  858. package/dist/utils/paginateList.d.ts +25 -0
  859. package/dist/utils/paginateList.d.ts.map +1 -0
  860. package/dist/utils/paginateList.js +32 -0
  861. package/dist/utils/paginateList.js.map +1 -0
  862. package/dist/utils/paneDiff.d.ts +55 -0
  863. package/dist/utils/paneDiff.d.ts.map +1 -0
  864. package/dist/utils/paneDiff.js +88 -0
  865. package/dist/utils/paneDiff.js.map +1 -0
  866. package/dist/utils/paneResizeGuard.d.ts +69 -0
  867. package/dist/utils/paneResizeGuard.d.ts.map +1 -0
  868. package/dist/utils/paneResizeGuard.js +91 -0
  869. package/dist/utils/paneResizeGuard.js.map +1 -0
  870. package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
  871. package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
  872. package/dist/utils/persistAdapterSessionIds.js +28 -0
  873. package/dist/utils/persistAdapterSessionIds.js.map +1 -0
  874. package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
  875. package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
  876. package/dist/utils/pinnedBannerSkipDecision.js +20 -0
  877. package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
  878. package/dist/utils/pollBackoff.d.ts +45 -0
  879. package/dist/utils/pollBackoff.d.ts.map +1 -0
  880. package/dist/utils/pollBackoff.js +44 -0
  881. package/dist/utils/pollBackoff.js.map +1 -0
  882. package/dist/utils/promptDelivery.d.ts +46 -0
  883. package/dist/utils/promptDelivery.d.ts.map +1 -0
  884. package/dist/utils/promptDelivery.js +49 -0
  885. package/dist/utils/promptDelivery.js.map +1 -0
  886. package/dist/utils/providerDisconnectPlan.d.ts +82 -0
  887. package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
  888. package/dist/utils/providerDisconnectPlan.js +110 -0
  889. package/dist/utils/providerDisconnectPlan.js.map +1 -0
  890. package/dist/utils/rateLimitLog.d.ts +48 -0
  891. package/dist/utils/rateLimitLog.d.ts.map +1 -0
  892. package/dist/utils/rateLimitLog.js +43 -0
  893. package/dist/utils/rateLimitLog.js.map +1 -0
  894. package/dist/utils/recentRelayWindow.d.ts +165 -0
  895. package/dist/utils/recentRelayWindow.d.ts.map +1 -0
  896. package/dist/utils/recentRelayWindow.js +284 -0
  897. package/dist/utils/recentRelayWindow.js.map +1 -0
  898. package/dist/utils/recvPreviewRedaction.d.ts +23 -0
  899. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
  900. package/dist/utils/recvPreviewRedaction.js +39 -0
  901. package/dist/utils/recvPreviewRedaction.js.map +1 -0
  902. package/dist/utils/reminderFlow.d.ts +148 -0
  903. package/dist/utils/reminderFlow.d.ts.map +1 -0
  904. package/dist/utils/reminderFlow.js +122 -0
  905. package/dist/utils/reminderFlow.js.map +1 -0
  906. package/dist/utils/reminderScheduleText.d.ts +87 -0
  907. package/dist/utils/reminderScheduleText.d.ts.map +1 -0
  908. package/dist/utils/reminderScheduleText.js +135 -0
  909. package/dist/utils/reminderScheduleText.js.map +1 -0
  910. package/dist/utils/reminderWizard.d.ts +710 -0
  911. package/dist/utils/reminderWizard.d.ts.map +1 -0
  912. package/dist/utils/reminderWizard.js +1164 -0
  913. package/dist/utils/reminderWizard.js.map +1 -0
  914. package/dist/utils/replyQuote.d.ts +111 -0
  915. package/dist/utils/replyQuote.d.ts.map +1 -0
  916. package/dist/utils/replyQuote.js +122 -0
  917. package/dist/utils/replyQuote.js.map +1 -0
  918. package/dist/utils/resolveBinary.d.ts +25 -0
  919. package/dist/utils/resolveBinary.d.ts.map +1 -0
  920. package/dist/utils/resolveBinary.js +99 -0
  921. package/dist/utils/resolveBinary.js.map +1 -0
  922. package/dist/utils/retryAfterHeader.d.ts +7 -0
  923. package/dist/utils/retryAfterHeader.d.ts.map +1 -0
  924. package/dist/utils/retryAfterHeader.js +17 -0
  925. package/dist/utils/retryAfterHeader.js.map +1 -0
  926. package/dist/utils/rotatingJsonlFile.d.ts +40 -0
  927. package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
  928. package/dist/utils/rotatingJsonlFile.js +106 -0
  929. package/dist/utils/rotatingJsonlFile.js.map +1 -0
  930. package/dist/utils/rotatingLogFile.d.ts +25 -0
  931. package/dist/utils/rotatingLogFile.d.ts.map +1 -0
  932. package/dist/utils/rotatingLogFile.js +74 -0
  933. package/dist/utils/rotatingLogFile.js.map +1 -0
  934. package/dist/utils/sendRateTracker.d.ts +59 -0
  935. package/dist/utils/sendRateTracker.d.ts.map +1 -0
  936. package/dist/utils/sendRateTracker.js +144 -0
  937. package/dist/utils/sendRateTracker.js.map +1 -0
  938. package/dist/utils/serialQueue.d.ts +5 -0
  939. package/dist/utils/serialQueue.d.ts.map +1 -0
  940. package/dist/utils/serialQueue.js +14 -0
  941. package/dist/utils/serialQueue.js.map +1 -0
  942. package/dist/utils/sseStreamLifecycle.d.ts +32 -0
  943. package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
  944. package/dist/utils/sseStreamLifecycle.js +41 -0
  945. package/dist/utils/sseStreamLifecycle.js.map +1 -0
  946. package/dist/utils/startupReadiness.d.ts +119 -0
  947. package/dist/utils/startupReadiness.d.ts.map +1 -0
  948. package/dist/utils/startupReadiness.js +148 -0
  949. package/dist/utils/startupReadiness.js.map +1 -0
  950. package/dist/utils/statusFlushDecision.d.ts +18 -0
  951. package/dist/utils/statusFlushDecision.d.ts.map +1 -0
  952. package/dist/utils/statusFlushDecision.js +53 -0
  953. package/dist/utils/statusFlushDecision.js.map +1 -0
  954. package/dist/utils/subagentRender.d.ts +52 -0
  955. package/dist/utils/subagentRender.d.ts.map +1 -0
  956. package/dist/utils/subagentRender.js +66 -0
  957. package/dist/utils/subagentRender.js.map +1 -0
  958. package/dist/utils/subagentStatusRender.d.ts +90 -0
  959. package/dist/utils/subagentStatusRender.d.ts.map +1 -0
  960. package/dist/utils/subagentStatusRender.js +124 -0
  961. package/dist/utils/subagentStatusRender.js.map +1 -0
  962. package/dist/utils/telegramError.d.ts +2 -0
  963. package/dist/utils/telegramError.d.ts.map +1 -0
  964. package/dist/utils/telegramError.js +16 -0
  965. package/dist/utils/telegramError.js.map +1 -0
  966. package/dist/utils/terminalEmitPlan.d.ts +74 -0
  967. package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
  968. package/dist/utils/terminalEmitPlan.js +86 -0
  969. package/dist/utils/terminalEmitPlan.js.map +1 -0
  970. package/dist/utils/thinkingRender.d.ts +74 -0
  971. package/dist/utils/thinkingRender.d.ts.map +1 -0
  972. package/dist/utils/thinkingRender.js +85 -0
  973. package/dist/utils/thinkingRender.js.map +1 -0
  974. package/dist/utils/threadStatusReport.d.ts +79 -0
  975. package/dist/utils/threadStatusReport.d.ts.map +1 -0
  976. package/dist/utils/threadStatusReport.js +88 -0
  977. package/dist/utils/threadStatusReport.js.map +1 -0
  978. package/dist/utils/threadToggle.d.ts +29 -0
  979. package/dist/utils/threadToggle.d.ts.map +1 -0
  980. package/dist/utils/threadToggle.js +39 -0
  981. package/dist/utils/threadToggle.js.map +1 -0
  982. package/dist/utils/timezone.d.ts +125 -0
  983. package/dist/utils/timezone.d.ts.map +1 -0
  984. package/dist/utils/timezone.js +278 -0
  985. package/dist/utils/timezone.js.map +1 -0
  986. package/dist/utils/tmuxExec.d.ts +61 -0
  987. package/dist/utils/tmuxExec.d.ts.map +1 -0
  988. package/dist/utils/tmuxExec.js +109 -0
  989. package/dist/utils/tmuxExec.js.map +1 -0
  990. package/dist/utils/tmuxSessionName.d.ts +34 -0
  991. package/dist/utils/tmuxSessionName.d.ts.map +1 -0
  992. package/dist/utils/tmuxSessionName.js +51 -0
  993. package/dist/utils/tmuxSessionName.js.map +1 -0
  994. package/dist/utils/toolResultRender.d.ts +61 -0
  995. package/dist/utils/toolResultRender.d.ts.map +1 -0
  996. package/dist/utils/toolResultRender.js +62 -0
  997. package/dist/utils/toolResultRender.js.map +1 -0
  998. package/dist/utils/topicRequest.d.ts +61 -0
  999. package/dist/utils/topicRequest.d.ts.map +1 -0
  1000. package/dist/utils/topicRequest.js +68 -0
  1001. package/dist/utils/topicRequest.js.map +1 -0
  1002. package/dist/utils/topicView.d.ts +55 -0
  1003. package/dist/utils/topicView.d.ts.map +1 -0
  1004. package/dist/utils/topicView.js +56 -0
  1005. package/dist/utils/topicView.js.map +1 -0
  1006. package/dist/utils/transcribeAudio.d.ts +89 -0
  1007. package/dist/utils/transcribeAudio.d.ts.map +1 -0
  1008. package/dist/utils/transcribeAudio.js +249 -0
  1009. package/dist/utils/transcribeAudio.js.map +1 -0
  1010. package/dist/utils/transientFrames.d.ts +52 -0
  1011. package/dist/utils/transientFrames.d.ts.map +1 -0
  1012. package/dist/utils/transientFrames.js +41 -0
  1013. package/dist/utils/transientFrames.js.map +1 -0
  1014. package/dist/utils/typingActive.d.ts +35 -0
  1015. package/dist/utils/typingActive.d.ts.map +1 -0
  1016. package/dist/utils/typingActive.js +22 -0
  1017. package/dist/utils/typingActive.js.map +1 -0
  1018. package/dist/utils/typingLoopBackstop.d.ts +64 -0
  1019. package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
  1020. package/dist/utils/typingLoopBackstop.js +68 -0
  1021. package/dist/utils/typingLoopBackstop.js.map +1 -0
  1022. package/dist/utils/verbosityRender.d.ts +18 -0
  1023. package/dist/utils/verbosityRender.d.ts.map +1 -0
  1024. package/dist/utils/verbosityRender.js +17 -0
  1025. package/dist/utils/verbosityRender.js.map +1 -0
  1026. package/dist/utils/wedgeRecovery.d.ts +57 -0
  1027. package/dist/utils/wedgeRecovery.d.ts.map +1 -0
  1028. package/dist/utils/wedgeRecovery.js +24 -0
  1029. package/dist/utils/wedgeRecovery.js.map +1 -0
  1030. package/dist/utils.d.ts +30 -0
  1031. package/dist/utils.d.ts.map +1 -0
  1032. package/dist/utils.js +61 -0
  1033. package/dist/utils.js.map +1 -0
  1034. package/dist/validation.d.ts +113 -0
  1035. package/dist/validation.d.ts.map +1 -0
  1036. package/dist/validation.js +226 -0
  1037. package/dist/validation.js.map +1 -0
  1038. package/dist/voiceQueue.d.ts +7 -0
  1039. package/dist/voiceQueue.d.ts.map +1 -0
  1040. package/dist/voiceQueue.js +33 -0
  1041. package/dist/voiceQueue.js.map +1 -0
  1042. package/examples/.env.example +17 -0
  1043. package/examples/docker-compose.yml +36 -0
  1044. package/package.json +83 -4
@@ -0,0 +1,438 @@
1
+ "use strict";
2
+ /**
3
+ * @description Host layout + IO primitives for the json-stream Claude backend's
4
+ * EXTERNAL process transport (plan 2026-07-05-jsonstream-restart-isolation).
5
+ *
6
+ * The `claude -p … stream-json` process is NOT a bot child any more: a `#!/bin/sh`
7
+ * wrapper hosts it inside a detached tmux session, with stdio rerouted to files
8
+ * under `DATA_DIR/jsonstream/<serialized key with ":" → "_">/` (Telegram:
9
+ * `<chatId>_<threadId>`):
10
+ *
11
+ * stdin.fifo ← the bot's control/user-turn writes (claude holds it `0<>`,
12
+ * i.e. open read-write on fd 0, so a bot restart — the writer
13
+ * dying — never EOFs claude's stdin; proven by the P1 probe)
14
+ * stdout.jsonl ← append-only stream-json event log the bot TAILS from a byte
15
+ * offset (deltas keep landing while the bot is down)
16
+ * stderr.log ← passive; read only for spawn-fail / exit diagnostics
17
+ * pid, exitcode ← written by the wrapper; the adapter's poll tick uses them
18
+ * for exit detection (pid-alive + exitcode file)
19
+ * wrapper.sh ← the generated host script itself
20
+ * question.json ← the pending AskUserQuestion control_request (written when
21
+ * surfaced, removed when resolved) so an adopt after a bot
22
+ * restart can still answer it over the FIFO
23
+ *
24
+ * Everything here is either pure decision logic (tail offsets, wrapper text,
25
+ * name codecs) or a thin fs primitive (FIFO open/write, pid/exitcode readers)
26
+ * — the orchestration lives in `adapters/claudeJsonStreamAdapter.ts`.
27
+ */
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || (function () {
45
+ var ownKeys = function(o) {
46
+ ownKeys = Object.getOwnPropertyNames || function (o) {
47
+ var ar = [];
48
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
+ return ar;
50
+ };
51
+ return ownKeys(o);
52
+ };
53
+ return function (mod) {
54
+ if (mod && mod.__esModule) return mod;
55
+ var result = {};
56
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
+ __setModuleDefault(result, mod);
58
+ return result;
59
+ };
60
+ })();
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.stderrTailMaxChars = exports.stdoutOversizeWarnBytes = exports.fifoWriteRetryDelayMs = exports.fifoWriteMaxRetries = exports.fifoOpenRetryDelayMs = exports.fifoOpenMaxTries = exports.pidFilePollIntervalMs = exports.pidFileWaitTimeoutMs = exports.wrapperCdFailExitCode = exports.jsonStreamTmuxPrefix = exports.jsonStreamRootDirName = void 0;
63
+ exports.resolveJsonStreamRoot = resolveJsonStreamRoot;
64
+ exports.resolveJsonStreamSessionDir = resolveJsonStreamSessionDir;
65
+ exports.parseJsonStreamDirName = parseJsonStreamDirName;
66
+ exports.getJsonStreamSessionPaths = getJsonStreamSessionPaths;
67
+ exports.buildJsonStreamTmuxSessionName = buildJsonStreamTmuxSessionName;
68
+ exports.parseJsonStreamTmuxSessionName = parseJsonStreamTmuxSessionName;
69
+ exports.buildWrapperScript = buildWrapperScript;
70
+ exports.readWrapperScriptConfigDir = readWrapperScriptConfigDir;
71
+ exports.openFifoWriterNonBlocking = openFifoWriterNonBlocking;
72
+ exports.writeFifoText = writeFifoText;
73
+ exports.readPidFile = readPidFile;
74
+ exports.readExitCodeFile = readExitCodeFile;
75
+ exports.checkIsPidAlive = checkIsPidAlive;
76
+ exports.waitForPidFile = waitForPidFile;
77
+ exports.readStderrTail = readStderrTail;
78
+ exports.getFileSize = getFileSize;
79
+ exports.readFileByteRange = readFileByteRange;
80
+ exports.resolveAdoptedTail = resolveAdoptedTail;
81
+ exports.createStdoutTailState = createStdoutTailState;
82
+ exports.getStdoutTailDecision = getStdoutTailDecision;
83
+ exports.decodeStdoutTailChunk = decodeStdoutTailChunk;
84
+ exports.getStdoutLineBoundaryOffset = getStdoutLineBoundaryOffset;
85
+ exports.sweepOrphanJsonStreamDirs = sweepOrphanJsonStreamDirs;
86
+ const fs = __importStar(require("fs"));
87
+ const path = __importStar(require("path"));
88
+ const string_decoder_1 = require("string_decoder");
89
+ const promises_1 = require("timers/promises");
90
+ const sessionKey_1 = require("../sessionKey");
91
+ const tmuxSessionName_1 = require("./tmuxSessionName");
92
+ const tmuxExec_1 = require("./tmuxExec");
93
+ const claudeProfiles_1 = require("./claudeProfiles");
94
+ /** Subdirectory of `DATA_DIR` that holds every thread's json-stream host dir. */
95
+ exports.jsonStreamRootDirName = 'jsonstream';
96
+ /** tmux session-name prefix for this backend — distinct from the scrape
97
+ * backend's `claude` and the terminal's `term`, so adopt-at-boot scans never
98
+ * cross-talk (locked decision). */
99
+ exports.jsonStreamTmuxPrefix = 'cjson';
100
+ /** Exit code the wrapper reports when `cd <workDir>` fails (folder vanished
101
+ * between bind and spawn) — claude must never run in the wrong directory. */
102
+ exports.wrapperCdFailExitCode = 96;
103
+ /** How long a fresh spawn waits for the wrapper to write the `pid` file. */
104
+ exports.pidFileWaitTimeoutMs = 5000;
105
+ exports.pidFilePollIntervalMs = 100;
106
+ /** FIFO write-open guard (P1 probe): `O_WRONLY|O_NONBLOCK` raises `ENXIO`
107
+ * while nothing holds the read end — a BLOCKING open would hang forever.
108
+ * Retried because claude opens its `0<>` end asynchronously during spawn;
109
+ * `ENXIO` persisting past the retries means the process is dead. */
110
+ exports.fifoOpenMaxTries = 10;
111
+ exports.fifoOpenRetryDelayMs = 500;
112
+ /** A full FIFO buffer raises `EAGAIN` on a non-blocking write — transient,
113
+ * claude drains it. Bounded so a truly wedged reader can't spin forever. */
114
+ exports.fifoWriteMaxRetries = 100;
115
+ exports.fifoWriteRetryDelayMs = 50;
116
+ /** No rotation in v1 (locked decision): the file is per-session and deleted on
117
+ * stop/release. Past this size we log ONE warning, never rotate. */
118
+ exports.stdoutOversizeWarnBytes = 256 * 1024 * 1024;
119
+ /** Cap for the stderr excerpt quoted into spawn-fail / unexpected-exit logs. */
120
+ exports.stderrTailMaxChars = 400;
121
+ /** Absolute path of the `jsonstream/` root under a given data dir. */
122
+ function resolveJsonStreamRoot(dataDir) {
123
+ return path.join(dataDir, exports.jsonStreamRootDirName);
124
+ }
125
+ /**
126
+ * @description Separator standing in for the serialized key's `:` inside a
127
+ * directory name — `:` is illegal on some filesystems. Same convention as
128
+ * `botFileStorage`'s intake dirs.
129
+ */
130
+ const threadDirSeparator = '_';
131
+ /** The per-thread host dir name — the key slug, for Telegram `<chatId>_<threadId>`. */
132
+ function threadDirName(key) {
133
+ return (0, sessionKey_1.keyToSlug)(key, threadDirSeparator);
134
+ }
135
+ /** Absolute path of one thread's json-stream host dir. */
136
+ function resolveJsonStreamSessionDir(dataDir, key) {
137
+ return path.join(resolveJsonStreamRoot(dataDir), threadDirName(key));
138
+ }
139
+ /**
140
+ * @description Inverse of the host-dir naming for the orphan-dir janitor.
141
+ * Strictness lives in the connector's codec (mirrors `parseTmuxSessionName`),
142
+ * so a foreign dir that happens to sit under `jsonstream/` is skipped, never
143
+ * swept by a mis-parse.
144
+ */
145
+ function parseJsonStreamDirName(name) {
146
+ return (0, sessionKey_1.tryKeyFromSlug)(name, threadDirSeparator);
147
+ }
148
+ function getJsonStreamSessionPaths(dir) {
149
+ return {
150
+ dir,
151
+ stdinFifo: path.join(dir, 'stdin.fifo'),
152
+ stdoutFile: path.join(dir, 'stdout.jsonl'),
153
+ stderrFile: path.join(dir, 'stderr.log'),
154
+ pidFile: path.join(dir, 'pid'),
155
+ exitCodeFile: path.join(dir, 'exitcode'),
156
+ wrapperFile: path.join(dir, 'wrapper.sh'),
157
+ questionFile: path.join(dir, 'question.json'),
158
+ };
159
+ }
160
+ /** tmux session name for a json-stream thread (`cjson-<chatId>-<threadId>`). */
161
+ function buildJsonStreamTmuxSessionName(key) {
162
+ return (0, tmuxSessionName_1.buildTmuxSessionName)(exports.jsonStreamTmuxPrefix, key);
163
+ }
164
+ /** Inverse of {@link buildJsonStreamTmuxSessionName}; `null` for foreign names. */
165
+ function parseJsonStreamTmuxSessionName(name) {
166
+ return (0, tmuxSessionName_1.parseTmuxSessionName)(exports.jsonStreamTmuxPrefix, name);
167
+ }
168
+ /**
169
+ * @description The `#!/bin/sh` host script (exact shape proven by the P1 probe
170
+ * `p1-probe2.mjs`): background claude with its stdio rerouted to the host files,
171
+ * record the child pid, then `wait` and record the exit code. `0<>` opens the
172
+ * stdin FIFO READ-WRITE on fd 0 — the load-bearing trick: claude itself holds a
173
+ * read end open, so the bot (a plain writer) can die and reconnect freely.
174
+ * `env -u ANTHROPIC_API_KEY` keeps subscription billing (`apiKeySource:"none"`)
175
+ * even if the tmux server environment carries a key. With an `environment`
176
+ * (a tracker conversation, R32) claude gets exactly those variables instead —
177
+ * `env -i`, so nothing of the tmux server's environment reaches it (no API key
178
+ * either). A non-default Claude account profile adds `CLAUDE_CONFIG_DIR=<dir>` to
179
+ * either `env` form (`utils/claudeProfiles.ts`); the default profile adds nothing,
180
+ * so the wrapper of a topic that never picked an account is byte-identical to
181
+ * the golden shape. The variable sits in the process environment — not only in
182
+ * the CLI's own reading of it — so a child `claude` the agent starts inherits the
183
+ * same account. All embedded strings are single-quoted; `claudePath` must be
184
+ * ABSOLUTE (tmux server PATH differs).
185
+ */
186
+ function buildWrapperScript(claudePath, args, workDir, paths, environment = null, configDir = null) {
187
+ const command = [claudePath, ...args].map(tmuxExec_1.shellSingleQuote).join(' ');
188
+ const configDirAssignment = configDir === null ? [] : [(0, tmuxExec_1.shellSingleQuote)(`${claudeProfiles_1.claudeConfigDirVariableName}=${configDir}`)];
189
+ const envCommand = environment === null
190
+ ? ['env', '-u', 'ANTHROPIC_API_KEY', ...configDirAssignment].join(' ')
191
+ : ['env', '-i', ...Object.entries(environment).map(([name, value]) => (0, tmuxExec_1.shellSingleQuote)(`${name}=${value}`)), ...configDirAssignment].join(' ');
192
+ return `#!/bin/sh
193
+ cd ${(0, tmuxExec_1.shellSingleQuote)(workDir)} || exit ${exports.wrapperCdFailExitCode}
194
+ ${envCommand} ${command} \\
195
+ 0<> ${(0, tmuxExec_1.shellSingleQuote)(paths.stdinFifo)} >> ${(0, tmuxExec_1.shellSingleQuote)(paths.stdoutFile)} 2>> ${(0, tmuxExec_1.shellSingleQuote)(paths.stderrFile)} &
196
+ CHILD=$!
197
+ echo $CHILD > ${(0, tmuxExec_1.shellSingleQuote)(paths.pidFile)}
198
+ wait $CHILD
199
+ echo $? > ${(0, tmuxExec_1.shellSingleQuote)(paths.exitCodeFile)}
200
+ `;
201
+ }
202
+ /**
203
+ * @description The `CLAUDE_CONFIG_DIR` a persisted wrapper script starts claude with, `null` for the default
204
+ * profile or an unreadable script. Read at adopt: the running process keeps the account it was spawned with,
205
+ * and the bot compares it with the profile its topic has now.
206
+ */
207
+ function readWrapperScriptConfigDir(wrapperFile) {
208
+ try {
209
+ return (0, claudeProfiles_1.parseClaudeConfigDirFromCommand)(fs.readFileSync(wrapperFile, 'utf8'));
210
+ }
211
+ catch {
212
+ return null;
213
+ }
214
+ }
215
+ /**
216
+ * @description Open the stdin FIFO for writing WITHOUT ever blocking: a plain
217
+ * `open(O_WRONLY)` on a FIFO with no reader hangs forever (the P1 probe's first
218
+ * attempt did exactly that). `O_NONBLOCK` turns "no reader" into `ENXIO`,
219
+ * retried on a short delay while claude is still coming up. Returns the fd, or
220
+ * `null` when `ENXIO` persists — i.e. the claude process is NOT holding the
221
+ * FIFO, so the session is dead.
222
+ */
223
+ async function openFifoWriterNonBlocking(fifoPath, maxTries = exports.fifoOpenMaxTries) {
224
+ for (let attempt = 0; attempt < maxTries; attempt++) {
225
+ try {
226
+ return fs.openSync(fifoPath, fs.constants.O_WRONLY | fs.constants.O_NONBLOCK);
227
+ }
228
+ catch (e) {
229
+ if (e.code !== 'ENXIO')
230
+ throw e;
231
+ await (0, promises_1.setTimeout)(exports.fifoOpenRetryDelayMs);
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+ /**
237
+ * @description Write `text` to a non-blocking FIFO fd, retrying transient
238
+ * `EAGAIN` (buffer full — claude drains it) with a bounded backoff and
239
+ * continuing partial writes (a payload larger than the FIFO buffer lands in
240
+ * chunks). Anything else (`EPIPE` after claude died, `EBADF` after close)
241
+ * propagates to the caller's per-session write chain, which logs it.
242
+ */
243
+ async function writeFifoText(fd, text) {
244
+ const payload = Buffer.from(text, 'utf8');
245
+ let written = 0;
246
+ let retries = 0;
247
+ while (written < payload.length) {
248
+ try {
249
+ written += fs.writeSync(fd, payload, written, payload.length - written);
250
+ }
251
+ catch (e) {
252
+ if (e.code !== 'EAGAIN' || retries >= exports.fifoWriteMaxRetries)
253
+ throw e;
254
+ retries += 1;
255
+ await (0, promises_1.setTimeout)(exports.fifoWriteRetryDelayMs);
256
+ }
257
+ }
258
+ }
259
+ /** Parse a `pid`/`exitcode` file: strict digits, `null` for missing/garbage. */
260
+ function readIntFile(filePath) {
261
+ let raw;
262
+ try {
263
+ raw = fs.readFileSync(filePath, 'utf8').trim();
264
+ }
265
+ catch {
266
+ return null;
267
+ }
268
+ return /^\d+$/.test(raw) ? Number(raw) : null;
269
+ }
270
+ function readPidFile(pidFile) {
271
+ return readIntFile(pidFile);
272
+ }
273
+ function readExitCodeFile(exitCodeFile) {
274
+ return readIntFile(exitCodeFile);
275
+ }
276
+ /** `kill(pid, 0)` liveness probe (no signal actually delivered). */
277
+ function checkIsPidAlive(pid) {
278
+ try {
279
+ process.kill(pid, 0);
280
+ return true;
281
+ }
282
+ catch {
283
+ return false;
284
+ }
285
+ }
286
+ /** Wait (bounded) for the wrapper to write the `pid` file after tmux spawn.
287
+ * Returns the pid, or `null` on timeout (spawn diagnostics read stderr). */
288
+ async function waitForPidFile(pidFile, timeoutMs = exports.pidFileWaitTimeoutMs) {
289
+ const deadline = Date.now() + timeoutMs;
290
+ while (Date.now() < deadline) {
291
+ const pid = readPidFile(pidFile);
292
+ if (pid !== null)
293
+ return pid;
294
+ await (0, promises_1.setTimeout)(exports.pidFilePollIntervalMs);
295
+ }
296
+ return readPidFile(pidFile);
297
+ }
298
+ /** Last `maxChars` of the passive stderr log — spawn-fail / exit diagnostics
299
+ * only (locked decision: no live stderr consumer). Empty when absent. */
300
+ function readStderrTail(stderrFile, maxChars = exports.stderrTailMaxChars) {
301
+ try {
302
+ const raw = fs.readFileSync(stderrFile, 'utf8').trim();
303
+ return raw.length > maxChars ? raw.slice(-maxChars) : raw;
304
+ }
305
+ catch {
306
+ return '';
307
+ }
308
+ }
309
+ /** File size in bytes, or `null` when the file doesn't exist (yet). */
310
+ function getFileSize(filePath) {
311
+ try {
312
+ return fs.statSync(filePath).size;
313
+ }
314
+ catch {
315
+ return null;
316
+ }
317
+ }
318
+ /** Read the byte range `[startOffset..endOffset)` of a file. May return fewer
319
+ * bytes than asked on a race — the tail accounts by ACTUAL bytes consumed. */
320
+ function readFileByteRange(filePath, startOffset, endOffset) {
321
+ const fd = fs.openSync(filePath, 'r');
322
+ try {
323
+ const wanted = endOffset - startOffset;
324
+ const buffer = Buffer.alloc(wanted);
325
+ const bytesRead = fs.readSync(fd, buffer, 0, wanted, startOffset);
326
+ return bytesRead === wanted ? buffer : buffer.subarray(0, bytesRead);
327
+ }
328
+ finally {
329
+ fs.closeSync(fd);
330
+ }
331
+ }
332
+ /**
333
+ * @description Decide where an ADOPT resumes the stdout tail. A persisted offset
334
+ * is trusted only when it was recorded for the SAME claude session — a foreign /
335
+ * unknown offset seeds to the current EOF (no backlog flood, the first-migration
336
+ * case) — and is clamped to the file size (an externally truncated file). The
337
+ * background-task list persisted with the offset is restored on the same
338
+ * condition: the frames that built it lie before the offset and will not
339
+ * replay, so without it an adopted session with a running background task
340
+ * would read as idle and could be stopped (L-D2). The turn-in-flight flag and
341
+ * the outstanding tool calls are restored the same way — a turn in a long,
342
+ * silent tool call leaves no frame after the offset either, and the outstanding
343
+ * tool is what keeps the busy-idle watchdog from clearing the restored turn.
344
+ */
345
+ function resolveAdoptedTail(persistedTail, claudeSessionId, stdoutSizeBytes) {
346
+ if (persistedTail === null || persistedTail.sessionId !== claudeSessionId) {
347
+ return { startOffset: stdoutSizeBytes, backgroundTaskIds: [], isTurnInFlight: false, outstandingToolUseIds: [], claudeCodeVersion: null };
348
+ }
349
+ return {
350
+ startOffset: Math.min(persistedTail.offsetBytes, stdoutSizeBytes),
351
+ backgroundTaskIds: persistedTail.backgroundTaskIds ?? [],
352
+ isTurnInFlight: persistedTail.isTurnInFlight ?? false,
353
+ outstandingToolUseIds: persistedTail.outstandingToolUseIds ?? [],
354
+ claudeCodeVersion: persistedTail.claudeCodeVersion ?? null,
355
+ };
356
+ }
357
+ function createStdoutTailState(startOffsetBytes) {
358
+ return { consumedBytes: startOffsetBytes, decoderRetainedBytes: 0, decoder: new string_decoder_1.StringDecoder('utf8') };
359
+ }
360
+ /**
361
+ * @description Decide the next tail action. Does NOT advance offsets on a
362
+ * `read` — {@link decodeStdoutTailChunk} advances by the bytes ACTUALLY read,
363
+ * so a short read (race with a concurrent append) self-heals next poll.
364
+ */
365
+ function getStdoutTailDecision(state, sizeBytes) {
366
+ if (sizeBytes < state.consumedBytes) {
367
+ state.consumedBytes = sizeBytes;
368
+ state.decoderRetainedBytes = 0;
369
+ state.decoder = new string_decoder_1.StringDecoder('utf8');
370
+ return { kind: 'reseed' };
371
+ }
372
+ if (sizeBytes === state.consumedBytes)
373
+ return { kind: 'none' };
374
+ return { kind: 'read', startOffset: state.consumedBytes, endOffset: sizeBytes };
375
+ }
376
+ /**
377
+ * @description Feed one appended byte chunk through the stateful utf8 decoder.
378
+ * Returns the decoded text (possibly empty while a multi-byte char is split);
379
+ * advances `consumedBytes` by the chunk length and re-derives the decoder's
380
+ * retained-byte count (`retainedNew = retainedPrior + chunkLen - decodedLen`,
381
+ * clamped defensively — invalid utf8 replacement chars could otherwise skew it
382
+ * negative).
383
+ */
384
+ function decodeStdoutTailChunk(state, chunk) {
385
+ const text = state.decoder.write(chunk);
386
+ const retained = state.decoderRetainedBytes + chunk.length - Buffer.byteLength(text, 'utf8');
387
+ state.decoderRetainedBytes = Math.max(0, retained);
388
+ state.consumedBytes += chunk.length;
389
+ return text;
390
+ }
391
+ /**
392
+ * @description The byte offset up to which every COMPLETE line has been
393
+ * processed — the value persisted across bot restarts. `pendingLineText` is the
394
+ * line reader's buffered partial line (`ClaudeStreamLineReader.pending`): those
395
+ * bytes were consumed but not yet processed, so the persisted offset excludes
396
+ * them and a restarted tail re-reads exactly the unprocessed remainder.
397
+ */
398
+ function getStdoutLineBoundaryOffset(state, pendingLineText) {
399
+ return state.consumedBytes - state.decoderRetainedBytes - Buffer.byteLength(pendingLineText, 'utf8');
400
+ }
401
+ /**
402
+ * @description Janitor: remove `jsonstream/` host dirs whose thread no longer
403
+ * owns a json-stream session (crash leftovers — the normal stop/release paths
404
+ * delete the dir themselves, and reattach handles live tmux sessions).
405
+ * `checkIsThreadOwned` is injected by the bot (persisted json-stream agent row
406
+ * with a session id, or a currently-active adapter session). Unparseable dir
407
+ * names are skipped, never swept. Returns the number of dirs removed. Runs at
408
+ * boot + the daily file sweep.
409
+ */
410
+ async function sweepOrphanJsonStreamDirs(jsonStreamRoot, checkIsThreadOwned) {
411
+ let entries;
412
+ try {
413
+ entries = await fs.promises.readdir(jsonStreamRoot, { withFileTypes: true });
414
+ }
415
+ catch (e) {
416
+ if (e.code !== 'ENOENT') {
417
+ console.warn(`[jsonStreamSweep] cannot read ${jsonStreamRoot}:`, e);
418
+ }
419
+ return 0;
420
+ }
421
+ let removedCount = 0;
422
+ for (const entry of entries) {
423
+ if (!entry.isDirectory())
424
+ continue;
425
+ const key = parseJsonStreamDirName(entry.name);
426
+ if (!key || checkIsThreadOwned(key))
427
+ continue;
428
+ try {
429
+ await fs.promises.rm(path.join(jsonStreamRoot, entry.name), { recursive: true, force: true });
430
+ removedCount += 1;
431
+ }
432
+ catch (e) {
433
+ console.warn(`[jsonStreamSweep] cannot remove orphan dir ${entry.name}:`, e);
434
+ }
435
+ }
436
+ return removedCount;
437
+ }
438
+ //# sourceMappingURL=jsonStreamHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonStreamHost.js","sourceRoot":"","sources":["../../src/utils/jsonStreamHost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @description One session transition at a time per conversation (plan
3
+ * 2026-10-04-claude-process-lifecycle, L2 review / L3): a start, a resume and an
4
+ * idle stop of the same key are chained, never run side by side. Two triggers
5
+ * that hit a sleeping topic together both ask for a resume; the second runs
6
+ * after the first and finds the session live. A trigger that arrives while the
7
+ * idle stop runs waits for it, then resumes. A transition that throws does not
8
+ * block the next one.
9
+ */
10
+ export declare class KeyedTransitionQueue {
11
+ /** Per key, a promise that settles (never rejects) once the last queued transition did. */
12
+ private readonly tails;
13
+ /** Run `transition` once every transition queued before it for `key` has settled. */
14
+ run<TResult>(key: string, transition: () => Promise<TResult>): Promise<TResult>;
15
+ /** Whether a transition of `key` is running or queued. */
16
+ checkIsInFlight(key: string): boolean;
17
+ }
18
+ //# sourceMappingURL=keyedTransitionQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyedTransitionQueue.d.ts","sourceRoot":"","sources":["../../src/utils/keyedTransitionQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;IAC/B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAE1D,qFAAqF;IACrF,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAW/E,0DAA0D;IAC1D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGtC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyedTransitionQueue = void 0;
4
+ /**
5
+ * @description One session transition at a time per conversation (plan
6
+ * 2026-10-04-claude-process-lifecycle, L2 review / L3): a start, a resume and an
7
+ * idle stop of the same key are chained, never run side by side. Two triggers
8
+ * that hit a sleeping topic together both ask for a resume; the second runs
9
+ * after the first and finds the session live. A trigger that arrives while the
10
+ * idle stop runs waits for it, then resumes. A transition that throws does not
11
+ * block the next one.
12
+ */
13
+ class KeyedTransitionQueue {
14
+ /** Per key, a promise that settles (never rejects) once the last queued transition did. */
15
+ tails = new Map();
16
+ /** Run `transition` once every transition queued before it for `key` has settled. */
17
+ run(key, transition) {
18
+ const previous = this.tails.get(key) ?? Promise.resolve();
19
+ const next = previous.then(transition);
20
+ const settled = next.then(() => undefined, () => undefined);
21
+ this.tails.set(key, settled);
22
+ void settled.then(() => {
23
+ if (this.tails.get(key) === settled)
24
+ this.tails.delete(key);
25
+ });
26
+ return next;
27
+ }
28
+ /** Whether a transition of `key` is running or queued. */
29
+ checkIsInFlight(key) {
30
+ return this.tails.has(key);
31
+ }
32
+ }
33
+ exports.KeyedTransitionQueue = KeyedTransitionQueue;
34
+ //# sourceMappingURL=keyedTransitionQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyedTransitionQueue.js","sourceRoot":"","sources":["../../src/utils/keyedTransitionQueue.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,MAAa,oBAAoB;IAC/B,2FAA2F;IAC1E,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE1D,qFAAqF;IACrF,GAAG,CAAU,GAAW,EAAE,UAAkC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAC1D,eAAe,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AApBD,oDAoBC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @description Pure layer behind the boot recovery of a usage/session-limit
3
+ * episode that ENDED BEFORE the bot restarted.
4
+ *
5
+ * An ARMED retry survives a restart on its own (`state.json` `apiRetries`,
6
+ * re-armed after reattach). An UNRECOGNISED limit error leaves nothing behind —
7
+ * so a topic whose agent died on a limit before the detector understood that
8
+ * wording just sits there, and a bot update alone does not resume it. This module
9
+ * reads the evidence the json-stream Claude backend leaves on disk (the terminal
10
+ * `result` frame at the end of its `stdout.jsonl`) and decides whether the bot
11
+ * should arm the limit wait itself.
12
+ *
13
+ * V1 IS JSON-STREAM ONLY, by evidence availability: the tmux-scrape backend keeps
14
+ * its history only in a tmux pane (already repainted by adopt time) and OpenCode's
15
+ * error lives in a transient SSE event, so neither has a comparable on-disk tail
16
+ * to re-read. Those backends recover the normal way — the next live error fires
17
+ * the detector.
18
+ *
19
+ * Only the decisions live here; the fs read and the `handleApiError` call stay in
20
+ * `bot.ts` (the apiErrorRetry pure-layer / manager split).
21
+ */
22
+ import type { AgentApiErrorClass, LimitEpisodeMarker } from '../types';
23
+ /**
24
+ * How much of a session's `stdout.jsonl` to read when hunting the last terminal
25
+ * frame. The log holds a whole session's events and can reach hundreds of MB, so
26
+ * only the tail is read — the terminal `result` frame is by definition the last
27
+ * thing written. A torn first line is simply skipped by the NDJSON parser.
28
+ */
29
+ export declare const limitEpisodeTailMaxBytes: number;
30
+ /**
31
+ * Max age of the stdout log for its trailing error to still count as "the episode
32
+ * the topic is stuck on". Older than this and the topic has moved on (or the limit
33
+ * window is long expired), so resurrecting it would push an unexpected prompt into
34
+ * a quiet topic.
35
+ */
36
+ export declare const limitEpisodeMaxAgeMs: number;
37
+ /**
38
+ * @description The error text the session is PARKED on, read out of a stdout
39
+ * tail: the last terminal `result` frame's error, or `null` when the tail ends on
40
+ * a healthy turn, holds no terminal frame, or shows the session moving on after
41
+ * the error. Reuses the adapter's own NDJSON parse + message classifier, so "what
42
+ * counts as a terminal error and where its text lives" has exactly one definition.
43
+ *
44
+ * Anything real written AFTER the error — the echo of a message sent to the
45
+ * session, the agent's text, thinking or tool frames — clears the verdict, though
46
+ * the turn it belongs to has no terminal frame yet. That is what a limit resume
47
+ * leaves in the log: the bot's own "continue" nudge and the work on it. A topic
48
+ * with that tail is not stuck on the old error, and re-arming it at a restart
49
+ * in the middle of that turn would resume the same episode a second time.
50
+ *
51
+ * Only the PARENT session's frames count. A terminal `result` ends the parent
52
+ * turn, so the one thing that can still write after it without a resume is a
53
+ * background sub-agent finishing its own work (`parent_tool_use_id` set); a
54
+ * resume always starts with the parent's own frames (the nudge's echo first), so
55
+ * leaving the sub-agent's out loses nothing and keeps a parked topic parked.
56
+ */
57
+ export declare function getLastTerminalErrorText(tailText: string): string | null;
58
+ export type LimitEpisodeDecision =
59
+ /** Arm the limit wait through the normal live-error path. */
60
+ {
61
+ action: 'arm';
62
+ cls: AgentApiErrorClass;
63
+ }
64
+ /** Nothing to do; `reason` is for the boot log only. */
65
+ | {
66
+ action: 'skip';
67
+ reason: 'noError' | 'notUsageLimit' | 'stale' | 'alreadyArmed' | 'alreadyHandled';
68
+ };
69
+ /**
70
+ * @description Decide whether a session's trailing error should re-arm a limit
71
+ * wait at boot. Deliberately strict — every guard exists to keep a boot from
72
+ * pushing a surprise prompt into a topic:
73
+ * - only when no persisted retry record already covers the thread (that one is
74
+ * re-armed by the normal restore path — arming twice would double-notice);
75
+ * - only when the log CHANGED since the episode a previous boot already handled
76
+ * ({@link checkIsSameHandledLog});
77
+ * - only the `usageLimit` class (a transient error is long past by restart time,
78
+ * and an `auth` error needs a human, not a wait);
79
+ * - only when the log is younger than {@link limitEpisodeMaxAgeMs}.
80
+ * A `resetAt` already in the past needs no special case: the retry plan clamps a
81
+ * negative delay to zero and the boot arming turns that into one prompt catch-up.
82
+ */
83
+ export declare function decideLimitEpisodeRecovery(input: {
84
+ errorText: string | null;
85
+ /** Identity (size + mtime) of the session's `stdout.jsonl` right now. */
86
+ log: LimitEpisodeMarker;
87
+ /** Identity recorded when a previous boot armed from this log, if any. */
88
+ handled?: LimitEpisodeMarker;
89
+ now: number;
90
+ hasArmedRetry: boolean;
91
+ }): LimitEpisodeDecision;
92
+ //# sourceMappingURL=limitEpisodeRecovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitEpisodeRecovery.d.ts","sourceRoot":"","sources":["../../src/utils/limitEpisodeRecovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAexE;AAYD,MAAM,MAAM,oBAAoB;AAC9B,6DAA6D;AAC3D;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE;AAC5C,wDAAwD;GACtD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,OAAO,GAAG,cAAc,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAgB1G;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,GAAG,EAAE,kBAAkB,CAAC;IACxB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,oBAAoB,CAQvB"}