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,668 @@
1
+ "use strict";
2
+ /**
3
+ * @description Russian catalog — hand-maintained. Not
4
+ * machine-translated; kept as the reference set the project shipped with.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ruDict = void 0;
8
+ exports.ruDict = {
9
+ 'access.denied': 'Доступ запрещён.',
10
+ 'access.group_only': 'Я работаю только в настроенной forum-супергруппе.',
11
+ 'thread.no_binding': '📁 Этот тред не привязан к папке. Используй /bind <subdir> или выбери из списка.',
12
+ 'thread.bind_required': '📁 Сначала привяжи папку: /bind <subdir>. Агент запускается только в привязанной папке.',
13
+ 'thread.bound': '📁 Привязано к `{subdir}`.\nЗапусти /claude или /opencode.',
14
+ 'thread.unbound': '📁 Привязка снята.',
15
+ 'thread.general_no_agent': 'General не привязан к папке — перейди в тематический тред для разговора с агентом.',
16
+ 'thread.welcome_bound': '👋 Тред создан и автоматически привязан к `{subdir}` (имя треда совпало с подпапкой).\nЗапусти /claude или /opencode.',
17
+ 'thread.welcome_pick': '👋 Тред создан. Привяжи папку: /bind <subdir>, или выбери из списка ниже.',
18
+ 'thread.bind_collision': '⚠️ Папка `{subdir}` уже используется в тредах: {threads}.\nПривязка добавлена; сессии независимы (свой tmux/SSE).',
19
+ 'thread.no_agent_with_binding': '📁 Папка `{subdir}` привязана. Запусти /claude или /opencode чтобы начать диалог.',
20
+ 'bind.usage': 'Использование: /bind <subdir>\nПример: /bind overview',
21
+ 'bind.current': '📂 Сейчас привязано: `{subdir}`',
22
+ 'bind.current_none': '📂 Пока не привязано',
23
+ 'bind.in_general': '/bind работает только в тематических тредах, не в General.',
24
+ 'bind.invalid_chars': '❌ В имени папки запрещены управляющие символы.',
25
+ 'bind.not_found': '❌ Папка `{subdir}` не найдена в `WORK_ROOT` (`{workRoot}`).',
26
+ 'bind.outside_root': '❌ Путь выходит за пределы `WORK_ROOT`.',
27
+ 'bind.not_directory': '❌ `{subdir}` существует, но это не папка.',
28
+ 'bind.leave_button': '⬅️ Покинуть текущую папку',
29
+ 'bind.create_button': '➕ Создать новую папку',
30
+ 'bind.create_prompt': '✏️ Пришли название новой папки (будет создана в `WORK_ROOT`). Любая команда отменяет.',
31
+ 'bind.create_cb': 'Создаю новую папку…',
32
+ 'bind.create_empty': '❌ Название пустое. Пришли название папки.',
33
+ 'bind.create_separator': '❌ Название не должно содержать `/` или `\\`. Пришли простое имя.',
34
+ 'bind.create_dot_segment': '❌ `.` и `..` нельзя использовать как имя папки.',
35
+ 'bind.create_hidden': '❌ Имя не должно начинаться с точки.',
36
+ 'bind.create_invalid_chars': '❌ В названии папки запрещены управляющие символы.',
37
+ 'bind.create_exists': '📁 Папка `{subdir}` уже существует — привязываю к ней.',
38
+ 'bind.create_failed': '❌ Не удалось создать папку: {error}',
39
+ 'ls.header': '📁 Подпапки `{workRoot}`:',
40
+ 'ls.empty': '📁 В `WORK_ROOT` нет подходящих подпапок.',
41
+ 'list.header': '🧵 Привязки тредов ({count}):',
42
+ 'list.empty': '🧵 Привязок ещё нет. Создай тред и напиши /bind.',
43
+ 'list.row': '• {threadId}: `{subdir}` · {agent} · {status}',
44
+ 'list.row_closed': '• {threadId}: `{subdir}` · {agent} · 🔒 closed',
45
+ 'new.general_hint': '/new работает внутри привязанного треда — открой тред и выполни /new, чтобы перезапустить сессию агента.',
46
+ 'help.general': '*Команды в General:*\n' +
47
+ '/ls — подпапки `WORK_ROOT`\n' +
48
+ '/list — список тредов\n' +
49
+ '/status — статус всех тредов\n' +
50
+ '/quitall — завершить всех агентов\n' +
51
+ '/whoami /version — debug\n\n' +
52
+ 'Чтобы начать диалог с агентом — открой тематический тред.',
53
+ 'help.thread_unbound': '*Тред не привязан к папке.*\n' +
54
+ '/bind <subdir> — привязать (или выбери в списке)\n' +
55
+ '/ls — подпапки `WORK_ROOT` (в General)',
56
+ 'help.thread_bound': '*Тред привязан к `{subdir}`.*\n' +
57
+ '/claude /opencode — старт агента\n' +
58
+ '/terminal — открыть shell в этой папке\n' +
59
+ '/new — перезапустить сессию (старая → /sessions)\n' +
60
+ '/model /sessions — переключение\n' +
61
+ '/effort — уровень reasoning effort\n' +
62
+ '/verbosity — детализация вывода и что показывает топик (поток / ответы)\n' +
63
+ '/quit /status /output — контроль\n' +
64
+ '/compact — сжать контекст агента\n' +
65
+ '/compact_on_idle — авто-сжатие после простоя (переключатель)\n' +
66
+ '/limits — что делать при лимите использования (запасные модели, переключение, ожидание)\n' +
67
+ '/accounts — аккаунты Claude и провайдеры OpenCode (выбор, добавить, войти заново, удалить, подключить, отключить)\n' +
68
+ '/clear — удалить сообщения треда\n' +
69
+ '/c /y /n /enter /up /down /tab /esc — TUI-команды (Claude)\n' +
70
+ '/bind — управление binding',
71
+ 'doctor.header': '🔍 *Charness Doctor*',
72
+ 'doctor.ok': '✅ {label}',
73
+ 'doctor.warn': '⚠️ {label} — {hint}',
74
+ 'doctor.fail': '❌ {label} — {hint}',
75
+ 'doctor.bot_admin': 'Бот — админ группы',
76
+ 'doctor.can_manage_topics': 'Право `can_manage_topics`',
77
+ 'doctor.can_delete_messages': 'Право `can_delete_messages`',
78
+ 'doctor.can_pin_messages': 'Право `can_pin_messages`',
79
+ 'doctor.privacy_off': 'Privacy mode выключен',
80
+ 'doctor.privacy_hint': '@BotFather → /setprivacy → Disable, потом удали и добавь бота заново',
81
+ 'doctor.workroot_subdirs': '`WORK_ROOT`: `{workRoot}` ({count} подпапок)',
82
+ 'doctor.datadir_path': '`DATA_DIR`: `{dataDir}`',
83
+ 'doctor.claude_installed': 'claude CLI установлен',
84
+ 'doctor.opencode_installed': 'opencode CLI установлен',
85
+ 'doctor.state_valid': 'state.json валиден ({bindings} bindings, {active} активных)',
86
+ 'doctor.state_archived': 'Прошлый state.json был повреждён, архив: {path}',
87
+ 'doctor.cli_missing': 'не найдено в PATH (auto-install сработает при /claude или /opencode)',
88
+ 'doctor.no_admin_info': 'не могу прочитать права бота — getChatMember failed',
89
+ 'onboarding.welcome': '👋 *Charness 2.0*\n\n' +
90
+ 'Готовность к работе:\n' +
91
+ '1️⃣ Сделай меня админом группы с правами:\n' +
92
+ ' • Manage Topics, Delete Messages, Pin Messages\n' +
93
+ '2️⃣ @BotFather → /setprivacy → Disable, потом удали и добавь бота заново\n' +
94
+ '3️⃣ Запусти /doctor — увижу проблемы сразу\n' +
95
+ '4️⃣ В каждом тематическом треде сделай /bind <subdir> и запусти агента\n\n' +
96
+ '`WORK_ROOT`: `{workRoot}`',
97
+ 'binding.welcome.header': '📁 Привязано к `{subdir}`',
98
+ 'binding.welcome.claude_md': '• CLAUDE.md: {size}',
99
+ 'binding.welcome.mcp_json': '• `.mcp.json`: {count} серверов',
100
+ 'binding.welcome.git': '• git: ветка `{branch}`{detail}',
101
+ 'binding.welcome.git_clean': ', чисто',
102
+ 'binding.welcome.git_dirty': ', изменения не закоммичены',
103
+ 'binding.welcome.git_none': '• git: не инициализирован',
104
+ 'binding.welcome.start_prompt': 'Начни диалог:',
105
+ 'mcp.header': '🔌 *MCP-серверы для этого треда:*',
106
+ 'mcp.row': '• `{name}` — {source}',
107
+ 'mcp.empty': '🔌 MCP-серверы не настроены.',
108
+ 'mcp.source_user': 'user (~/.claude/settings.json)',
109
+ 'mcp.source_group': 'group (`DATA_DIR`/mcp.json)',
110
+ 'mcp.source_project': 'project (`{workDir}/.mcp.json`)',
111
+ 'mcp.source_thread': 'thread (`DATA_DIR`/threads/...)',
112
+ 'doctor.pin_hint': 'Pinned-статус треда (Этап 7) будет недоступен',
113
+ 'whoami.report': '👤 user: `{userId}`\n💬 chat: `{chatId}`\n🧵 thread: `{threadId}`\n' +
114
+ '🔐 allowed: {allowed}\n📁 binding: {binding}',
115
+ 'whoami.binding_unbound': '(нет привязки)',
116
+ 'pair.success': '✅ Группа привязана. id: `{groupId}`. Бот готов к работе в этой супергруппе.',
117
+ 'pair.locked': 'ℹ️ id группы задан через `ALLOWED_GROUP_ID` — авто-привязка отключена. ' +
118
+ 'Чтобы сменить группу, измени переменную и перезапусти бота.',
119
+ 'pair.only_forum': '❌ /pair работает только в forum-супергруппе (включи Topics).',
120
+ 'pair.not_admin': '❌ Привязать бота может только администратор или создатель группы.',
121
+ 'pair.not_paired': 'группа ещё не привязана (режим pairing)',
122
+ 'pair.dm': 'ℹ️ /pair не нужен в режиме DM — бот работает в твоём личном чате.',
123
+ 'version.report': '*Charness {bot}*\n' +
124
+ 'Node: {node}\n' +
125
+ 'tmux: {tmux}\n' +
126
+ 'claude: {claude}\n' +
127
+ 'opencode: {opencode}',
128
+ 'version.unknown': '(недоступно)',
129
+ 'status.global_header': '📊 *Все треды* ({total}):',
130
+ 'status.global_row': '• `{key}` → `{subdir}` · {agent} · {status}',
131
+ 'status.global_empty': '📊 Тредов пока нет.',
132
+ 'status.thread_report': 'Статус:\n\nАгент: {agent}\nПапка: {subdir}\nСессия: {session}',
133
+ 'status.thread_view': 'Вид: {view}',
134
+ 'status.thread_account': 'Аккаунт: {account}',
135
+ 'status.thread_account_limited': ' · ⛔ на лимите до {until}',
136
+ 'status.thread_account_pending': 'Ожидает переключения: {account} — применится, когда закончится ход агента или при следующем запуске',
137
+ 'status.thread_model': 'Модель: {model}',
138
+ 'status.thread_effort': 'Усилие: {effort}',
139
+ 'status.thread_started': 'Запущено: {started}',
140
+ 'status.thread_running': 'работает',
141
+ 'status.thread_stopped': 'остановлена',
142
+ 'status.thread_sleeping': 'спит — продолжится со следующим сообщением',
143
+ 'status.thread_no_agent': 'нет (запустите /claude или /opencode)',
144
+ 'status.thread_no_binding': '(нет привязки — WORK_ROOT)',
145
+ 'status.thread_workdir': 'Рабочая папка: {workDir}',
146
+ 'status.thread_runtime_version': 'Версия среды: {version}',
147
+ 'status.thread_context': 'Контекст: {used} / {limit} токенов',
148
+ 'language.status': '🌐 Язык: {display}',
149
+ 'language.set_success': '✅ Язык для этого чата: `{locale}`.',
150
+ 'language.auto_success': '✅ Автовыбор языка включён. Сейчас: {display}.',
151
+ 'language.invalid': '⚠️ Локаль `{locale}` не поддерживается. Доступно: {locales}.',
152
+ 'timezone.status': '🌍 Часовой пояс: {zone} — сейчас {now}',
153
+ 'timezone.usage': 'Использование: /timezone <зона IANA> · /timezone +04:00 · /timezone auto\nИли отправь /timezone без аргумента, чтобы выбрать из списка.',
154
+ 'timezone.set_success': '✅ Часовой пояс: {zone} — сейчас {now}\nРасписаний пересчитано: {count}',
155
+ 'timezone.auto_success': '✅ Часовой пояс сброшен на зону хоста: {zone} — сейчас {now}\nРасписаний пересчитано: {count}',
156
+ 'timezone.invalid': '⚠️ Неизвестный часовой пояс `{zone}`. Укажи имя IANA (например, `Europe/Moscow`) или фиксированное смещение (например, `+04:00`). Отправь /timezone, чтобы выбрать из списка.',
157
+ 'timezone.offset_unsupported': '⚠️ Смещение `{zone}` применить нельзя — работают только смещения, кратные целому часу. Укажи имя зоны IANA (например, `Asia/Kolkata` для +05:30).',
158
+ 'timezone.fixed_offset_warning': '⚠️ Фиксированное смещение не учитывает переход на летнее время — полгода оно будет ошибаться на час.',
159
+ 'timezone.picker_regions': '🌍 Часовой пояс: {zone}\nСейчас: {now}\n\nВыбери регион:',
160
+ 'timezone.picker_zones': '🌍 {region} — страница {page}/{total}',
161
+ 'timezone.picker_expired': 'Этот список устарел — отправь /timezone ещё раз.',
162
+ 'agent.ready': '{label} готов в `{subdir}`{argsSuffix}\n{infoBlock}Отправь сообщение:',
163
+ 'agent.ready_model': '🧠 Модель: {model}',
164
+ 'agent.no_session': 'Агент не запущен. /claude или /opencode — старт.',
165
+ 'agent.session_ended': '{label}: сессия завершена',
166
+ 'agent.stopped': '{label} остановлен',
167
+ 'agent.sleeping_released': 'Спящая сессия освобождена — следующее сообщение начнёт новую.',
168
+ 'agent.resume_failed_fresh': '⚠️ Не удалось возобновить предыдущий разговор — запущена новая сессия.',
169
+ 'agent.exit_signal_sent': 'Послан двойной Ctrl+C — {label} завершает работу',
170
+ 'agent.already_active': '{label} уже работает в этом треде. Отправь сообщение или /quit.',
171
+ 'agent.starting': 'Запускаю {label} в `{subdir}`…',
172
+ 'agent.queued_starting': '⏳ {label} ещё запускается — сообщение в очереди, отправлю как только будет готов.',
173
+ 'agent.question_hint': 'ℹ️ Ответь цифрой варианта (например 1) или y/n. Также: /up /down — выбор, /enter — подтвердить, /c — отмена.',
174
+ 'agent.start_failed': 'Не удалось запустить {label}: {error}',
175
+ 'agent.no_response': '⚠️ Агент принял запрос, но так и не начал отвечать — возможно, сессия зависла. Отправьте ещё раз или /new для новой сессии.',
176
+ 'agent.session_restarting': '⚠️ Агент не ответил — сессия зависла. Перезапускаю её и повторяю запрос…',
177
+ 'agent.session_recovering': '⚠️ Агент не ответил — восстанавливаю (диалог сохранён) и повторяю запрос…',
178
+ 'agent.question_cancelled_for_prompt': '⚠️ Предыдущий вопрос отменён — выполняю новый запрос.',
179
+ 'agent.question_cancelled_msg_label': '❌ Вопрос отменён: {header}',
180
+ 'agent.login_code_relayed': '🔐 Код входа передан в Claude — сообщение с токеном удалено из истории.',
181
+ 'agent.login_url': '🔐 Чтобы войти в Claude, откройте эту ссылку, завершите вход и вставьте код сюда:\n{url}',
182
+ 'agent.login_success': '✅ Вход в Claude выполнен.',
183
+ 'agent.login_failed': '⚠️ Не удалось войти в Claude. Наберите /login, чтобы повторить.',
184
+ 'login.esc_hint': '/esc — отмена',
185
+ 'login.waiting_code': '⏳ Жду код входа — пришлите код из ссылки для входа следующим сообщением.',
186
+ 'login.cancelled': '✖ Вход отменён. Сообщения снова идут агенту.',
187
+ 'agent.workingIndicator': '{glyph} работаю…',
188
+ 'terminal.ready': '🖥 Терминал готов в `{subdir}`{argsSuffix}\nЛюбое сообщение выполнится как команда. /c — Ctrl+C, /up /down — история, /tab — автодополнение, /quit — закрыть.',
189
+ 'effort.choose': '⚙️ Текущий effort: {current}\nВыбери уровень:',
190
+ 'effort.current_none': 'не задан',
191
+ 'effort.set_success': '✅ Effort: {level}',
192
+ 'effort.current_hint': '⚙️ Effort: {effort}\nИзменить — /effort',
193
+ 'effort.invalid_level': '⚠️ Уровень `{level}` недопустим. Доступные: {valid}.',
194
+ 'effort.not_available': 'ℹ️ Для текущей модели уровни reasoning effort недоступны.',
195
+ 'effort.not_supported': 'ℹ️ Модель `{model}` не поддерживает уровни reasoning effort.',
196
+ 'effort.start_agent_first': 'ℹ️ Уровень сохранён. Агент не запущен — применю при следующем старте.',
197
+ 'effort.cleared_on_model_switch': 'ℹ️ Effort `{level}` сброшен: новая модель `{model}` его не поддерживает.',
198
+ 'effort.unsupported_backend': 'Управление effort не поддерживается для {label}.',
199
+ 'effort.no_session': 'Агент не запущен. Сначала /claude или /opencode.',
200
+ 'thinking.live': '•••',
201
+ 'thinking.thoughtForSeconds': '💭 думал {seconds} с',
202
+ 'thinking.choose': '☁️ Текущий режим размышлений: {current}\nВыбери режим:',
203
+ 'thinking.set_success': '✅ Режим размышлений: {mode}',
204
+ 'thinking.invalid_mode': '⚠️ Режим `{mode}` недопустим. Доступные: {valid}.',
205
+ 'thinking.mode.minimal': 'минимум',
206
+ 'thinking.mode.short': 'кратко',
207
+ 'thinking.mode.full': 'подробно',
208
+ 'toolResults.choose': '🔧 Текущий режим результатов инструментов: {current}\nВыбери режим:',
209
+ 'toolResults.set_success': '✅ Режим результатов инструментов: {mode}',
210
+ 'toolResults.invalid_mode': '⚠️ Режим `{mode}` недопустим. Доступные: {valid}.',
211
+ 'toolResults.mode.minimal': 'минимум',
212
+ 'toolResults.mode.short': 'кратко',
213
+ 'toolResults.mode.full': 'подробно',
214
+ 'toolResults.truncated_footer': '… (обрезано, /tool_results full)',
215
+ 'toolResults.activity_status': '🔧 {tool} …',
216
+ 'toolResults.activity_fallback': 'инструмент',
217
+ 'subagent.status_elapsed': '🤖 суб-агент: {title} · {elapsed}',
218
+ 'subagent.panel_fold_status': '🤖 суб-агент работает …',
219
+ 'subagent.delegating_status': '🤖 Делегирую: {title} …',
220
+ 'subagent.chunk_prefix': '🤖 ⤷',
221
+ 'subagent.fallback_title': 'суб-агент',
222
+ 'subagent.choose': '🤖 Текущий режим суб-агентов: {current}\nВыбери режим:',
223
+ 'subagent.set_success': '✅ Режим суб-агентов: {mode}',
224
+ 'subagent.invalid_mode': '⚠️ Режим `{mode}` недопустим. Доступные: {valid}.',
225
+ 'subagent.mode.minimal': 'минимум',
226
+ 'subagent.mode.short': 'кратко',
227
+ 'subagent.mode.full': 'подробно',
228
+ 'verbosity.choose': '🔊 Вывод — детализация: {current} · вид: {view}\nРяд 1 — детализация потока · Ряд 2 — что показывает этот топик:',
229
+ 'verbosity.set_success': '✅ Детализация вывода: {mode} (размышления, инструменты, суб-агенты)',
230
+ 'verbosity.invalid_mode': '⚠️ `{mode}` недопустимо. Уровни детализации: {valid}. Виды: {views}.',
231
+ 'verbosity.custom': 'смешанный (размышления: {thinking} · инструменты: {toolResults} · суб-агенты: {subagent})',
232
+ 'verbosity.mode.minimal': 'минимум',
233
+ 'verbosity.mode.short': 'кратко',
234
+ 'verbosity.mode.full': 'подробно',
235
+ 'verbosity.view.stream': 'Только поток',
236
+ 'verbosity.view.streamAnswers': 'Поток + ответы',
237
+ 'verbosity.view.answers': 'Только ответы',
238
+ 'verbosity.view_set_success': '✅ Этот топик показывает: {view} (со следующего сообщения)',
239
+ 'model.set_success': '🧠 Модель выбрана: {model}',
240
+ 'model.saved_for_next_start': 'Модель сохранена: {model} — применится при старте агента.',
241
+ 'model.start_agent_first': 'Нет активной сессии. Сначала запусти агента.',
242
+ 'model.current_default': 'по умолчанию',
243
+ 'model.none_available': '🧠 Текущая: {current}\n\nСписок моделей пуст. Задай модель вручную: /model <provider/model>.',
244
+ 'model.invalid_number': '❌ Неверный номер. Запусти /model, чтобы увидеть список.',
245
+ 'model.pick_provider': '🧠 Текущая: {current}\n\nВыбери провайдера:',
246
+ 'model.all_hidden': '🧠 Текущая: {current}\n\nВсе провайдеры скрыты. Нажми 👁, чтобы вернуть один из них.',
247
+ 'model.hidden_header': '🙈 Скрыто из этого списка — нажми 👁, чтобы вернуть.',
248
+ 'model.provider_button': '📦 {provider} ({count})',
249
+ 'model.hidden_provider_button': '🙈 {provider} ({count})',
250
+ 'model.hide_button': '🙈',
251
+ 'model.show_button': '👁',
252
+ 'model.back_button': '⬅️ провайдеры',
253
+ 'model.recent_button': '🕘 Недавние ({count})',
254
+ 'model.recent_header': '🧠 Недавние — моделей: {count}\nТекущая: {current}',
255
+ 'model.prev_button': '⬅️ Назад',
256
+ 'model.next_button': 'Вперёд ➡️',
257
+ 'model.page_button': '{page}/{totalPages}',
258
+ 'model.page_header': '🧠 {provider} — моделей: {count} · страница {page}/{totalPages}\nТекущая: {current}',
259
+ 'model.page_hint': 'Ответь номером, чтобы выбрать, или /model <название> для поиска.',
260
+ 'model.page_hint_buttons_only': 'Нажми на модель, чтобы переключиться, или /model <название> для поиска.',
261
+ 'disconnect.unsupported_backend': 'Отключение провайдеров OpenCode недоступно в этой сборке.',
262
+ 'disconnect.invalid_provider': '❌ Неверный id провайдера {provider}. Пример: /disconnect openrouter',
263
+ 'disconnect.no_providers': 'Нет провайдеров для отключения.',
264
+ 'disconnect.pick_provider': 'Выбери провайдера для отключения — сохранённые учётные данные будут удалены:',
265
+ 'disconnect.provider_button': '🔌 {provider}',
266
+ 'disconnect.success': '✅ Провайдер {provider} отключён — сохранённые учётные данные удалены.',
267
+ 'disconnect.still_active_env': '⚠️ Сохранённые учётные данные {provider} удалены, но провайдер всё ещё активен: OpenCode включает его через переменную окружения. Убери эту переменную и перезапусти OpenCode, либо скрой провайдера в /model.',
268
+ 'disconnect.failed': '⚠️ Не удалось отключить {provider}: {reason}',
269
+ 'rename_session.usage': 'Использование: /rename_session <новое название>',
270
+ 'rename_session.start_agent_first': 'Нет активной сессии. Сначала запусти агента (/claude или /opencode).',
271
+ 'rename_session.unsupported_backend': 'Переименование сессии не поддерживается для {label}.',
272
+ 'rename_session.success': '✅ Сессия переименована: {title}',
273
+ 'rename_session.failed': '⚠️ Не удалось переименовать сессию: {reason}',
274
+ 'compact.started': '🧹 Сжимаю контекст сессии — агент продолжит с краткой выжимки.',
275
+ 'compact.done': '✅ Контекст сжат.',
276
+ 'compact.done_tokens': '✅ Контекст сжат: {pre} → {post} токенов.',
277
+ 'compact.summaryHeader': '📄 Выжимка после сжатия:',
278
+ 'compact.start_agent_first': 'Нет активной сессии. Сначала запусти агента (/claude или /opencode).',
279
+ 'compact.unsupported_backend': 'Сжатие контекста не поддерживается для {label}.',
280
+ 'compact.model_unresolved': '⚠️ Нельзя сжать: для этой сессии не определена модель. Выбери её через /model и попробуй снова.',
281
+ 'compact.failed': '⚠️ Не удалось сжать контекст сессии: {reason}',
282
+ 'compact.busy': '⚠️ Агент сейчас занят — запусти /compact снова, когда текущий ход завершится.',
283
+ 'compact.closingSectionInstruction': 'After the summary, append a final section wrapped EXACTLY between a line containing only {startMarker} and a line containing only {endMarker}. Inside that section, write IN RUSSIAN: (1) one or two terse sentences on what we were doing and the immediate next step; (2) if you asked the user a question that is still unanswered, restate that question and list its answer options. Write nothing after {endMarker}.',
284
+ 'compactOnIdle.notice': '🧹 Контекст автоматически сжат при простое, чтобы сэкономить токены за счёт кэша.\n/compact_on_idle — отключить или показывать выжимку.',
285
+ 'compactOnIdle.on': 'ВКЛ',
286
+ 'compactOnIdle.off': 'ВЫКЛ',
287
+ 'compactOnIdle.title': '🧹 Авто-сжатие при простое для этого топика: {state}\n{summaryLine}\n\nКогда сессия простаивает ~55 мин, её контекст сжимается автоматически, чтобы сэкономить токены (кэш промпта ещё тёплый).\n\nЧтобы переключить для ВСЕХ топиков сразу, запусти это в топике General.',
288
+ 'compactOnIdle.titleGeneral': '🧹 Авто-сжатие при простое — по умолчанию для ВСЕХ топиков: {state}\n{summaryLine}\n\nКогда сессия простаивает ~55 мин, её контекст сжимается автоматически, чтобы сэкономить токены.\n\nКаждый топик может переопределить это своим /compact_on_idle.',
289
+ 'compactOnIdle.enableButton': 'Включить',
290
+ 'compactOnIdle.disableButton': 'Выключить',
291
+ 'compactOnIdle.summaryLine': '📄 Выжимка после сжатия: {state}',
292
+ 'compactOnIdle.summaryShowButton': '📄 Показывать выжимку',
293
+ 'compactOnIdle.summaryHideButton': 'Скрывать выжимку',
294
+ 'compactOnIdle.setThisTopic': '✅ Авто-сжатие при простое: {state} для этого топика.',
295
+ 'compactOnIdle.setGlobal': '✅ Авто-сжатие при простое: {state} для ВСЕХ топиков (переопределения по топикам продолжают действовать).',
296
+ 'compactOnIdle.unsupported': 'Авто-сжатие при простое работает для активной сессии агента. Сначала запусти /claude или /opencode в привязанном топике.',
297
+ 'compactOnIdle.pendingQuestionReask': '❓ У тебя остался неотвеченный вопрос. Нажми на вариант, чтобы ответить и продолжить:',
298
+ 'compactSummary.on': 'ВКЛ',
299
+ 'compactSummary.off': 'ВЫКЛ',
300
+ 'compactSummary.title': '📄 Публиковать выжимку после сжатия в этом топике: {state}\n\nПосле сжатия полная выжимка агента пишется в топик, чтобы ты видел, что в ней осталось.\n\nЧтобы переключить сразу для ВСЕХ топиков, запусти это в топике General.',
301
+ 'compactSummary.titleGeneral': '📄 Публиковать выжимку после сжатия — по умолчанию для ВСЕХ топиков: {state}\n\nПосле сжатия полная выжимка агента пишется в топик, чтобы ты видел, что в ней осталось.\n\nКаждый топик всё равно может переопределить это своим /compact_summary.',
302
+ 'compactSummary.enableButton': 'Включить',
303
+ 'compactSummary.disableButton': 'Выключить',
304
+ 'compactSummary.setThisTopic': '✅ Выжимка после сжатия: {state} для этого топика.',
305
+ 'compactSummary.setGlobal': '✅ Выжимка после сжатия: {state} для ВСЕХ топиков (переопределения по топикам продолжают действовать).',
306
+ 'compactSummary.unsupported': 'У шелла нет контекста для сжатия, поэтому и выжимку публиковать нечего.',
307
+ 'autoContinueLimits.on': 'ВКЛ',
308
+ 'autoContinueLimits.off': 'ВЫКЛ',
309
+ 'autoContinueLimits.skipButton': '⏭ Пропустить один раз',
310
+ 'autoContinueLimits.skipDone': 'Это продолжение пропущено.',
311
+ 'autoContinueLimits.skipExpired': 'Пропускать нечего — это ожидание уже завершилось.',
312
+ 'autoContinueLimits.skippedNotice': '⏭ Пропущено: этот раз я сам продолжать не буду. Напиши, когда продолжать — авто-продолжение для этого топика остаётся включённым.',
313
+ 'autoContinueLimits.noticeHint': 'Открой /limits, чтобы пропустить это продолжение или выключить ожидание для этого топика.',
314
+ 'autoContinueLimits.setThisTopic': '✅ Авто-продолжение после лимита использования: {state} для этого топика.',
315
+ 'autoContinueLimits.setGlobal': '✅ Авто-продолжение после лимита использования: {state} для ВСЕХ топиков (переопределения по топикам продолжают действовать).',
316
+ 'autoContinueLimits.limitReachedDisabled': '🚧 Достигнут лимит использования. Ожидание сброса для этого топика выключено, поэтому я жду — напиши, когда продолжать (/limits, чтобы включить ожидание).',
317
+ 'connect.prompt_key': '🔑 Пришли API key для `{provider}` следующим сообщением. Я удалю сообщение с ключом из истории.',
318
+ 'connect.empty_key': '❌ API key пустой. Пришли ключ следующим сообщением.',
319
+ 'connect.invalid_key': '❌ Это не похоже на API-ключ (есть пробелы или не-латинские символы). Пришли следующим сообщением только сам ключ или запусти /connect заново.',
320
+ 'connect.invalid_provider': '❌ Некорректный provider id `{provider}`. Например: /connect openai',
321
+ 'connect.unsupported_provider': '⚠️ Provider `{provider}` не поддерживает простой API-key вход через этот flow. Используй OpenCode UI/CLI для этого provider.',
322
+ 'connect.unsupported_backend': 'OpenCode provider auth недоступен в этом билде.',
323
+ 'connect.failed': '⚠️ Не удалось подключить `{provider}`: {reason}',
324
+ 'connect.success': '✅ Provider `{provider}` подключён. OpenCode server не перезапускался.',
325
+ 'connect.cancelled': 'Ввод API key отменён.',
326
+ 'connect.pick_method': 'Как подключить `{provider}`? Выберите способ:',
327
+ 'connect.no_methods': '⚠️ Для `{provider}` не найдено способов авторизации.',
328
+ 'connect.oauth_device': '🔓 Чтобы подключить `{provider}`: откройте {url} и введите код `{code}`, затем подтвердите вход. На сервере выбирайте *headless*-способ. Сообщу здесь, когда будет готово.',
329
+ 'connect.oauth_url_only': '🔓 Чтобы подключить `{provider}`: откройте {url} и завершите вход. Сообщу здесь, когда будет готово.',
330
+ 'connect.oauth_paste': '🔑 После подтверждения пришлите код следующим сообщением — я удалю его из истории.',
331
+ 'connect.oauth_waiting': '⏳ Ожидаю авторизацию…',
332
+ 'connect.oauth_loopback': '🔑 После подтверждения браузер попробует открыть страницу `localhost`, которая не загрузится — это нормально. Скопируй этот URL из адресной строки и пришли следующим сообщением (или только значение `code`). Я удалю его из истории и завершу вход.',
333
+ 'connect.oauth_invalid_reply': '❌ Это не похоже ни на callback-URL, ни на код авторизации. После подтверждения пришли `localhost`-callback URL из браузера (или значение `code`).',
334
+ 'connect.oauth_callback_no_flow': '⚠️ Похоже на OAuth callback-URL, но сейчас вход не выполняется — я его удалил. Запусти /connect, чтобы начать заново.',
335
+ 'connect.oauth_success': '✅ `{provider}` подключён через OAuth. Учётные данные сервера OpenCode обновлены.',
336
+ 'connect.oauth_failed': '⚠️ Вход через OAuth для `{provider}` не завершён. Запустите /connect ещё раз.',
337
+ 'quit_all.none_active': 'Нет активных агентов — нечего останавливать.',
338
+ 'quit_all.summary': '🚪 Завершено {stopped} из {total} активных агентов.',
339
+ 'quit_all.general_only': 'Команда `/quit-all` доступна только в General-топике.',
340
+ 'clearMessages.summary': '🗑 Удалено {deleted} сообщений из {total}. ' +
341
+ 'Telegram не отдаёт ничего старше 48 ч — остальные останутся в истории.',
342
+ 'clearMessages.no_messages': 'Нет сообщений для удаления в этом треде.',
343
+ 'edited.hint': '✏️ Редактирование сообщений я не вижу как новый ввод — отправь правку отдельным сообщением.',
344
+ 'voice.no_api_key': 'Для голоса нужен `GROQ_API_KEY` (бесплатно) или `OPENAI_API_KEY`.',
345
+ 'voice.failed': 'Не удалось распознать голосовое.',
346
+ 'voice.retrying': '⚠️ Не удалось распознать голосовое ({error}). Повторю через {seconds} с…',
347
+ 'voice.transcribed': '🎤 {text}',
348
+ 'file.too_big': '📎 Файл больше лимита Bot API ({cap} МБ) — скачать его я не могу. Пришли файл поменьше.',
349
+ 'file.download_failed': '📎 Не удалось скачать файл. Попробуй ещё раз.',
350
+ 'error.workdir.gone': '📁 Папка `{subdir}` исчезла с диска. Сделай /bind <newdir>.',
351
+ 'error.tg.thread.deleted': '⚠️ Тред удалён в Telegram, binding очищен.',
352
+ 'error.tg.thread.closed': '🔒 Тред {key} закрыт — переоткрой его в клиенте Telegram, или удали полностью.',
353
+ 'error.tg.perm.delete': '🔐 Не могу удалить сообщения. Выдай право `can_delete_messages` админу бота.',
354
+ 'error.tg.perm.manage_topics': '🔐 Не хватает прав `can_manage_topics`. Сделай меня админом группы.',
355
+ 'error.state.corrupted': '⚠️ state.json был повреждён, привязки пересозданы. Повтори /bind где нужно.',
356
+ 'error.start_in_general': 'Запускать агента в General нельзя — это служебный топик. Открой тематический тред.',
357
+ 'cb.access_denied': 'Доступ запрещён',
358
+ 'cb.bind_only_topical': '/bind работает только в тематических тредах',
359
+ 'cb.binding_to': 'Привязываю к {subdir}…',
360
+ 'cb.no_active_session': 'Нет активной сессии',
361
+ 'cb.model_error': 'Ошибка: {error}',
362
+ 'cb.model_set': 'Модель: {model}',
363
+ 'cb.model_provider_gone': 'Провайдера больше нет — запусти /model заново',
364
+ 'cb.model_recent_gone': 'Этой модели больше нет в недавних — запусти /model заново',
365
+ 'cb.model_hidden': 'Скрыт: {provider}',
366
+ 'cb.model_shown': 'Показан: {provider}',
367
+ 'cb.disconnect_expired': 'Это меню отключения устарело — запусти /disconnect заново',
368
+ 'cb.not_supported': 'Не поддерживается для {label}',
369
+ 'cb.unknown_agent': 'Неизвестный агент',
370
+ 'cb.agent_switched': 'Переключено на {label}',
371
+ 'cb.resume_only_topical': 'Resume работает только в тематических тредах',
372
+ 'cb.bind_folder_first': 'Сначала привяжи папку через /bind',
373
+ 'cb.agent_not_running': 'Агент не запущен',
374
+ 'cb.no_pending_question': 'Нет ожидающего вопроса',
375
+ 'cb.connect_method_expired': 'Меню подключения устарело — запустите /connect снова',
376
+ 'cb.invalid_option': 'Некорректный вариант',
377
+ 'cb.sent_option': 'Отправлено: {option}',
378
+ 'cb.effort_set': 'Effort: {level}',
379
+ 'cb.effort_error': 'Ошибка: {error}',
380
+ 'cb.claudeMode_already': 'Уже активно',
381
+ 'cb.claudeMode_switching': 'Переключаю…',
382
+ 'claudeMode.pick': '⚙️ Режим Claude Code — сейчас: {label}\nВыбери бэкенд (переключение сохраняет тот же диалог):',
383
+ 'claudeMode.not_claude': 'Этот топик не на Claude Code — /claude_mode переключает только бэкенд Claude.',
384
+ 'claudeMode.already': 'Уже {label}.',
385
+ 'claudeMode.set_idle': '⚙️ Бэкенд Claude: {label} — применится при следующем старте.',
386
+ 'claudeMode.switched_resumed': '⚙️ Переключено на {label} — тот же диалог продолжен.',
387
+ 'claudeMode.switched_fresh': '⚙️ Переключено на {label} — начата свежая сессия.',
388
+ 'claudeMode.perTurn_refused': '⚠️ Per-turn требует Claude Code {min} или новее — этот разговор последний раз шёл на {version}. Бэкенд не изменён.',
389
+ 'cb.thinking_set': 'Размышления: {mode}',
390
+ 'cb.thinking_error': 'Ошибка: {error}',
391
+ 'cb.toolresults_set': 'Результаты инструментов: {mode}',
392
+ 'cb.toolresults_error': 'Ошибка: {error}',
393
+ 'cb.subagent_set': 'Суб-агенты: {mode}',
394
+ 'cb.subagent_error': 'Ошибка: {error}',
395
+ 'cb.verbosity_set': 'Детализация вывода: {mode}',
396
+ 'cb.verbosity_error': 'Ошибка: {error}',
397
+ 'cb.view_set': 'Этот топик показывает: {view}',
398
+ 'session.list_header': 'Сессии для возобновления ({label}):',
399
+ 'session.list_footer': 'Отправьте 1–{max} чтобы возобновить · 0 для выхода',
400
+ 'session.none': 'Нет сессий для возобновления в этой папке.',
401
+ 'session.cancelled': 'Отменено. Выбор сессии закрыт.',
402
+ 'session.invalid': 'Неверный номер. Введите число от 1 до {max}.',
403
+ 'session.resumed': 'Сессия возобновлена. Отправьте сообщение:',
404
+ 'session.resume_failed': 'Не удалось возобновить сессию: {error}',
405
+ 'session.expired': 'Список сессий устарел. Запустите /sessions заново.',
406
+ 'session.load_failed': 'Не удалось загрузить список сессий.',
407
+ 'resume.context_header': '↩️ Возобновлено — последние {count} сообщений:',
408
+ 'resume.context_user_label': '👤',
409
+ 'resume.context_assistant_label': '🤖',
410
+ 'recap.missedCountHeader': '⚠️ Пока бот был недоступен, пропущено сообщений: {count}. Последнее из сессии:',
411
+ 'recap.restartedFallbackHeader': '🔄 Бот перезапущен. Последнее из сессии:',
412
+ 'recap.stillWorkingLine': '⏳ Агент всё ещё работает…',
413
+ 'trace.onThisThreadReply': '🔎 Трейс включён для этого треда.',
414
+ 'trace.offThisThreadReply': '🔎 Трейс выключен для этого треда.',
415
+ 'trace.onAllThreadsReply': '🔎 Трейс включён для ВСЕХ тредов.',
416
+ 'trace.offAllThreadsReply': '🔎 Трейс выключен везде (флаг «all» и список тредов очищены).',
417
+ 'trace.statusReply': '🔎 Трейс — этот тред: {thisThread}\nВсе треды: {allThreads}\nТредов в трейсе: {count}',
418
+ 'trace.statusOnLabel': 'вкл',
419
+ 'trace.statusOffLabel': 'выкл',
420
+ 'trace.usageHint': 'Использование: /trace on | off | on all | off all | (без аргумента — статус)',
421
+ 'timestamps.onReply': '🕐 Метки времени включены: каждый промпт агенту получает время отправки первой строкой (в топик не постится).',
422
+ 'timestamps.offReply': '🕐 Метки времени выключены для этого треда.',
423
+ 'timestamps.statusOnReply': '🕐 Метки времени: вкл для этого треда.',
424
+ 'timestamps.statusOffReply': '🕐 Метки времени: выкл для этого треда.',
425
+ 'timestamps.usageHint': 'Использование: /timestamps on | off | (без аргумента — статус)',
426
+ 'schedule.fired': '⏰ Расписание «{name}» ({schedule}){missedNote}\n\n{prompt}',
427
+ 'schedule.missedNote': ' — пропущено в {time}, догоняю',
428
+ 'schedule.checkFailed': '🚨 Проверка «{name}» не прошла: {failure} ({schedule}){missedNote}\n$ {command}\n\n{output}\n\nБужу агента. Новых тревог не будет, пока проверка снова не пройдёт.',
429
+ 'schedule.checkRecovered': '✅ Проверка «{name}» снова проходит.',
430
+ 'schedule.pausedUnbound': '⏸ Расписаний на паузе: {count} — топик отвязан от папки. /bind вернёт их в строй.',
431
+ 'schedule.resumedRebind': '▶️ Расписаний возобновлено: {count} (следующий запуск пересчитан от текущего момента).',
432
+ 'schedule.noAgent': '⚠️ Ничего не запланировано — в этой теме не запущен ни один агент, поэтому запланированному запуску нечего будет запустить. Сначала запустите /claude или /opencode.',
433
+ 'schedule.currentTimeNote': 'Current time is {now} in timezone {zone}. Resolve every relative time phrasing ("tomorrow", "in 2 hours", "9am") against THAT clock — the schedule fires in the same timezone.',
434
+ 'schedule.forwardPromptTemplate': 'The user wants to schedule the following. Use the schedule_create / schedule_list / schedule_cancel MCP tools (cron for repeats, one-shot for a single run), translating any time phrasing into the right schedule, then confirm to the user IN RUSSIAN what you scheduled.\n\n{timeNote}\n\nRequest: {text}',
435
+ 'schedule.interviewPromptTemplate': 'The user invoked /schedule with no details. Ask them IN RUSSIAN what prompt they want scheduled and WHEN (one-time or repeating). Once you have both, create it with the schedule_create MCP tool and confirm IN RUSSIAN what you scheduled.\n\n{timeNote}',
436
+ // ── /reminders (bot-local reminders: buttons only, no agent involved) ──
437
+ 'reminders.fired': '🔔 {text}\n\n📅 {schedule}{missedNote}',
438
+ 'reminders.scheduleDaily': 'каждый день в {time}',
439
+ 'reminders.scheduleWeekdays': 'по будням в {time}',
440
+ 'reminders.scheduleWeekly': '{weekday} в {time}',
441
+ 'reminders.scheduleMonthly': '{dayOfMonth}-го числа в {time}',
442
+ 'reminders.scheduleOnce': '{date} в {time}',
443
+ 'reminders.scheduleRaw': 'cron {text}',
444
+ 'reminders.nextRunToday': 'сегодня в {time}',
445
+ 'reminders.nextRunTomorrow': 'завтра в {time}',
446
+ 'reminders.nextRunOnDate': '{date} в {time}',
447
+ 'reminders.nextRunNone': '—',
448
+ 'reminders.hubTitle': '🔔 Напоминания',
449
+ 'reminders.hubEmptyLine': 'Напоминаний пока нет.',
450
+ 'reminders.hubActiveLine': 'Активных: {count}',
451
+ 'reminders.hubLimitLine': 'Активных: {count} — достигнут лимит {limit}. Удали одно, чтобы добавить новое.',
452
+ 'reminders.addButton': '➕ Добавить',
453
+ 'reminders.listButton': '📋 Список ({count})',
454
+ 'reminders.closeButton': '✕ Закрыть',
455
+ 'reminders.closedNotice': '🔔 Напоминания закрыты.',
456
+ 'reminders.listTitle': '📋 Напоминания ({count})',
457
+ 'reminders.listPageLine': 'Страница {page} из {total}',
458
+ 'reminders.listRow': '🔔 {name} · {schedule}',
459
+ 'reminders.listPrevButton': '‹ Пред.',
460
+ 'reminders.listNextButton': 'След. ›',
461
+ 'reminders.listBackToHubButton': '‹ Назад',
462
+ 'reminders.cardTitle': '🔔 {name}',
463
+ 'reminders.cardWhen': 'Когда: {schedule}',
464
+ 'reminders.cardText': 'Текст: «{text}»',
465
+ 'reminders.cardNext': 'Дальше: {next}',
466
+ 'reminders.cardDeleteButton': '🗑 Удалить',
467
+ 'reminders.cardBackToListButton': '‹ К списку',
468
+ 'reminders.createdTitle': '✅ Напоминание создано',
469
+ 'reminders.doneListButton': '📋 Список',
470
+ 'reminders.wizardTitle': '🔔 Новое напоминание',
471
+ 'reminders.pickRepeat': 'Повтор: {value}',
472
+ 'reminders.pickDate': 'Дата: {value}',
473
+ 'reminders.pickWeekday': 'День недели: {value}',
474
+ 'reminders.pickDayOfMonth': 'День месяца: {value}',
475
+ 'reminders.pickTime': 'Время: {value}',
476
+ 'reminders.pickText': 'Текст: «{value}»',
477
+ 'reminders.stepRepeatQuestion': 'ШАГ 1/4 · Как часто?',
478
+ 'reminders.stepDateQuestion': 'ШАГ 2/4 · Какой день?',
479
+ 'reminders.stepDateGridQuestion': 'ШАГ 2/4 · Выбери дату:',
480
+ 'reminders.stepWeekdayQuestion': 'ШАГ 2/4 · Какой день недели?',
481
+ 'reminders.stepDayOfMonthQuestion': 'ШАГ 2/4 · Какое число месяца?',
482
+ 'reminders.stepDayOfMonthGridQuestion': 'ШАГ 2/4 · Выбери число месяца:',
483
+ 'reminders.stepTimeQuestion': 'ШАГ 3/4 · В какое время?',
484
+ 'reminders.stepHourQuestion': 'ШАГ 3/4 · Выбери час:',
485
+ 'reminders.stepMinuteQuestion': 'ШАГ 3/4 · {hour}:__ — выбери минуты:',
486
+ 'reminders.stepTextQuestion': 'ШАГ 4/4 · Отправь текст напоминания — напиши его или запиши голосовое.',
487
+ 'reminders.repeatOnceButton': 'Один раз',
488
+ 'reminders.repeatDailyButton': 'Каждый день',
489
+ 'reminders.repeatWeekdaysButton': 'Будни',
490
+ 'reminders.repeatWeeklyButton': 'Еженедельно',
491
+ 'reminders.repeatMonthlyButton': 'Ежемесячно',
492
+ 'reminders.dateTodayButton': 'Сегодня',
493
+ 'reminders.dateTomorrowButton': 'Завтра',
494
+ 'reminders.dateOtherButton': '✏️ Другая дата…',
495
+ 'reminders.dayOfMonthOtherButton': '✏️ Другое число…',
496
+ 'reminders.timeOtherButton': '🕐 Другое время',
497
+ 'reminders.backButton': '‹ Назад',
498
+ 'reminders.cancelButton': '✕ Отмена',
499
+ 'reminders.weekdayMondayButton': 'Пн',
500
+ 'reminders.weekdayTuesdayButton': 'Вт',
501
+ 'reminders.weekdayWednesdayButton': 'Ср',
502
+ 'reminders.weekdayThursdayButton': 'Чт',
503
+ 'reminders.weekdayFridayButton': 'Пт',
504
+ 'reminders.weekdaySaturdayButton': 'Сб',
505
+ 'reminders.weekdaySundayButton': 'Вс',
506
+ 'reminders.errorPastTime': '⚠️ Это время уже прошло. Выбери время позже или вернись и поменяй день.',
507
+ 'reminders.errorInvalidDate': '⚠️ Такой даты не существует. Выбери другую.',
508
+ 'reminders.errorInvalidTime': '⚠️ Такого времени в этот день нет — переход на другое время. Выбери другое время.',
509
+ 'reminders.errorTextTooLong': '⚠️ Текст слишком длинный (максимум {limit} символов) и НЕ сохранён. Отправь короче.',
510
+ 'reminders.cancelledNotice': '✕ Отменено',
511
+ 'reminders.expiredNotice': '✕ Истекло — текст напоминания так и не пришёл.',
512
+ 'reminders.capReachedNotice': '⚠️ В этой теме уже {limit} напоминаний — удали одно, прежде чем добавить новое.',
513
+ 'reminders.wizardExpiredCbAnswer': 'Этот мастер устарел — запусти /reminders заново.',
514
+ 'reminders.deletedCbAnswer': '🗑 Удалено',
515
+ 'reminders.deleteGoneCbAnswer': 'Уже удалено.',
516
+ 'reminders.cardExpiredCbAnswer': 'Этого напоминания больше нет.',
517
+ 'apiRetry.transientNotice': '⏳ API перегружен (rate limit) — повторю автоматически через {minutes} мин (попытка {attempt}).',
518
+ 'apiRetry.openCodeRetryNotice': '⏳ Ошибка провайдера — OpenCode повторит через {minutes} мин (попытка {attempt}){detail}',
519
+ 'apiRetry.usageLimitDelayNotice': '🚧 Лимит исчерпан — повторю через {minutes} мин (попытка {attempt}).',
520
+ 'apiRetry.usageLimitResetNotice': '🚧 Лимит исчерпан — продолжу автоматически после сброса (~{time}).',
521
+ 'apiRetry.resuming': '↻ Продолжаю…',
522
+ 'apiRetry.limitResetResuming': '✅ Окно лимита сброшено — продолжаю работу в этом топике.',
523
+ 'apiRetry.giveUp': '⚠️ Не смог возобновить после {attempts} попыток. Напиши, когда продолжить.',
524
+ 'apiRetry.continueNudge': 'Продолжай с того места, где ты остановился.',
525
+ 'apiRetry.loggedOutClaude': '⚠️ Claude разлогинен — отправь /login, чтобы продолжить.',
526
+ 'apiRetry.loggedOutOpenCode': '⚠️ OpenCode: неверные учётные данные — перезапусти opencode-сервер.',
527
+ // ── startup readiness status (boot-time owner notice) ──
528
+ 'startup.ready': '✅ Готов — я могу обрабатывать сообщения в тредах бота и темах группы.',
529
+ 'startup.header_not_ready': '⚠️ Настройка не завершена. Чтобы начать работу со мной, выполните эти шаги:',
530
+ 'startup.item.create_group': 'Создайте форум-супергруппу с включёнными темами (Topics) и отправьте мне там сообщение, чтобы привязать её.',
531
+ 'startup.item.grant_admin': 'Сделайте меня админом с правами: {missing}.',
532
+ 'startup.item.bind_topic': 'Создайте тему и привяжите её к папке командой /bind.',
533
+ 'startup.item.install_agent': 'Установите агентский CLI — claude или opencode.',
534
+ 'startup.item.optional_groq': '(необязательно) Добавьте GROQ_API_KEY в .env и перезапустите, чтобы включить голосовой ввод.',
535
+ 'startup.item.optional_owner': '(необязательно) Задайте OWNER_USER_ID, чтобы получать этот статус в личном чате.',
536
+ 'requests.alert.notAnsweringNotice': '⚠️ Запрос {requestId} остался без ответа: агент завершал ходы, не отвечая, и напоминания прекращены. Проверьте сессию в этой теме.',
537
+ 'requests.alert.unreachableNotice': '⚠️ Запрос {requestId} остался без ответа: до сессии агента не удалось достучаться с напоминанием. Проверьте сессию в этой теме.',
538
+ 'requests.limit.answerAfterResetNotice': '🚧 Достигнут лимит использования — ответ будет после {time}.',
539
+ 'requests.limit.answerNextAttemptNotice': '🚧 Достигнут лимит использования — следующая попытка в {time}.',
540
+ 'requests.limit.answerAutoResumeOffNotice': '🚧 Достигнут лимит использования. Автопродолжение выключено — работа подождёт, пока оператор её не возобновит.',
541
+ 'account.title': '👤 Аккаунт Claude для этого топика: {name}\n\n{list}\n\nНажмите профиль, чтобы переключить на него этот топик. В топике General выбор становится значением по умолчанию для всех топиков.',
542
+ 'account.titleGeneral': '👤 Аккаунт Claude — по умолчанию для ВСЕХ топиков: {name}\n\n{list}\n\nНажмите профиль, чтобы сделать его значением по умолчанию. Топики со своим выбором сохраняют его.',
543
+ 'account.row.loggedOut': 'не выполнен вход',
544
+ 'account.row.topics': ' · топиков: {count}',
545
+ 'account.kind.personal': 'личный {plan}',
546
+ 'account.kind.corporate': 'корпоративный {plan}',
547
+ 'account.kind.unknown': 'план {plan}',
548
+ 'account.removeButton': '🗑 Удалить',
549
+ 'account.backButton': '⬅️ Назад',
550
+ 'account.followButton': '↩ Как по умолчанию ({name})',
551
+ 'account.pickLogin': '🔑 В какой профиль войти заново?',
552
+ 'account.pickRemove': '🗑 Какой профиль удалить? Его вход удаляется; топики, выбравшие его, возвращаются к значению по умолчанию.',
553
+ 'account.nothingToRemove': 'Добавленных профилей для удаления нет.',
554
+ 'account.confirmRemove': '🗑 Удалить профиль {name} ({email})? Его вход удаляется, а топиков, выбравших его ({count}), вернутся к значению по умолчанию.',
555
+ 'account.confirmRemoveButton': '🗑 Да, удалить {name}',
556
+ 'account.removed': '✅ Профиль {name} удалён. Топиков, перешедших на значение по умолчанию: {count}.',
557
+ 'account.removeInstanceDefaultRefused': '{name} — профиль по умолчанию для всех топиков. Сначала выберите другой в топике General.',
558
+ 'account.unknown': '❌ Профиля {name} нет. Список — /accounts.',
559
+ 'account.notLoggedIn': '⚠️ В профиль {name} не выполнен вход. Сначала /accounts login {name}.',
560
+ 'account.askName': '➕ Имя нового профиля — строчные латинские буквы, цифры, - и _, до {max} символов (например, work). Отправьте его следующим сообщением или выполните /accounts add <имя>.',
561
+ 'account.invalidName': '❌ Имя профиля — строчные латинские буквы, цифры, - и _, до {max} символов, и не "default".',
562
+ 'account.exists': 'Профиль {name} уже существует.',
563
+ 'account.created': '✅ Профиль {name} создан. Запускаю вход…',
564
+ 'account.createFailed': '⚠️ Не удалось создать каталог профиля {name}. Смотрите лог бота.',
565
+ 'account.login_url': '🔐 Вход в Claude для профиля {name}. Откройте ссылку в браузере, где выполнен вход в ТОТ аккаунт — окно инкогнито или другой профиль браузера не даст подхватить текущий вход, — завершите вход и пришлите код сюда:\n{url}',
566
+ 'account.login_success': '✅ Профиль {name}: выполнен вход как {email} ({plan}).',
567
+ 'account.login_failed': '⚠️ Вход в профиль {name} не удался. Повторить: /accounts login {name}.',
568
+ 'account.setThisTopic': '✅ Аккаунт Claude для этого топика: {name}.{apply}',
569
+ 'account.setGlobal': '✅ Аккаунт Claude по умолчанию для ВСЕХ топиков: {name}. Топики со своим выбором сохраняют его; остальные переключаются сейчас или при следующем запуске.',
570
+ 'account.followSet': '✅ Этот топик использует аккаунт Claude по умолчанию ({name}).{apply}',
571
+ 'account.usage': 'Использование: /accounts — выбор; /accounts add <имя>; /accounts use <имя>; /accounts login <имя>; /accounts remove <имя>; /accounts autoswitch on|off.',
572
+ 'account.applied.inactive': ' Применится при следующем запуске или возобновлении сессии.',
573
+ 'account.applied.unchanged': '',
574
+ 'account.applied.respawned': ' Запущенная сессия перезапущена под ним — тот же разговор.',
575
+ 'account.applied.deferred': ' Агент работает; переключение применится по окончании хода.',
576
+ 'account.applied.restartRequired': ' Агент работает; переключение применится при следующем запуске или возобновлении.',
577
+ 'account.askNameCancelled': '✖ Добавление аккаунта отменено. Сообщения снова идут агенту.',
578
+ 'account.row.usage': ' ⏱ 5ч {session} · неделя {weekly}{fable}',
579
+ 'account.row.usageFable': ' · Fable {fable}',
580
+ 'account.row.usageStale': ' (устарело)',
581
+ 'account.row.limited': ' ⛔ на лимите до {until}',
582
+ 'account.usageHint': 'Использование: % окна израсходовано, затем когда сбросится (🔄 через 2ч = через два часа).',
583
+ 'account.autoSwitchHint': 'Что делать при лимите использования — переключиться на запасную модель или дождаться сброса — настраивается в /limits.',
584
+ 'fallback.backendClaude': 'Claude',
585
+ 'fallback.backendOpenCode': 'OpenCode',
586
+ 'fallback.topicModel': 'модель топика',
587
+ 'fallback.topicModelButton': 'оставить модель топика',
588
+ 'fallback.noAgent': 'нет агента',
589
+ 'fallback.addButton': '➕ Добавить',
590
+ 'fallback.clearButton': '🗑 Очистить',
591
+ 'fallback.backButton': '⬅️ Назад',
592
+ 'fallback.nothingDetected': 'Нечего добавить: не найдено ни аккаунта Claude с выполненным входом, ни провайдера OpenCode. Сначала войдите через /accounts.',
593
+ 'fallback.pickAccount': '➕ Выберите аккаунт или провайдера:',
594
+ 'fallback.pickModel': '➕ {account} — выберите модель:',
595
+ 'fallback.full': 'В списке не больше {max} моделей.',
596
+ 'fallback.alreadyInChain': 'Уже в списке: {label}',
597
+ 'fallback.added': '✅ Добавлено: {label}',
598
+ 'fallback.proposeNothing': 'Нечего предложить: не найдено ни аккаунта Claude с выполненным входом, ни провайдера OpenCode.',
599
+ 'fallback.proposed': '🔄 Список запасных моделей заполнен из подключённого: записей — {count}. Переставьте или удалите их кнопками.',
600
+ 'fallback.cleared': '🗑 Список запасных моделей пуст.',
601
+ 'fallback.stale': 'Список изменился после этой клавиатуры — она перерисована.',
602
+ 'fallback.moved': 'Перемещено.',
603
+ 'fallback.removed': '🗑 Удалено: {label}',
604
+ 'fallback.proposeConfirmButton': '✨ Да, заменить',
605
+ 'fallback.switchExpired': 'Этот лимит уже прошёл — переключать нечего.',
606
+ 'fallback.switchButton': '🔁 Переключить на {label}',
607
+ 'fallback.switchOffer': '🪜 Есть запасная модель с запасом — нажмите, чтобы перевести топик на неё и продолжить сейчас.',
608
+ 'fallback.switched': '🔁 Лимит на {from} — топик переключён на {to} и продолжает работу.{reset}',
609
+ 'fallback.backgroundStopped': 'Фоновые задачи, которые ещё работали, остановлены переключением.',
610
+ 'fallback.switchedReset': ' {from} сбросится в {time}; топик остаётся на {to}, пока вы не переключите его обратно (/accounts, /model, /claude, /opencode).',
611
+ 'fallback.switchedDeferred': '🔁 Лимит на {from} — агент ещё работает, поэтому топик переключится на {to} по окончании хода; до тех пор ожидание остаётся.',
612
+ 'fallback.switchFailed': '⚠️ Переключение на {to} не удалось: {error}. Ожидание сброса остаётся.',
613
+ 'limits.usageHeading': 'Лимиты (% израсходовано)',
614
+ 'limits.topicRuns': 'Работает на: {current}',
615
+ 'limits.settingsGeneral': 'По умолчанию для всех топиков.',
616
+ 'limits.sourceGeneral': 'как в General',
617
+ 'limits.sourceTopic': 'задано для этого топика',
618
+ 'limits.sourceLine': '🔁 {switch} · ⏳ {wait}',
619
+ 'limits.switchButton': '🔁 Автопереключение: {state}',
620
+ 'limits.waitButton': '⏳ Ждать сброса: {state}',
621
+ 'limits.switchMenuTitle': '🔁 Автопереключение на запасную модель',
622
+ 'limits.waitMenuTitle': '⏳ Дождаться сброса и продолжить',
623
+ 'limits.settingSameButton': 'Как в General ({state})',
624
+ 'limits.rebuildButton': '🔄 Заполнить из подключённых',
625
+ 'limits.rebuildConfirm': '🔄 Заменить список новым, собранным из подключённого? Модели с 🚫 останутся исключёнными.',
626
+ 'limits.entryEnabled': '✅ Участвует в автопереключении: {label}',
627
+ 'limits.entryDisabled': '🚫 Исключено из автопереключения: {label}',
628
+ 'limits.setThisTopic': '✅ {what}: {state} для этого топика.',
629
+ 'limits.setGlobal': '✅ {what}: {state} для ВСЕХ топиков (переопределения в топиках сохраняются).',
630
+ 'limits.setSame': '✅ {what}: этот топик следует General ({state}).',
631
+ 'limits.whatSwitch': 'Автопереключение на запасную модель',
632
+ 'limits.whatWait': 'Дождаться сброса и продолжить',
633
+ 'limits.usage': 'Использование: /limits — экран; /limits rebuild; /limits clear; /limits switch on|off|same; /limits wait on|off|same («same» — следовать General, в топике).',
634
+ 'accounts.openCodeSection': '🔌 Провайдеры OpenCode (подключены):\n{list}',
635
+ 'accounts.openCodeNone': '🔌 Провайдеры OpenCode: пока ни один не подключён. Кнопка «➕ Провайдер OpenCode» подключает.',
636
+ 'accounts.buttonsHint': 'Нажмите на аккаунт, чтобы переключить на него этот топик (в General — значение по умолчанию для всех). 🔑 — войти в аккаунт или провайдера заново, 🗑 — удалить аккаунт (default разлогинивается), 🔌 — отключить провайдера.',
637
+ 'accounts.addClaudeButton': '➕ Аккаунт Claude',
638
+ 'accounts.addProviderButton': '➕ Провайдер OpenCode',
639
+ 'accounts.askProvider': '➕ Какой провайдер OpenCode? Отправь его id следующим сообщением (например, openai или openrouter).',
640
+ 'accounts.stale': 'Этот экран устарел — он обновлён.',
641
+ 'accounts.confirmDisconnect': '🔌 Отключить {provider}? Сохранённые учётные данные будут удалены.',
642
+ 'accounts.confirmDisconnectButton': '🔌 Да, отключить {provider}',
643
+ 'limits.listNote': '🪜 Запасные модели, сверху вниз:',
644
+ 'limits.listNoteEmpty': '🪜 Запасных моделей пока нет — пробуются только аккаунты Claude с выполненным входом. ➕ Добавить или 🔄 Заполнить из подключённых.',
645
+ 'apiRetry.usageLimitResetOnRungNotice': '🚧 Лимит исчерпан — все запасные модели в лимите. Топик продолжит на {model} после её сброса (~{time}).',
646
+ 'requests.limit.answerAfterResetOnRungNotice': '🚧 Достигнут лимит использования — ответ будет после {time}, на {model}.',
647
+ 'usage.resetIn': '🔄 через {time}',
648
+ 'usage.unitDay': 'д',
649
+ 'usage.unitHour': 'ч',
650
+ 'usage.unitMinute': 'м',
651
+ 'accounts.disconnectButton': '🔌 Отключить {provider}',
652
+ 'accounts.defaultRemovedNote': 'Аккаунт default (~/.claude) разлогинен и скрыт. Войти в него снова: /accounts login default.',
653
+ 'account.confirmRemoveDefault': '🗑 Удалить аккаунт default ({email})? Сохранённый вход в ~/.claude будет удалён: работающие на нём сессии перестанут работать, а топикам на нём понадобится другой аккаунт. Переписка, настройки, навыки и память остаются. Он останется скрытым, пока вы снова не войдёте в него.',
654
+ 'account.removedDefault': '✅ Аккаунт default разлогинен и скрыт. Сессии на нём будут падать, пока вы не выберете другой аккаунт или не войдёте снова (/accounts login default).',
655
+ 'account.removeDefaultFailed': '⚠️ Не удалось разлогинить аккаунт default. Смотрите лог бота.',
656
+ 'limits.rungTitle': '🪜 {n} из {total}: {label}',
657
+ 'limits.rungReady': '✅ Доступна.',
658
+ 'limits.rungLimited': '⛔ В лимите до {until}.',
659
+ 'limits.rungSignedOut': '🔒 Вход не выполнен.',
660
+ 'limits.rungMissing': '❓ Больше не предлагается.',
661
+ 'limits.rungDisabled': '🚫 Исключена из автопереключения.',
662
+ 'limits.rungHere': '✓ Топик работает на ней.',
663
+ 'limits.btnUp': '⬆️ Выше',
664
+ 'limits.btnDown': '⬇️ Ниже',
665
+ 'limits.btnUse': '✅ Использовать',
666
+ 'limits.btnDontUse': '🚫 Не использовать',
667
+ };
668
+ //# sourceMappingURL=ru.js.map