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 @@
1
+ {"version":3,"file":"installManager.js","sourceRoot":"","sources":["../src/installManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * @description On-disk shape of `${DATA_DIR}/instance.lock`.
3
+ *
4
+ * `tokenHash` is the first 12 hex chars of SHA-256(TELEGRAM_BOT_TOKEN) so the
5
+ * lockfile reveals which bot is holding it, without leaking the token itself.
6
+ * Useful when a user has multiple tokens behind multiple `DATA_DIR`s and
7
+ * confuses them.
8
+ */
9
+ interface LockData {
10
+ pid: number;
11
+ cwd: string;
12
+ startedAt: string;
13
+ tokenHash: string;
14
+ /** The holder's host; absent in a lock written before it was recorded. */
15
+ hostname?: string;
16
+ /** The holder's pid namespace (`pid:[<inode>]`); absent before it was recorded or where `/proc` has none. */
17
+ pidNamespace?: string;
18
+ }
19
+ /** @description Lockfile path: `${DATA_DIR}/instance.lock`. */
20
+ export declare function lockPath(): string;
21
+ /**
22
+ * @description Result of a pure `tryAcquireLock` call. Lifted out of
23
+ * {@link acquireLock} so unit tests don't have to spawn a child process to
24
+ * inspect the failure path.
25
+ *
26
+ * - `ok: true` — lock was created with our pid in it
27
+ * - `live-holder` — another process already owns the lock
28
+ * - `lost-race` — both retry attempts hit EEXIST without a
29
+ * clearly-live or clearly-dead holder
30
+ * (concurrent starter, exotic FS, etc.)
31
+ */
32
+ export type AcquireResult = {
33
+ ok: true;
34
+ } | {
35
+ ok: false;
36
+ reason: 'live-holder';
37
+ holder: LockData;
38
+ lockPath: string;
39
+ } | {
40
+ ok: false;
41
+ reason: 'foreign-host';
42
+ holder: LockData;
43
+ lockPath: string;
44
+ } | {
45
+ ok: false;
46
+ reason: 'lost-race';
47
+ lockPath: string;
48
+ };
49
+ /**
50
+ * @description Core acquisition logic — no side effects beyond the
51
+ * filesystem. Returns a structured result for the caller to decide whether
52
+ * to print + exit or to handle programmatically.
53
+ *
54
+ * **Atomicity strategy** — naïve `fs.openSync(lp, 'wx')` followed by
55
+ * `writeSync` is racy: between open and write, a concurrent
56
+ * `tryAcquireLock` could read an empty lockfile, parse-fail, treat it as
57
+ * stale, and `unlinkSync` our just-created file. Both processes then think
58
+ * they own the lock.
59
+ *
60
+ * Instead we write the payload to a per-pid tmp file first, then use
61
+ * `fs.linkSync(tmp, lp)` to publish it atomically: `link` either creates
62
+ * `lp` linked to our already-populated tmp inode (success) or fails
63
+ * EEXIST (someone else got there first). The tmp file is always unlinked
64
+ * afterwards. Readers in the EEXIST branch only ever see a fully-written
65
+ * lockfile.
66
+ *
67
+ * On EEXIST we re-read the existing lockfile:
68
+ *
69
+ * - holder is alive → return `live-holder` with their details
70
+ * - holder is dead or lockfile is corrupted → unlink and retry
71
+ *
72
+ * Retry count is capped at `MAX_ACQUIRE_ATTEMPTS` to avoid pathological
73
+ * loops; persistent EEXIST surfaces as `lost-race`.
74
+ */
75
+ export declare function tryAcquireLock(): AcquireResult;
76
+ /**
77
+ * @description Default same-token handoff wait: the predecessor's graceful
78
+ * shutdown is bounded by its watchdog ({@link DEFAULT_WATCHDOG_MS} — which now
79
+ * covers the bounded output flush), so the incoming process must out-wait that
80
+ * WHOLE window plus margin. Undersizing this re-creates the live 2026-07-05
81
+ * outage: nodemon spawns the replacement while the old process is still
82
+ * flushing, the lock wait expires, the replacement exits "already running",
83
+ * and nodemon then idles until the next file change — bot down.
84
+ */
85
+ export declare const lockHandoffMaxWaitMs: number;
86
+ /**
87
+ * @description Same as {@link tryAcquireLock} but waits up to `maxWaitMs`
88
+ * for a same-token holder to release before giving up.
89
+ *
90
+ * Why same-token-only: a different token means a genuinely different bot
91
+ * instance is running against the same `DATA_DIR` (operator mistake — they
92
+ * forgot to set distinct `DATA_DIR`s). We MUST refuse fast in that case;
93
+ * polite waiting would mask the misconfiguration. A matching token, on the
94
+ * other hand, almost always means "my own predecessor is in the middle of
95
+ * its graceful-shutdown sequence" — typical during a `nodemon`-driven hot
96
+ * reload where the old PID has been signalled but is still flushing. That
97
+ * shutdown is bounded by the predecessor's watchdog, so the default wait
98
+ * ({@link lockHandoffMaxWaitMs}) out-waits it with margin and the new process
99
+ * picks the lock back up without spamming the operator with a "live-holder"
100
+ * abort.
101
+ *
102
+ * The sleep function is injected so unit tests can drive the retry loop
103
+ * deterministically without spending real wall-clock time.
104
+ */
105
+ export declare function tryAcquireLockWithRetry(opts?: {
106
+ maxWaitMs?: number;
107
+ intervalMs?: number;
108
+ sleep?: (ms: number) => Promise<void>;
109
+ }): Promise<AcquireResult>;
110
+ /**
111
+ * @description Acquire the single-instance lock for this `DATA_DIR`, or
112
+ * `process.exit(1)` after printing diagnostics.
113
+ *
114
+ * Thin user-facing wrapper around {@link tryAcquireLockWithRetry} — the
115
+ * retry tolerates a brief overlap between an exiting old bot and the
116
+ * incoming new bot during a `nodemon` hot reload (same token, same
117
+ * `DATA_DIR`). Foreign holders still fail immediately.
118
+ */
119
+ export declare function acquireLock(): Promise<void>;
120
+ /**
121
+ * @description Best-effort lockfile removal.
122
+ *
123
+ * Called from process-exit handlers; we deliberately swallow errors because
124
+ * an exit-time crash here masks the real shutdown cause. The worst case
125
+ * (file left behind after a `kill -9`) is harmless — the next `acquireLock`
126
+ * detects the dead pid and reclaims.
127
+ *
128
+ * Refuses to delete a lockfile that does NOT name us — defensive against
129
+ * `kill -9` parent + child still holding a stale handle.
130
+ */
131
+ export declare function releaseLock(): void;
132
+ /**
133
+ * @description Register exit / crash handlers that release the lock.
134
+ *
135
+ * Wired once from `runBot()`. Covers:
136
+ * - normal exit (release on `process.exit`) — fires whenever any code
137
+ * path calls `process.exit(N)`, including the bot's own ordered
138
+ * shutdown (`bot.stop → state.flush → releaseLock → exit(0)`). The
139
+ * redundant release here is a belt-and-suspenders for code paths that
140
+ * hit `process.exit` without going through the bot shutdown (CLI
141
+ * misuse, early env-validation failures).
142
+ * - `uncaughtException` (release on crash).
143
+ *
144
+ * **Signal handlers are intentionally NOT installed here.** That used to
145
+ * be the case, but it caused a race: this module loads first
146
+ * (`cli/bot.ts:54`), so its `SIGINT`/`SIGTERM` handler always fires before
147
+ * the bot's own (`bot.ts: shutdown(...)`); a synchronous `process.exit(0)`
148
+ * inside the lock handler then pre-empts the bot's *async* `state.flush()`
149
+ * and the last <500ms of state never reaches disk. Letting the bot own
150
+ * signal handling (and ending with `releaseLock(); process.exit(0)` itself)
151
+ * makes the sequence deterministic. If a SIGINT/SIGTERM arrives before the
152
+ * bot installs its handler (very narrow window during boot), Node's
153
+ * default action terminates the process and we leak the lock file —
154
+ * harmless, because the next start sees a dead pid and reclaims it via
155
+ * the stale-lock recovery path in {@link tryAcquireLock}.
156
+ *
157
+ * SIGKILL is not catchable, hence the same stale-lock recovery path.
158
+ */
159
+ export declare function installLockCleanupHandlers(): void;
160
+ export {};
161
+ //# sourceMappingURL=instanceLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceLock.d.ts","sourceRoot":"","sources":["../src/instanceLock.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6GAA6G;IAC7G,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA0CD,+DAA+D;AAC/D,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAsDD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAyD9C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,GAAE;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,GAAG,OAAO,CAAC,aAAa,CAAC,CAuB9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,IAAI,CASlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAajD"}
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.lockHandoffMaxWaitMs = void 0;
37
+ exports.lockPath = lockPath;
38
+ exports.tryAcquireLock = tryAcquireLock;
39
+ exports.tryAcquireLockWithRetry = tryAcquireLockWithRetry;
40
+ exports.acquireLock = acquireLock;
41
+ exports.releaseLock = releaseLock;
42
+ exports.installLockCleanupHandlers = installLockCleanupHandlers;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const crypto = __importStar(require("crypto"));
47
+ const shutdown_1 = require("./shutdown");
48
+ /**
49
+ * @description Number of acquisition attempts before giving up.
50
+ *
51
+ * One retry is enough to recover from a stale lockfile we cleared in the
52
+ * first iteration. More attempts buy nothing — if two live processes both
53
+ * see EEXIST with a valid live holder, we're in a real conflict and the
54
+ * polite thing is to surface it instead of spinning.
55
+ */
56
+ const MAX_ACQUIRE_ATTEMPTS = 2;
57
+ /** Where Linux names the pid namespace of the calling process. */
58
+ const ownPidNamespaceLink = '/proc/self/ns/pid';
59
+ /** This process's pid namespace, or `undefined` where the system has no such link (macOS). */
60
+ function readOwnPidNamespace() {
61
+ try {
62
+ return fs.readlinkSync(ownPidNamespaceLink);
63
+ }
64
+ catch {
65
+ return undefined;
66
+ }
67
+ }
68
+ /**
69
+ * @description Classify an existing lock (plan S8 C20, the whole bot in a container). A pid is only meaningful in
70
+ * the pid namespace and on the host that wrote it:
71
+ * - another hostname → `foreign-host`: its holder cannot be probed from here, so the start is refused;
72
+ * - the same hostname, another pid namespace → `stale`: the container that wrote it was restarted and every
73
+ * process in it ended — a probe would read a reused small container pid as a live holder;
74
+ * - otherwise (or a lock without these fields) → today's probe.
75
+ */
76
+ function getLockHolderState(holder, own) {
77
+ if (holder.hostname !== undefined && holder.hostname !== own.hostname)
78
+ return 'foreign-host';
79
+ if (holder.pidNamespace !== undefined && own.pidNamespace !== undefined && holder.pidNamespace !== own.pidNamespace)
80
+ return 'stale';
81
+ return isAlive(holder.pid) ? 'live' : 'stale';
82
+ }
83
+ /**
84
+ * @description Resolve the data directory the lockfile lives in.
85
+ *
86
+ * Mirrors `src/state.ts:694` — kept independent (not imported) because lock
87
+ * acquisition runs BEFORE the bot module is loaded, and `state.ts` reads
88
+ * `process.env.DATA_DIR` at module scope which we want to avoid coupling to.
89
+ */
90
+ function dataDir() {
91
+ return process.env.DATA_DIR || path.join(os.homedir(), '.telegramCode');
92
+ }
93
+ /** @description Lockfile path: `${DATA_DIR}/instance.lock`. */
94
+ function lockPath() {
95
+ return path.join(dataDir(), 'instance.lock');
96
+ }
97
+ /**
98
+ * @description Is the given pid currently a live process?
99
+ *
100
+ * `process.kill(pid, 0)` is the standard portable liveness probe:
101
+ * - throws `ESRCH` → no such process (dead)
102
+ * - throws `EPERM` → process exists but we lack permission to signal it
103
+ * (still counts as alive for our purposes)
104
+ * - resolves → alive
105
+ *
106
+ * Notably it does NOT verify that `pid` is *our* old bot vs. an unrelated
107
+ * process that happened to inherit the same pid number. PID reuse is a known
108
+ * edge case (see plan §risks/2); we accept it.
109
+ */
110
+ function isAlive(pid) {
111
+ if (!Number.isInteger(pid) || pid <= 0)
112
+ return false;
113
+ try {
114
+ process.kill(pid, 0);
115
+ return true;
116
+ }
117
+ catch (e) {
118
+ const code = e?.code;
119
+ return code === 'EPERM';
120
+ }
121
+ }
122
+ /**
123
+ * @description Try to read and parse an existing lockfile. Returns `null` for
124
+ * any I/O or JSON error (file gone, truncated, corrupted) so the caller can
125
+ * treat it the same as "stale".
126
+ */
127
+ function readLock(lp) {
128
+ try {
129
+ const raw = fs.readFileSync(lp, 'utf8');
130
+ const parsed = JSON.parse(raw);
131
+ if (typeof parsed.pid !== 'number')
132
+ return null;
133
+ return parsed;
134
+ }
135
+ catch {
136
+ return null;
137
+ }
138
+ }
139
+ /**
140
+ * @description Hash a bot token for display in the lockfile.
141
+ *
142
+ * 12 hex chars from SHA-256 is enough collision resistance for "is this the
143
+ * same token the running instance is using" but reveals nothing useful to an
144
+ * attacker who reads `~/.telegramCode/instance.lock`.
145
+ */
146
+ function hashToken(token) {
147
+ if (!token)
148
+ return 'no-token';
149
+ return crypto.createHash('sha256').update(token).digest('hex').slice(0, 12);
150
+ }
151
+ /**
152
+ * @description Core acquisition logic — no side effects beyond the
153
+ * filesystem. Returns a structured result for the caller to decide whether
154
+ * to print + exit or to handle programmatically.
155
+ *
156
+ * **Atomicity strategy** — naïve `fs.openSync(lp, 'wx')` followed by
157
+ * `writeSync` is racy: between open and write, a concurrent
158
+ * `tryAcquireLock` could read an empty lockfile, parse-fail, treat it as
159
+ * stale, and `unlinkSync` our just-created file. Both processes then think
160
+ * they own the lock.
161
+ *
162
+ * Instead we write the payload to a per-pid tmp file first, then use
163
+ * `fs.linkSync(tmp, lp)` to publish it atomically: `link` either creates
164
+ * `lp` linked to our already-populated tmp inode (success) or fails
165
+ * EEXIST (someone else got there first). The tmp file is always unlinked
166
+ * afterwards. Readers in the EEXIST branch only ever see a fully-written
167
+ * lockfile.
168
+ *
169
+ * On EEXIST we re-read the existing lockfile:
170
+ *
171
+ * - holder is alive → return `live-holder` with their details
172
+ * - holder is dead or lockfile is corrupted → unlink and retry
173
+ *
174
+ * Retry count is capped at `MAX_ACQUIRE_ATTEMPTS` to avoid pathological
175
+ * loops; persistent EEXIST surfaces as `lost-race`.
176
+ */
177
+ function tryAcquireLock() {
178
+ fs.mkdirSync(dataDir(), { recursive: true });
179
+ const lp = lockPath();
180
+ const own = { hostname: os.hostname(), pidNamespace: readOwnPidNamespace() };
181
+ const payload = {
182
+ pid: process.pid,
183
+ cwd: process.cwd(),
184
+ startedAt: new Date().toISOString(),
185
+ tokenHash: hashToken(process.env.TELEGRAM_BOT_TOKEN),
186
+ ...own,
187
+ };
188
+ const tmpPath = `${lp}.${process.pid}.tmp`;
189
+ fs.writeFileSync(tmpPath, JSON.stringify(payload, null, 2));
190
+ try {
191
+ for (let attempt = 0; attempt < MAX_ACQUIRE_ATTEMPTS; attempt++) {
192
+ try {
193
+ fs.linkSync(tmpPath, lp);
194
+ return { ok: true };
195
+ }
196
+ catch (e) {
197
+ const code = e?.code;
198
+ if (code !== 'EEXIST')
199
+ throw e;
200
+ const existing = readLock(lp);
201
+ const holderState = existing ? getLockHolderState(existing, own) : 'stale';
202
+ if (existing && holderState === 'foreign-host') {
203
+ return { ok: false, reason: 'foreign-host', holder: existing, lockPath: lp };
204
+ }
205
+ if (!existing || holderState === 'stale') {
206
+ try {
207
+ fs.unlinkSync(lp);
208
+ }
209
+ catch {
210
+ // Lost the race against another cleaner; the next iteration's
211
+ // linkSync will see whatever they left.
212
+ }
213
+ continue;
214
+ }
215
+ return {
216
+ ok: false,
217
+ reason: 'live-holder',
218
+ holder: existing,
219
+ lockPath: lp,
220
+ };
221
+ }
222
+ }
223
+ return { ok: false, reason: 'lost-race', lockPath: lp };
224
+ }
225
+ finally {
226
+ // Always clean up the tmp file — successful link bumps refcount, so the
227
+ // payload survives via `lp`; failed link leaves an orphan we must remove.
228
+ try {
229
+ fs.unlinkSync(tmpPath);
230
+ }
231
+ catch {
232
+ // best effort
233
+ }
234
+ }
235
+ }
236
+ /**
237
+ * @description Default same-token handoff wait: the predecessor's graceful
238
+ * shutdown is bounded by its watchdog ({@link DEFAULT_WATCHDOG_MS} — which now
239
+ * covers the bounded output flush), so the incoming process must out-wait that
240
+ * WHOLE window plus margin. Undersizing this re-creates the live 2026-07-05
241
+ * outage: nodemon spawns the replacement while the old process is still
242
+ * flushing, the lock wait expires, the replacement exits "already running",
243
+ * and nodemon then idles until the next file change — bot down.
244
+ */
245
+ exports.lockHandoffMaxWaitMs = shutdown_1.DEFAULT_WATCHDOG_MS + 2000;
246
+ /**
247
+ * @description Same as {@link tryAcquireLock} but waits up to `maxWaitMs`
248
+ * for a same-token holder to release before giving up.
249
+ *
250
+ * Why same-token-only: a different token means a genuinely different bot
251
+ * instance is running against the same `DATA_DIR` (operator mistake — they
252
+ * forgot to set distinct `DATA_DIR`s). We MUST refuse fast in that case;
253
+ * polite waiting would mask the misconfiguration. A matching token, on the
254
+ * other hand, almost always means "my own predecessor is in the middle of
255
+ * its graceful-shutdown sequence" — typical during a `nodemon`-driven hot
256
+ * reload where the old PID has been signalled but is still flushing. That
257
+ * shutdown is bounded by the predecessor's watchdog, so the default wait
258
+ * ({@link lockHandoffMaxWaitMs}) out-waits it with margin and the new process
259
+ * picks the lock back up without spamming the operator with a "live-holder"
260
+ * abort.
261
+ *
262
+ * The sleep function is injected so unit tests can drive the retry loop
263
+ * deterministically without spending real wall-clock time.
264
+ */
265
+ async function tryAcquireLockWithRetry(opts = {}) {
266
+ const maxWaitMs = opts.maxWaitMs ?? exports.lockHandoffMaxWaitMs;
267
+ const intervalMs = opts.intervalMs ?? 100;
268
+ const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
269
+ const ourTokenHash = hashToken(process.env.TELEGRAM_BOT_TOKEN);
270
+ const deadline = Date.now() + maxWaitMs;
271
+ for (;;) {
272
+ const r = tryAcquireLock();
273
+ if (r.ok)
274
+ return r;
275
+ // Foreign holder: refuse fast, no retry. Wrong DATA_DIR config or two
276
+ // different bots competing — surfacing the conflict is correct.
277
+ if (r.reason !== 'live-holder' || r.holder.tokenHash !== ourTokenHash) {
278
+ return r;
279
+ }
280
+ // Same-token live holder. Wait for it to release (nodemon hot reload
281
+ // handoff), then retry. Bounded by `maxWaitMs` so a wedged old process
282
+ // can't keep us spinning forever.
283
+ if (Date.now() >= deadline)
284
+ return r;
285
+ await sleep(intervalMs);
286
+ }
287
+ }
288
+ /**
289
+ * @description Acquire the single-instance lock for this `DATA_DIR`, or
290
+ * `process.exit(1)` after printing diagnostics.
291
+ *
292
+ * Thin user-facing wrapper around {@link tryAcquireLockWithRetry} — the
293
+ * retry tolerates a brief overlap between an exiting old bot and the
294
+ * incoming new bot during a `nodemon` hot reload (same token, same
295
+ * `DATA_DIR`). Foreign holders still fail immediately.
296
+ */
297
+ async function acquireLock() {
298
+ const r = await tryAcquireLockWithRetry();
299
+ if (r.ok)
300
+ return;
301
+ if (r.reason === 'live-holder') {
302
+ process.stderr.write(`telegramcode is already running:\n` +
303
+ ` pid: ${r.holder.pid}\n` +
304
+ ` cwd: ${r.holder.cwd}\n` +
305
+ ` started: ${r.holder.startedAt}\n` +
306
+ ` token hash: ${r.holder.tokenHash}\n` +
307
+ ` lock file: ${r.lockPath}\n\n` +
308
+ `Stop the running instance first, or set DATA_DIR to use a separate state dir.\n`);
309
+ }
310
+ else if (r.reason === 'foreign-host') {
311
+ process.stderr.write(`telegramcode is locked by an instance on another host, which cannot be checked from here:\n` +
312
+ ` host: ${r.holder.hostname}\n` +
313
+ ` pid: ${r.holder.pid}\n` +
314
+ ` started: ${r.holder.startedAt}\n` +
315
+ ` lock file: ${r.lockPath}\n\n` +
316
+ `Stop that instance; if it is already gone, remove the lock file and start again.\n`);
317
+ }
318
+ else {
319
+ process.stderr.write(`telegramcode could not acquire ${r.lockPath} after retry. ` +
320
+ `Another instance is likely starting concurrently.\n`);
321
+ }
322
+ process.exit(1);
323
+ }
324
+ /**
325
+ * @description Best-effort lockfile removal.
326
+ *
327
+ * Called from process-exit handlers; we deliberately swallow errors because
328
+ * an exit-time crash here masks the real shutdown cause. The worst case
329
+ * (file left behind after a `kill -9`) is harmless — the next `acquireLock`
330
+ * detects the dead pid and reclaims.
331
+ *
332
+ * Refuses to delete a lockfile that does NOT name us — defensive against
333
+ * `kill -9` parent + child still holding a stale handle.
334
+ */
335
+ function releaseLock() {
336
+ const lp = lockPath();
337
+ const existing = readLock(lp);
338
+ if (!existing || existing.pid !== process.pid)
339
+ return;
340
+ try {
341
+ fs.unlinkSync(lp);
342
+ }
343
+ catch {
344
+ // best effort
345
+ }
346
+ }
347
+ /**
348
+ * @description Register exit / crash handlers that release the lock.
349
+ *
350
+ * Wired once from `runBot()`. Covers:
351
+ * - normal exit (release on `process.exit`) — fires whenever any code
352
+ * path calls `process.exit(N)`, including the bot's own ordered
353
+ * shutdown (`bot.stop → state.flush → releaseLock → exit(0)`). The
354
+ * redundant release here is a belt-and-suspenders for code paths that
355
+ * hit `process.exit` without going through the bot shutdown (CLI
356
+ * misuse, early env-validation failures).
357
+ * - `uncaughtException` (release on crash).
358
+ *
359
+ * **Signal handlers are intentionally NOT installed here.** That used to
360
+ * be the case, but it caused a race: this module loads first
361
+ * (`cli/bot.ts:54`), so its `SIGINT`/`SIGTERM` handler always fires before
362
+ * the bot's own (`bot.ts: shutdown(...)`); a synchronous `process.exit(0)`
363
+ * inside the lock handler then pre-empts the bot's *async* `state.flush()`
364
+ * and the last <500ms of state never reaches disk. Letting the bot own
365
+ * signal handling (and ending with `releaseLock(); process.exit(0)` itself)
366
+ * makes the sequence deterministic. If a SIGINT/SIGTERM arrives before the
367
+ * bot installs its handler (very narrow window during boot), Node's
368
+ * default action terminates the process and we leak the lock file —
369
+ * harmless, because the next start sees a dead pid and reclaims it via
370
+ * the stale-lock recovery path in {@link tryAcquireLock}.
371
+ *
372
+ * SIGKILL is not catchable, hence the same stale-lock recovery path.
373
+ */
374
+ function installLockCleanupHandlers() {
375
+ const cleanup = () => releaseLock();
376
+ process.on('exit', cleanup);
377
+ process.on('uncaughtException', (err) => {
378
+ cleanup();
379
+ // Print the original error ourselves and exit with the canonical
380
+ // crash-on-uncaught code. We intentionally do NOT re-throw — re-throwing
381
+ // would fire `uncaughtException` again, re-enter our handler, schedule
382
+ // another re-throw, and loop forever (the process would never exit and
383
+ // the user would never see the original stack).
384
+ console.error(err);
385
+ process.exit(1);
386
+ });
387
+ }
388
+ //# sourceMappingURL=instanceLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceLock.js","sourceRoot":"","sources":["../src/instanceLock.ts"],"names":[],"mappings":"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"}