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,665 @@
1
+ "use strict";
2
+ // Machine-translated from en. Native review welcome.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.zhDict = void 0;
5
+ exports.zhDict = {
6
+ 'access.denied': '访问被拒绝。',
7
+ 'access.group_only': '我只在配置的论坛超级群组中工作。',
8
+ 'thread.no_binding': '📁 该话题未绑定文件夹。使用 /bind <subdir> 或从列表中选择。',
9
+ 'thread.bind_required': '📁 请先绑定文件夹:/bind <subdir>。代理仅在已绑定的文件夹中运行。',
10
+ 'thread.bound': '📁 已绑定到 `{subdir}`。\n运行 /claude 或 /opencode。',
11
+ 'thread.unbound': '📁 绑定已解除。',
12
+ 'thread.general_no_agent': 'General 未绑定文件夹 — 切换到主题话题与代理对话。',
13
+ 'thread.welcome_bound': '👋 话题已创建并自动绑定到 `{subdir}`(话题名匹配了子文件夹)。\n运行 /claude 或 /opencode。',
14
+ 'thread.welcome_pick': '👋 话题已创建。绑定文件夹:/bind <subdir>,或从下方列表选择。',
15
+ 'thread.bind_collision': '⚠️ 文件夹 `{subdir}` 已被以下话题使用:{threads}。\n绑定已添加;会话保持独立(各自的 tmux/SSE)。',
16
+ 'thread.no_agent_with_binding': '📁 文件夹 `{subdir}` 已绑定。运行 /claude 或 /opencode 开始对话。',
17
+ 'bind.usage': '用法:/bind <subdir>\n示例:/bind overview',
18
+ 'bind.current': '📂 当前绑定:`{subdir}`',
19
+ 'bind.current_none': '📂 尚未绑定',
20
+ 'bind.in_general': '/bind 仅在主题话题中有效,不在 General 中。',
21
+ 'bind.invalid_chars': '❌ 文件夹名不得包含控制字符。',
22
+ 'bind.not_found': '❌ 在 `WORK_ROOT` (`{workRoot}`) 下未找到文件夹 `{subdir}`。',
23
+ 'bind.outside_root': '❌ 路径超出 `WORK_ROOT`。',
24
+ 'bind.not_directory': '❌ `{subdir}` 存在,但不是文件夹。',
25
+ 'bind.leave_button': '⬅️ 离开当前目录',
26
+ 'bind.create_button': '➕ 创建新文件夹',
27
+ 'bind.create_prompt': '✏️ 发送新文件夹名称(将在 `WORK_ROOT` 下创建)。任何命令都会取消。',
28
+ 'bind.create_cb': '正在创建新文件夹…',
29
+ 'bind.create_empty': '❌ 名称为空。请发送文件夹名称。',
30
+ 'bind.create_separator': '❌ 名称不得包含 `/` 或 `\\`。请发送简单名称。',
31
+ 'bind.create_dot_segment': '❌ `.` 和 `..` 不能用作文件夹名。',
32
+ 'bind.create_hidden': '❌ 名称不得以点开头。',
33
+ 'bind.create_invalid_chars': '❌ 文件夹名不得包含控制字符。',
34
+ 'bind.create_exists': '📁 文件夹 `{subdir}` 已存在 — 正在绑定。',
35
+ 'bind.create_failed': '❌ 创建文件夹失败:{error}',
36
+ 'ls.header': '📁 `{workRoot}` 的子文件夹:',
37
+ 'ls.empty': '📁 `WORK_ROOT` 下没有可绑定的子文件夹。',
38
+ 'list.header': '🧵 话题绑定({count}):',
39
+ 'list.empty': '🧵 暂无绑定。创建话题并运行 /bind。',
40
+ 'list.row': '• {threadId}: `{subdir}` · {agent} · {status}',
41
+ 'list.row_closed': '• {threadId}: `{subdir}` · {agent} · 🔒 closed',
42
+ 'new.general_hint': '/new 在已绑定的话题内使用 — 打开话题并运行 /new 以重启其代理会话。',
43
+ 'help.general': '*General 中的命令:*\n' +
44
+ '/ls — 列出 `WORK_ROOT` 子文件夹\n' +
45
+ '/list — 列出话题\n' +
46
+ '/status — 所有话题的状态\n' +
47
+ '/quitall — 退出所有运行中的代理\n' +
48
+ '/whoami /version — 调试\n\n' +
49
+ '要与代理对话 — 打开一个主题话题。',
50
+ 'help.thread_unbound': '*话题未绑定文件夹。*\n' +
51
+ '/bind <subdir> — 绑定(或从列表选择)\n' +
52
+ '/ls — `WORK_ROOT` 子文件夹(在 General 中)',
53
+ 'help.thread_bound': '*话题已绑定到 `{subdir}`。*\n' +
54
+ '/claude /opencode — 启动代理\n' +
55
+ '/terminal — 在此文件夹中打开 shell\n' +
56
+ '/new — 重启会话(旧的 → /sessions)\n' +
57
+ '/model /sessions — 切换\n' +
58
+ '/effort — reasoning effort 级别\n' +
59
+ '/verbosity — 输出详细度及话题显示的内容(流 / 回答)\n' +
60
+ '/quit /status /output — 控制\n' +
61
+ '/compact — 压缩代理上下文\n' +
62
+ '/compact_on_idle — 空闲后自动压缩(开关)\n' +
63
+ '/limits — 遇到用量上限时的处理(备用模型、切换、等待)\n' +
64
+ '/accounts — Claude 账号与 OpenCode provider(选择、添加、重新登录、删除、连接、断开)\n' +
65
+ '/clear — 删除话题消息\n' +
66
+ '/c /y /n /enter /up /down /tab /esc — TUI 按键(Claude)\n' +
67
+ '/bind — 管理绑定',
68
+ 'doctor.header': '🔍 *Charness Doctor*',
69
+ 'doctor.ok': '✅ {label}',
70
+ 'doctor.warn': '⚠️ {label} — {hint}',
71
+ 'doctor.fail': '❌ {label} — {hint}',
72
+ 'doctor.bot_admin': 'Bot 是群组管理员',
73
+ 'doctor.can_manage_topics': '`can_manage_topics` 已授予',
74
+ 'doctor.can_delete_messages': '`can_delete_messages` 已授予',
75
+ 'doctor.can_pin_messages': '`can_pin_messages` 已授予',
76
+ 'doctor.privacy_off': 'Privacy mode 已禁用',
77
+ 'doctor.privacy_hint': '@BotFather → /setprivacy → Disable,然后移除并重新添加 bot',
78
+ 'doctor.workroot_subdirs': '`WORK_ROOT`:`{workRoot}`({count} 个子文件夹)',
79
+ 'doctor.datadir_path': '`DATA_DIR`:`{dataDir}`',
80
+ 'doctor.claude_installed': 'claude CLI 已安装',
81
+ 'doctor.opencode_installed': 'opencode CLI 已安装',
82
+ 'doctor.state_valid': 'state.json 有效({bindings} 个绑定,{active} 个活跃)',
83
+ 'doctor.state_archived': '之前的 state.json 已损坏,归档:{path}',
84
+ 'doctor.cli_missing': '在 PATH 中未找到(自动安装将在 /claude 或 /opencode 时运行)',
85
+ 'doctor.no_admin_info': '无法读取 bot 权限 — getChatMember 失败',
86
+ 'onboarding.welcome': '👋 *Charness 2.0*\n\n' +
87
+ '就绪清单:\n' +
88
+ '1️⃣ 将我设为群组管理员,权限包括:\n' +
89
+ ' • Manage Topics, Delete Messages, Pin Messages\n' +
90
+ '2️⃣ @BotFather → /setprivacy → Disable,然后移除并重新添加我\n' +
91
+ '3️⃣ 运行 /doctor 查看缺少什么\n' +
92
+ '4️⃣ 在每个主题话题中运行 /bind <subdir> 并启动代理\n\n' +
93
+ '`WORK_ROOT`:`{workRoot}`',
94
+ 'binding.welcome.header': '📁 已绑定到 `{subdir}`',
95
+ 'binding.welcome.claude_md': '• CLAUDE.md: {size}',
96
+ 'binding.welcome.mcp_json': '• `.mcp.json`: {count} 个服务器',
97
+ 'binding.welcome.git': '• git: 分支 `{branch}`{detail}',
98
+ 'binding.welcome.git_clean': ', 干净',
99
+ 'binding.welcome.git_dirty': ', 有未提交的更改',
100
+ 'binding.welcome.git_none': '• git: 未初始化',
101
+ 'binding.welcome.start_prompt': '开始对话:',
102
+ 'mcp.header': '🔌 *此话题的 MCP 服务器:*',
103
+ 'mcp.row': '• `{name}` — {source}',
104
+ 'mcp.empty': '🔌 未配置 MCP 服务器。',
105
+ 'mcp.source_user': 'user (~/.claude/settings.json)',
106
+ 'mcp.source_group': 'group (`DATA_DIR`/mcp.json)',
107
+ 'mcp.source_project': 'project (`{workDir}/.mcp.json`)',
108
+ 'mcp.source_thread': 'thread (`DATA_DIR`/threads/...)',
109
+ 'doctor.pin_hint': '话题的置顶状态(Stage 7)将不可用',
110
+ 'whoami.report': '👤 user: `{userId}`\n💬 chat: `{chatId}`\n🧵 thread: `{threadId}`\n' +
111
+ '🔐 allowed: {allowed}\n📁 binding: {binding}',
112
+ 'whoami.binding_unbound': '(无绑定)',
113
+ 'pair.success': '✅ 群组已配对。id: `{groupId}`。Bot 现在为此超级群组服务。',
114
+ 'pair.locked': 'ℹ️ 群组 id 通过 `ALLOWED_GROUP_ID` 设置 — 自动配对已禁用。 ' +
115
+ '要切换群组,请更改变量并重启 bot。',
116
+ 'pair.only_forum': '❌ /pair 仅在论坛超级群组中有效(启用 Topics)。',
117
+ 'pair.not_admin': '❌ 只有群组管理员或创建者才能配对 bot。',
118
+ 'pair.not_paired': '群组尚未配对(配对模式)',
119
+ 'pair.dm': "ℹ️ DM 模式下不需要 /pair — bot 服务于你的私聊。",
120
+ 'version.report': '*Charness {bot}*\n' +
121
+ 'Node: {node}\n' +
122
+ 'tmux: {tmux}\n' +
123
+ 'claude: {claude}\n' +
124
+ 'opencode: {opencode}',
125
+ 'version.unknown': '(不可用)',
126
+ 'status.global_header': '📊 *所有话题*({total}):',
127
+ 'status.global_row': '• `{key}` → `{subdir}` · {agent} · {status}',
128
+ 'status.global_empty': '📊 暂无话题。',
129
+ 'status.thread_report': '状态:\n\n代理:{agent}\n文件夹:{subdir}\n会话:{session}',
130
+ 'status.thread_view': '视图:{view}',
131
+ 'status.thread_account': '账号:{account}',
132
+ 'status.thread_account_limited': ' · ⛔ 已达上限,直到 {until}',
133
+ 'status.thread_account_pending': '待切换:{account} — 在代理本轮结束或下次启动时生效',
134
+ 'status.thread_model': '模型:{model}',
135
+ 'status.thread_effort': '推理强度:{effort}',
136
+ 'status.thread_started': '启动时间:{started}',
137
+ 'status.thread_running': '运行中',
138
+ 'status.thread_stopped': '已停止',
139
+ 'status.thread_sleeping': '休眠中——下一条消息时恢复',
140
+ 'status.thread_no_agent': '无(启动 /claude 或 /opencode)',
141
+ 'status.thread_no_binding': '(无绑定 — WORK_ROOT)',
142
+ 'status.thread_workdir': '工作目录:{workDir}',
143
+ 'status.thread_runtime_version': '运行版本:{version}',
144
+ 'status.thread_context': '上下文:{used} / {limit} 个 token',
145
+ 'language.status': '🌐 语言:{display}',
146
+ 'language.set_success': '✅ 此聊天的语言已设为 `{locale}`。',
147
+ 'language.auto_success': '✅ 语言已重置为自动。当前:{display}。',
148
+ 'language.invalid': '⚠️ 不支持 locale `{locale}`。可用:{locales}。',
149
+ 'timezone.status': '🌍 时区:{zone} — 当前 {now}',
150
+ 'timezone.usage': '用法:/timezone <IANA 时区> · /timezone +04:00 · /timezone auto\n或直接发送 /timezone(不带参数)从列表中选择。',
151
+ 'timezone.set_success': '✅ 时区:{zone} — 当前 {now}\n已重新计算的计划任务:{count}',
152
+ 'timezone.auto_success': '✅ 时区已重置为主机时区:{zone} — 当前 {now}\n已重新计算的计划任务:{count}',
153
+ 'timezone.invalid': '⚠️ 未知时区 `{zone}`。请使用 IANA 名称(如 `Europe/Moscow`)或固定偏移(如 `+04:00`)。发送 /timezone 可从列表中选择。',
154
+ 'timezone.offset_unsupported': '⚠️ 偏移 `{zone}` 无法生效——只有整小时偏移可用。请改用所在时区的 IANA 名称(例如 +05:30 对应 `Asia/Kolkata`)。',
155
+ 'timezone.fixed_offset_warning': '⚠️ 固定偏移不跟随夏令时——半年内会相差一小时。',
156
+ 'timezone.picker_regions': '🌍 时区:{zone}\n当前:{now}\n\n请选择区域:',
157
+ 'timezone.picker_zones': '🌍 {region} — 第 {page}/{total} 页',
158
+ 'timezone.picker_expired': '该列表已过期——请重新发送 /timezone。',
159
+ 'agent.ready': '{label} 已就绪,在 `{subdir}`{argsSuffix}\n{infoBlock}发送消息:',
160
+ 'agent.ready_model': '🧠 模型:{model}',
161
+ 'agent.no_session': '没有运行中的代理。运行 /claude 或 /opencode 启动。',
162
+ 'agent.session_ended': '{label}:会话已结束',
163
+ 'agent.stopped': '{label} 已停止',
164
+ 'agent.sleeping_released': '休眠会话已释放——下一条消息将开始新的会话。',
165
+ 'agent.resume_failed_fresh': '⚠️ 无法恢复之前的对话——已启动新的会话。',
166
+ 'agent.exit_signal_sent': '已发送两次 Ctrl+C — {label} 正在退出',
167
+ 'agent.already_active': '{label} 已在此运行。发送消息或 /quit。',
168
+ 'agent.starting': '正在 `{subdir}` 中启动 {label}…',
169
+ 'agent.queued_starting': '⏳ {label} 仍在启动中 — 你的消息已排队,就绪后发送。',
170
+ 'agent.question_hint': 'ℹ️ 回复选项编号(如 1)或 y/n。还有:/up /down 移动,/enter 确认,/c 取消。',
171
+ 'agent.start_failed': '启动 {label} 失败:{error}',
172
+ 'agent.no_response': '⚠️ 智能体已接收你的请求但一直没有开始回复——会话可能已卡住。请重新发送,或用 /new 开启新会话。',
173
+ 'agent.session_restarting': '⚠️ 智能体没有响应——会话似乎卡住了。正在重启并重新执行你的请求…',
174
+ 'agent.session_recovering': '⚠️ 智能体没有响应——正在恢复(保留你的对话)并重新执行你的请求…',
175
+ 'agent.question_cancelled_for_prompt': '⚠️ 上一个问题已取消 — 正在执行你的新请求。',
176
+ 'agent.question_cancelled_msg_label': '❌ 问题已取消:{header}',
177
+ 'agent.login_code_relayed': '🔐 登录码已转发给 Claude — 包含 token 的消息已从历史中删除。',
178
+ 'agent.login_url': '🔐 要登录 Claude,请打开此链接,完成登录,然后把代码粘贴回这里:\n{url}',
179
+ 'agent.login_success': '✅ 已登录 Claude。',
180
+ 'agent.login_failed': '⚠️ Claude 登录失败。运行 /login 重试。',
181
+ 'login.esc_hint': '/esc 取消',
182
+ 'login.waiting_code': '⏳ 正在等待登录代码——请把登录链接中的代码作为下一条消息粘贴过来。',
183
+ 'login.cancelled': '✖ 登录已取消。消息重新发送给代理。',
184
+ 'agent.workingIndicator': '{glyph} 工作中…',
185
+ 'terminal.ready': '🖥 终端已就绪,在 `{subdir}`{argsSuffix}\n每条消息作为命令执行。/c — Ctrl+C,/up /down — 历史,/tab — 补全,/quit — 关闭。',
186
+ 'effort.choose': '⚙️ 当前 effort: {current}\n选择级别:',
187
+ 'effort.current_none': '未设置',
188
+ 'effort.set_success': '✅ Effort: {level}',
189
+ 'effort.current_hint': '⚙️ Effort:{effort}\n运行 /effort 可更改',
190
+ 'effort.invalid_level': '⚠️ 级别 `{level}` 无效。可用:{valid}。',
191
+ 'effort.not_available': 'ℹ️ 当前模型没有可用的 reasoning effort 级别。',
192
+ 'effort.not_supported': 'ℹ️ 模型 `{model}` 没有 reasoning effort 级别。',
193
+ 'effort.start_agent_first': 'ℹ️ 级别已保存。没有运行中的代理 — 下次启动时应用。',
194
+ 'effort.cleared_on_model_switch': 'ℹ️ Effort `{level}` 已清除:新模型 `{model}` 不支持它。',
195
+ 'effort.unsupported_backend': '{label} 不支持 effort 控制。',
196
+ 'effort.no_session': '没有运行中的代理。用 /claude 或 /opencode 启动。',
197
+ 'thinking.live': '•••',
198
+ 'thinking.thoughtForSeconds': '💭 思考了 {seconds} 秒',
199
+ 'thinking.choose': '☁️ 当前 thinking 模式: {current}\n选择模式:',
200
+ 'thinking.set_success': '✅ Thinking 模式: {mode}',
201
+ 'thinking.invalid_mode': '⚠️ 模式 `{mode}` 无效。可用:{valid}。',
202
+ 'thinking.mode.minimal': '最简',
203
+ 'thinking.mode.short': '简短',
204
+ 'thinking.mode.full': '完整',
205
+ 'toolResults.choose': '🔧 当前工具结果模式: {current}\n选择模式:',
206
+ 'toolResults.set_success': '✅ 工具结果模式: {mode}',
207
+ 'toolResults.invalid_mode': '⚠️ 模式 `{mode}` 无效。可用:{valid}。',
208
+ 'toolResults.mode.minimal': '最简',
209
+ 'toolResults.mode.short': '简短',
210
+ 'toolResults.mode.full': '完整',
211
+ 'toolResults.truncated_footer': '…(已截断,/tool_results full)',
212
+ 'toolResults.activity_status': '🔧 {tool} …',
213
+ 'toolResults.activity_fallback': '工具',
214
+ 'subagent.status_elapsed': '🤖 子代理: {title} · {elapsed}',
215
+ 'subagent.panel_fold_status': '🤖 子代理工作中 …',
216
+ 'subagent.delegating_status': '🤖 委派中: {title} …',
217
+ 'subagent.chunk_prefix': '🤖 ⤷',
218
+ 'subagent.fallback_title': '子代理',
219
+ 'subagent.choose': '🤖 当前子代理模式: {current}\n选择模式:',
220
+ 'subagent.set_success': '✅ 子代理模式: {mode}',
221
+ 'subagent.invalid_mode': '⚠️ 模式 `{mode}` 无效。可用:{valid}。',
222
+ 'subagent.mode.minimal': '最简',
223
+ 'subagent.mode.short': '简短',
224
+ 'subagent.mode.full': '完整',
225
+ 'verbosity.choose': '🔊 输出 — 详细度:{current} · 视图:{view}\n第 1 行 — 流的详细度 · 第 2 行 — 本话题显示的内容:',
226
+ 'verbosity.set_success': '✅ 输出详细度: {mode}(thinking、工具结果、子代理)',
227
+ 'verbosity.invalid_mode': '⚠️ `{mode}` 无效。详细度:{valid}。视图:{views}。',
228
+ 'verbosity.custom': '自定义(thinking: {thinking} · 工具: {toolResults} · 子代理: {subagent})',
229
+ 'verbosity.mode.minimal': '最简',
230
+ 'verbosity.mode.short': '简短',
231
+ 'verbosity.mode.full': '完整',
232
+ 'verbosity.view.stream': '仅流',
233
+ 'verbosity.view.streamAnswers': '流 + 回答',
234
+ 'verbosity.view.answers': '仅回答',
235
+ 'verbosity.view_set_success': '✅ 本话题显示:{view}(从下一条消息起生效)',
236
+ 'model.set_success': '🧠 模型已设为:{model}',
237
+ 'model.saved_for_next_start': '模型已保存:{model} — 下次代理启动时应用。',
238
+ 'model.start_agent_first': '没有活跃会话。请先启动代理。',
239
+ 'model.current_default': '默认',
240
+ 'model.none_available': '🧠 当前:{current}\n\n没有可用模型。请用 /model <provider/model> 手动指定。',
241
+ 'model.invalid_number': '❌ 编号无效。运行 /model 查看列表。',
242
+ 'model.pick_provider': '🧠 当前:{current}\n\n选择一个提供商:',
243
+ 'model.all_hidden': '🧠 当前:{current}\n\n所有提供商都已隐藏。点击 👁 恢复其中一个。',
244
+ 'model.hidden_header': '🙈 已从此列表隐藏 — 点击 👁 恢复。',
245
+ 'model.provider_button': '📦 {provider} ({count})',
246
+ 'model.hidden_provider_button': '🙈 {provider} ({count})',
247
+ 'model.hide_button': '🙈',
248
+ 'model.show_button': '👁',
249
+ 'model.back_button': '⬅️ 提供商',
250
+ 'model.recent_button': '🕘 最近使用 ({count})',
251
+ 'model.recent_header': '🧠 最近使用 — {count} 个模型\n当前:{current}',
252
+ 'model.prev_button': '⬅️ 上一页',
253
+ 'model.next_button': '下一页 ➡️',
254
+ 'model.page_button': '{page}/{totalPages}',
255
+ 'model.page_header': '🧠 {provider} — {count} 个模型 · 第 {page}/{totalPages} 页\n当前:{current}',
256
+ 'model.page_hint': '回复编号即可选择,或用 /model <名称> 搜索。',
257
+ 'model.page_hint_buttons_only': '点击模型即可切换,或用 /model <名称> 搜索。',
258
+ 'disconnect.unsupported_backend': '此构建不支持断开 OpenCode provider 连接。',
259
+ 'disconnect.invalid_provider': '❌ 提供商 id 无效:{provider}。示例:/disconnect openrouter',
260
+ 'disconnect.no_providers': '没有可断开的提供商。',
261
+ 'disconnect.pick_provider': '选择要断开的提供商 — 其已保存的凭据将被删除:',
262
+ 'disconnect.provider_button': '🔌 {provider}',
263
+ 'disconnect.success': '✅ 已断开提供商 {provider} — 已保存的凭据已删除。',
264
+ 'disconnect.still_active_env': '⚠️ {provider} 的已保存凭据已删除,但它仍处于启用状态:OpenCode 通过环境变量启用它。请取消该变量并重启 OpenCode,或通过 /model 将其从列表中隐藏。',
265
+ 'disconnect.failed': '⚠️ 断开 {provider} 失败:{reason}',
266
+ 'rename_session.usage': '用法:/rename_session <新标题>',
267
+ 'rename_session.start_agent_first': '没有活跃会话。请先启动代理(/claude 或 /opencode)。',
268
+ 'rename_session.unsupported_backend': '{label} 不支持会话重命名。',
269
+ 'rename_session.success': '✅ 会话已重命名:{title}',
270
+ 'rename_session.failed': '⚠️ 重命名会话失败:{reason}',
271
+ 'compact.started': '🧹 正在压缩会话上下文 — 代理将基于摘要继续。',
272
+ 'compact.done': '✅ 上下文已压缩。',
273
+ 'compact.done_tokens': '✅ 上下文已压缩:{pre} → {post} tokens。',
274
+ 'compact.summaryHeader': '📄 压缩摘要:',
275
+ 'compact.start_agent_first': '没有活跃会话。请先启动代理(/claude 或 /opencode)。',
276
+ 'compact.unsupported_backend': '{label} 不支持压缩上下文。',
277
+ 'compact.model_unresolved': '⚠️ 无法压缩:此会话未解析出模型。请用 /model 选择一个后重试。',
278
+ 'compact.failed': '⚠️ 压缩会话上下文失败:{reason}',
279
+ 'compact.busy': '⚠️ 代理正忙——请在当前回合结束后再次运行 /compact。',
280
+ '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 CHINESE: (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}.',
281
+ 'compactOnIdle.notice': '🧹 空闲时已自动压缩,借助缓存节省 token。\n/compact_on_idle — 关闭此功能或显示摘要。',
282
+ 'compactOnIdle.on': '开',
283
+ 'compactOnIdle.off': '关',
284
+ 'compactOnIdle.title': '🧹 本话题的空闲自动压缩:{state}\n{summaryLine}\n\n当会话空闲约 55 分钟时,会自动压缩其上下文以节省 token(此时提示缓存仍是热的)。\n\n要一次性切换所有话题,请在 General 话题中运行此命令。',
285
+ 'compactOnIdle.titleGeneral': '🧹 空闲自动压缩——所有话题的默认值:{state}\n{summaryLine}\n\n当会话空闲约 55 分钟时,会自动压缩其上下文以节省 token。\n\n每个话题仍可用自己的 /compact_on_idle 覆盖此设置。',
286
+ 'compactOnIdle.enableButton': '启用',
287
+ 'compactOnIdle.disableButton': '停用',
288
+ 'compactOnIdle.summaryLine': '📄 压缩后的摘要:{state}',
289
+ 'compactOnIdle.summaryShowButton': '📄 显示摘要',
290
+ 'compactOnIdle.summaryHideButton': '隐藏摘要',
291
+ 'compactOnIdle.setThisTopic': '✅ 空闲自动压缩:本话题 {state}。',
292
+ 'compactOnIdle.setGlobal': '✅ 空闲自动压缩:所有话题 {state}(各话题的覆盖设置仍然有效)。',
293
+ 'compactOnIdle.unsupported': '空闲自动压缩适用于活动的代理会话。请先在已绑定的话题中启动 /claude 或 /opencode。',
294
+ 'compactOnIdle.pendingQuestionReask': '❓ 你还有一个待回答的问题。点击一个选项来回答并继续:',
295
+ 'compactSummary.on': '开启',
296
+ 'compactSummary.off': '关闭',
297
+ 'compactSummary.title': '📄 在本话题中发布压缩摘要:{state}\n\n压缩后,代理的完整摘要会写入话题,便于你查看保留了哪些内容。\n\n要一次性为所有话题切换,请在 General 话题中运行此命令。',
298
+ 'compactSummary.titleGeneral': '📄 发布压缩摘要 — 所有话题的默认值:{state}\n\n压缩后,代理的完整摘要会写入话题,便于你查看保留了哪些内容。\n\n每个话题仍可用自己的 /compact_summary 覆盖。',
299
+ 'compactSummary.enableButton': '启用',
300
+ 'compactSummary.disableButton': '停用',
301
+ 'compactSummary.setThisTopic': '✅ 压缩摘要:本话题 {state}。',
302
+ 'compactSummary.setGlobal': '✅ 压缩摘要:所有话题 {state}(各话题的覆盖设置仍然有效)。',
303
+ 'compactSummary.unsupported': 'shell 没有可压缩的上下文,因此没有摘要可发布。',
304
+ 'autoContinueLimits.on': '开',
305
+ 'autoContinueLimits.off': '关',
306
+ 'autoContinueLimits.skipButton': '⏭ 跳过一次',
307
+ 'autoContinueLimits.skipDone': '已跳过本次继续。',
308
+ 'autoContinueLimits.skipExpired': '没有可跳过的内容——本次等待已结束。',
309
+ 'autoContinueLimits.skippedNotice': '⏭ 已跳过:本次我不会自行继续。请告诉我何时继续——本话题的自动继续仍然开启。',
310
+ 'autoContinueLimits.noticeHint': '运行 /limits 可跳过这一次继续,或为此话题关闭等待。',
311
+ 'autoContinueLimits.setThisTopic': '✅ 达到用量上限后自动继续:本话题 {state}。',
312
+ 'autoContinueLimits.setGlobal': '✅ 达到用量上限后自动继续:所有话题 {state}(各话题的覆盖设置仍然有效)。',
313
+ 'autoContinueLimits.limitReachedDisabled': '🚧 已达到用量上限。此话题已关闭等待重置,所以我会停下等待——请告诉我何时继续(/limits 可开启等待)。',
314
+ 'connect.prompt_key': '🔑 在下一条消息中发送 `{provider}` 的 API key。我会从历史中删除包含 key 的消息。',
315
+ 'connect.empty_key': '❌ API key 为空。请在下一条消息中发送 key。',
316
+ 'connect.invalid_key': '❌ 这看起来不像 API key(包含空格或非拉丁字符)。请在下一条消息中仅发送 key,或重新运行 /connect。',
317
+ 'connect.invalid_provider': '❌ 无效的 provider id `{provider}`。示例:/connect openai',
318
+ 'connect.unsupported_provider': '⚠️ Provider `{provider}` 不支持通过此流程的简单 API key 登录。请为此 provider 使用 OpenCode UI/CLI。',
319
+ 'connect.unsupported_backend': '此构建中不可用 OpenCode provider 认证。',
320
+ 'connect.failed': '⚠️ 连接 `{provider}` 失败:{reason}',
321
+ 'connect.success': '✅ Provider `{provider}` 已连接。OpenCode 服务器未重启。',
322
+ 'connect.cancelled': 'API key 输入已取消。',
323
+ 'connect.pick_method': '如何连接 `{provider}`?选择一种方式:',
324
+ 'connect.no_methods': '⚠️ 未找到 `{provider}` 的认证方式。',
325
+ 'connect.oauth_device': '🔓 连接 `{provider}`:打开 {url} 并输入代码 `{code}`,然后授权。在服务器上请使用 *headless* 方式。完成后我会在这里确认。',
326
+ 'connect.oauth_url_only': '🔓 连接 `{provider}`:打开 {url} 并完成登录。完成后我会在这里确认。',
327
+ 'connect.oauth_paste': '🔑 授权后,将代码作为下一条消息粘贴到这里 — 我会从历史中删除它。',
328
+ 'connect.oauth_waiting': '⏳ 等待授权…',
329
+ 'connect.oauth_loopback': '🔑 授权后,你的浏览器会尝试打开一个无法加载的 `localhost` 页面——这在这里是正常的。请从地址栏复制该 URL 并作为下一条消息粘贴回来(或仅粘贴 `code` 值)。我会将其从历史记录中删除并完成登录。',
330
+ 'connect.oauth_invalid_reply': '❌ 这看起来既不像回调 URL,也不像授权码。授权后,请从浏览器粘贴 `localhost` 回调 URL(或 `code` 值)。',
331
+ 'connect.oauth_callback_no_flow': '⚠️ 这看起来像是一个 OAuth 回调 URL,但这里当前没有正在进行的登录——我已将其删除。请运行 /connect 重新开始。',
332
+ 'connect.oauth_success': '✅ `{provider}` 已通过 OAuth 连接。OpenCode 服务器凭据已重新加载。',
333
+ 'connect.oauth_failed': '⚠️ `{provider}` 的 OAuth 登录未完成。请再次运行 /connect。',
334
+ 'quit_all.none_active': '没有运行中的代理 — 无需停止。',
335
+ 'quit_all.summary': '🚪 已停止 {stopped}/{total} 个活跃代理。',
336
+ 'quit_all.general_only': '`/quit-all` 仅在 General 话题中可用。',
337
+ 'clearMessages.summary': '🗑 已删除 {deleted}/{total} 条消息。 ' +
338
+ 'Telegram 拒绝删除超过 48 小时的消息 — 其余留在历史中。',
339
+ 'clearMessages.no_messages': '此话题中没有可删除的消息。',
340
+ 'edited.hint': '✏️ 我不将编辑的消息视为新输入 — 请将更正作为单独消息发送。',
341
+ 'voice.no_api_key': '语音需要 `GROQ_API_KEY`(免费)或 `OPENAI_API_KEY`。',
342
+ 'voice.failed': '语音转录失败。',
343
+ 'voice.retrying': '⚠️ 语音转录失败({error})。{seconds} 秒后重试…',
344
+ 'voice.transcribed': '🎤 {text}',
345
+ 'file.too_big': '📎 文件超过 Bot API 限制({cap} MB) — 我无法下载。请发送较小的文件。',
346
+ 'file.download_failed': '📎 下载文件失败。请重试。',
347
+ 'error.workdir.gone': '📁 文件夹 `{subdir}` 已从磁盘消失。运行 /bind <newdir>。',
348
+ 'error.tg.thread.deleted': '⚠️ 话题已在 Telegram 中删除;绑定已清除。',
349
+ 'error.tg.thread.closed': '🔒 话题 {key} 已关闭 — 在 Telegram 客户端中重新打开,或完全删除。',
350
+ 'error.tg.perm.delete': '🔐 无法删除消息。请授予 bot `can_delete_messages`。',
351
+ 'error.tg.perm.manage_topics': '🔐 缺少 `can_manage_topics`。请将我设为群组管理员。',
352
+ 'error.state.corrupted': '⚠️ state.json 已损坏;绑定已重置。在需要的地方重新运行 /bind。',
353
+ 'error.start_in_general': '不能在 General 中启动代理 — 那是服务话题。请打开主题话题。',
354
+ 'cb.access_denied': '访问被拒绝',
355
+ 'cb.bind_only_topical': '/bind 仅在主题话题中有效',
356
+ 'cb.binding_to': '正在绑定到 {subdir}…',
357
+ 'cb.no_active_session': '没有活跃会话',
358
+ 'cb.model_error': '错误:{error}',
359
+ 'cb.model_set': '模型:{model}',
360
+ 'cb.model_provider_gone': '该提供商已不存在 — 请重新运行 /model',
361
+ 'cb.model_recent_gone': '该模型已不在最近列表中 — 请重新运行 /model',
362
+ 'cb.model_hidden': '已隐藏:{provider}',
363
+ 'cb.model_shown': '已显示:{provider}',
364
+ 'cb.disconnect_expired': '此断开菜单已过期 — 请重新运行 /disconnect',
365
+ 'cb.not_supported': '{label} 不支持',
366
+ 'cb.unknown_agent': '未知代理',
367
+ 'cb.agent_switched': '已切换到 {label}',
368
+ 'cb.resume_only_topical': 'Resume 仅在主题话题中有效',
369
+ 'cb.bind_folder_first': '请先通过 /bind 绑定文件夹',
370
+ 'cb.agent_not_running': '代理未运行',
371
+ 'cb.no_pending_question': '没有待处理问题',
372
+ 'cb.connect_method_expired': '此连接菜单已过期 — 请再次运行 /connect',
373
+ 'cb.invalid_option': '无效选项',
374
+ 'cb.sent_option': '已发送:{option}',
375
+ 'cb.effort_set': 'Effort: {level}',
376
+ 'cb.effort_error': '错误:{error}',
377
+ 'cb.claudeMode_already': '已激活',
378
+ 'cb.claudeMode_switching': '切换中…',
379
+ 'claudeMode.pick': '⚙️ Claude Code 后端 — 当前: {label}\n选择后端(切换保持同一对话):',
380
+ 'claudeMode.not_claude': "此话题不在 Claude Code 上 — /claude_mode 仅切换 Claude 的后端。",
381
+ 'claudeMode.already': '已是 {label}。',
382
+ 'claudeMode.set_idle': '⚙️ Claude 后端: {label} — 下次启动时应用。',
383
+ 'claudeMode.switched_resumed': '⚙️ 已切换到 {label} — 同一对话已恢复。',
384
+ 'claudeMode.switched_fresh': '⚙️ 已切换到 {label} — 已开始新会话。',
385
+ 'claudeMode.perTurn_refused': '⚠️ Per-turn 需要 Claude Code {min} 或更新版本——此对话上次运行的是 {version}。后端未更改。',
386
+ 'cb.thinking_set': 'Thinking: {mode}',
387
+ 'cb.thinking_error': '错误:{error}',
388
+ 'cb.toolresults_set': '工具结果: {mode}',
389
+ 'cb.toolresults_error': '错误:{error}',
390
+ 'cb.subagent_set': '子代理: {mode}',
391
+ 'cb.subagent_error': '错误:{error}',
392
+ 'cb.verbosity_set': '输出详细度: {mode}',
393
+ 'cb.verbosity_error': '错误:{error}',
394
+ 'cb.view_set': '本话题显示:{view}',
395
+ 'session.list_header': '可恢复的会话({label}):',
396
+ 'session.list_footer': '发送 1–{max} 恢复 · 0 退出',
397
+ 'session.none': '此文件夹中没有可恢复的会话。',
398
+ 'session.cancelled': '已取消。会话选择器已关闭。',
399
+ 'session.invalid': '无效编号。请输入 1 到 {max} 之间的值。',
400
+ 'session.resumed': '会话已恢复。发送你的消息:',
401
+ 'session.resume_failed': '恢复会话失败:{error}',
402
+ 'session.expired': '会话列表已过期。请重新运行 /sessions。',
403
+ 'session.load_failed': '加载会话失败。',
404
+ 'resume.context_header': '↩️ 已恢复 — 最近 {count} 条消息:',
405
+ 'resume.context_user_label': '👤',
406
+ 'resume.context_assistant_label': '🤖',
407
+ 'recap.missedCountHeader': '⚠️ Bot 离线期间错过了 {count} 条消息。会话最新消息:',
408
+ 'recap.restartedFallbackHeader': '🔄 Bot 已重启。会话最新消息:',
409
+ 'recap.stillWorkingLine': '⏳ 代理仍在工作…',
410
+ 'trace.onThisThreadReply': '🔎 已为此话题启用追踪。',
411
+ 'trace.offThisThreadReply': '🔎 已为此话题禁用追踪。',
412
+ 'trace.onAllThreadsReply': '🔎 已为所有话题启用追踪。',
413
+ 'trace.offAllThreadsReply': '🔎 已在所有地方禁用追踪(«all» 标志和话题列表已清除)。',
414
+ 'trace.statusReply': '🔎 Trace — 此话题: {thisThread}\n所有话题: {allThreads}\n追踪的话题: {count}',
415
+ 'trace.statusOnLabel': '开',
416
+ 'trace.statusOffLabel': '关',
417
+ 'trace.usageHint': '用法:/trace on | off | on all | off all |(无参数 — 状态)',
418
+ 'timestamps.onReply': '🕐 时间戳已启用:每个转发给代理的 prompt 会将发送时间作为第一行(从不在话题中发布)。',
419
+ 'timestamps.offReply': '🕐 已为此话题禁用时间戳。',
420
+ 'timestamps.statusOnReply': '🕐 时间戳:此话题已开启。',
421
+ 'timestamps.statusOffReply': '🕐 时间戳:此话题已关闭。',
422
+ 'timestamps.usageHint': '用法:/timestamps on | off |(无参数 — 状态)',
423
+ 'schedule.fired': '⏰ 定时任务「{name}」({schedule}){missedNote}\n\n{prompt}',
424
+ 'schedule.missedNote': ' — 在 {time} 错过,正在追赶',
425
+ 'schedule.checkFailed': '🚨 检查「{name}」失败:{failure}({schedule}){missedNote}\n$ {command}\n\n{output}\n\n正在唤醒代理。检查再次通过之前不会再发出警报。',
426
+ 'schedule.checkRecovered': '✅ 检查「{name}」已再次通过。',
427
+ 'schedule.pausedUnbound': '⏸ 已暂停的定时任务: {count} — 话题已从文件夹解绑。/bind 将恢复它们。',
428
+ 'schedule.resumedRebind': '▶️ 已恢复的定时任务: {count}(下次运行从现在重新计算)。',
429
+ 'schedule.noAgent': '⚠️ 未创建任何计划 — 此话题中没有运行中的代理,因此计划运行将无内容可启动。请先启动 /claude 或 /opencode。',
430
+ '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.',
431
+ '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 CHINESE what you scheduled.\n\n{timeNote}\n\nRequest: {text}',
432
+ 'schedule.interviewPromptTemplate': 'The user invoked /schedule with no details. Ask them IN CHINESE 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 CHINESE what you scheduled.\n\n{timeNote}',
433
+ // ── /reminders (bot-local reminders: buttons only, no agent involved) ──
434
+ 'reminders.fired': '🔔 {text}\n\n📅 {schedule}{missedNote}',
435
+ 'reminders.scheduleDaily': '每天 {time}',
436
+ 'reminders.scheduleWeekdays': '工作日 {time}',
437
+ 'reminders.scheduleWeekly': '每{weekday} {time}',
438
+ 'reminders.scheduleMonthly': '每月 {dayOfMonth} 日 {time}',
439
+ 'reminders.scheduleOnce': '{date} {time}',
440
+ 'reminders.scheduleRaw': 'cron {text}',
441
+ 'reminders.nextRunToday': '今天 {time}',
442
+ 'reminders.nextRunTomorrow': '明天 {time}',
443
+ 'reminders.nextRunOnDate': '{date} {time}',
444
+ 'reminders.nextRunNone': '—',
445
+ 'reminders.hubTitle': '🔔 提醒',
446
+ 'reminders.hubEmptyLine': '还没有提醒。',
447
+ 'reminders.hubActiveLine': '活动中:{count}',
448
+ 'reminders.hubLimitLine': '活动中:{count} — 已达到 {limit} 条的上限。删除一条才能再添加。',
449
+ 'reminders.addButton': '➕ 添加',
450
+ 'reminders.listButton': '📋 列表({count})',
451
+ 'reminders.closeButton': '✕ 关闭',
452
+ 'reminders.closedNotice': '🔔 已关闭提醒。',
453
+ 'reminders.listTitle': '📋 提醒({count})',
454
+ 'reminders.listPageLine': '第 {page}/{total} 页',
455
+ 'reminders.listRow': '🔔 {name} · {schedule}',
456
+ 'reminders.listPrevButton': '‹ 上一页',
457
+ 'reminders.listNextButton': '下一页 ›',
458
+ 'reminders.listBackToHubButton': '‹ 返回',
459
+ 'reminders.cardTitle': '🔔 {name}',
460
+ 'reminders.cardWhen': '时间:{schedule}',
461
+ 'reminders.cardText': '内容:「{text}」',
462
+ 'reminders.cardNext': '下次:{next}',
463
+ 'reminders.cardDeleteButton': '🗑 删除',
464
+ 'reminders.cardBackToListButton': '‹ 回列表',
465
+ 'reminders.createdTitle': '✅ 提醒已创建',
466
+ 'reminders.doneListButton': '📋 列表',
467
+ 'reminders.wizardTitle': '🔔 新建提醒',
468
+ 'reminders.pickRepeat': '重复:{value}',
469
+ 'reminders.pickDate': '日期:{value}',
470
+ 'reminders.pickWeekday': '星期:{value}',
471
+ 'reminders.pickDayOfMonth': '每月几日:{value}',
472
+ 'reminders.pickTime': '时间:{value}',
473
+ 'reminders.pickText': '内容:「{value}」',
474
+ 'reminders.stepRepeatQuestion': '步骤 1/4 · 多久一次?',
475
+ 'reminders.stepDateQuestion': '步骤 2/4 · 哪一天?',
476
+ 'reminders.stepDateGridQuestion': '步骤 2/4 · 选择日期:',
477
+ 'reminders.stepWeekdayQuestion': '步骤 2/4 · 星期几?',
478
+ 'reminders.stepDayOfMonthQuestion': '步骤 2/4 · 每月几日?',
479
+ 'reminders.stepDayOfMonthGridQuestion': '步骤 2/4 · 选择每月的日期:',
480
+ 'reminders.stepTimeQuestion': '步骤 3/4 · 什么时间?',
481
+ 'reminders.stepHourQuestion': '步骤 3/4 · 选择小时:',
482
+ 'reminders.stepMinuteQuestion': '步骤 3/4 · {hour}:__ — 选择分钟:',
483
+ 'reminders.stepTextQuestion': '步骤 4/4 · 发送提醒内容 — 输入文字或录一条语音。',
484
+ 'reminders.repeatOnceButton': '一次',
485
+ 'reminders.repeatDailyButton': '每天',
486
+ 'reminders.repeatWeekdaysButton': '工作日',
487
+ 'reminders.repeatWeeklyButton': '每周',
488
+ 'reminders.repeatMonthlyButton': '每月',
489
+ 'reminders.dateTodayButton': '今天',
490
+ 'reminders.dateTomorrowButton': '明天',
491
+ 'reminders.dateOtherButton': '✏️ 其他日期…',
492
+ 'reminders.dayOfMonthOtherButton': '✏️ 其他日子…',
493
+ 'reminders.timeOtherButton': '🕐 其他时间',
494
+ 'reminders.backButton': '‹ 返回',
495
+ 'reminders.cancelButton': '✕ 取消',
496
+ 'reminders.weekdayMondayButton': '周一',
497
+ 'reminders.weekdayTuesdayButton': '周二',
498
+ 'reminders.weekdayWednesdayButton': '周三',
499
+ 'reminders.weekdayThursdayButton': '周四',
500
+ 'reminders.weekdayFridayButton': '周五',
501
+ 'reminders.weekdaySaturdayButton': '周六',
502
+ 'reminders.weekdaySundayButton': '周日',
503
+ 'reminders.errorPastTime': '⚠️ 该时间已经过去。请选择更晚的时间,或返回上一步更改日期。',
504
+ 'reminders.errorInvalidDate': '⚠️ 该日期不存在。请另选一个。',
505
+ 'reminders.errorInvalidTime': '⚠️ 那一天没有这个时刻 — 当天要调整时钟。请另选一个时间。',
506
+ 'reminders.errorTextTooLong': '⚠️ 文本太长(最多 {limit} 个字符),未保存。请发送更短的内容。',
507
+ 'reminders.cancelledNotice': '✕ 已取消',
508
+ 'reminders.expiredNotice': '✕ 已过期 — 始终没有收到提醒内容。',
509
+ 'reminders.capReachedNotice': '⚠️ 此话题已有 {limit} 条提醒 — 请先删除一条再添加。',
510
+ 'reminders.wizardExpiredCbAnswer': '此向导已过期 — 请重新运行 /reminders。',
511
+ 'reminders.deletedCbAnswer': '🗑 已删除',
512
+ 'reminders.deleteGoneCbAnswer': '已经删除了。',
513
+ 'reminders.cardExpiredCbAnswer': '该提醒已不存在。',
514
+ 'apiRetry.transientNotice': '⏳ API 速率受限 — {minutes} 分钟后自动重试(第 {attempt} 次)。',
515
+ 'apiRetry.openCodeRetryNotice': '⏳ 提供方错误 — OpenCode 将在 {minutes} 分钟后重试(第 {attempt} 次){detail}',
516
+ 'apiRetry.usageLimitDelayNotice': '🚧 用量限制已达到 — {minutes} 分钟后重试(第 {attempt} 次)。',
517
+ 'apiRetry.usageLimitResetNotice': '🚧 用量限制已达到 — 重置后自动恢复(~{time})。',
518
+ 'apiRetry.resuming': '↻ 恢复中…',
519
+ 'apiRetry.limitResetResuming': '✅ 限额窗口已重置——我继续本话题的工作。',
520
+ 'apiRetry.giveUp': '⚠️ {attempts} 次尝试后无法恢复。需要继续时给我发消息。',
521
+ 'apiRetry.continueNudge': '从你停下的地方继续。',
522
+ 'apiRetry.loggedOutClaude': '⚠️ Claude 已登出 — 运行 /login 继续。',
523
+ 'apiRetry.loggedOutOpenCode': '⚠️ OpenCode: 凭据无效 — 重启 opencode 服务器。',
524
+ // ── startup readiness status (boot-time owner notice) ──
525
+ 'startup.ready': '✅ 已就绪 — 我可以处理机器人会话和群组话题中的消息。',
526
+ 'startup.header_not_ready': '⚠️ 设置尚未完成。要开始与我协作,请完成以下步骤:',
527
+ 'startup.item.create_group': '创建一个启用了话题的论坛超级群组,然后在其中给我发送一条消息以完成配对。',
528
+ 'startup.item.grant_admin': '将我设为管理员并授予以下权限:{missing}。',
529
+ 'startup.item.bind_topic': '创建一个话题,并使用 /bind 将其绑定到一个文件夹。',
530
+ 'startup.item.install_agent': '安装一个智能体 CLI —— claude 或 opencode。',
531
+ 'startup.item.optional_groq': '(可选)将 GROQ_API_KEY 添加到你的 .env 并重启以启用语音输入。',
532
+ 'startup.item.optional_owner': '(可选)设置 OWNER_USER_ID 以在你的私聊中接收此状态。',
533
+ 'requests.alert.notAnsweringNotice': '⚠️ 请求 {requestId} 未获回复:智能体多次结束回合却未作答,提醒已停止。请检查此话题中的会话。',
534
+ 'requests.alert.unreachableNotice': '⚠️ 请求 {requestId} 未获回复:无法连接智能体的会话以发送提醒。请检查此话题中的会话。',
535
+ 'requests.limit.answerAfterResetNotice': '🚧 已达到使用限额 — 答复将在 {time} 之后给出。',
536
+ 'requests.limit.answerNextAttemptNotice': '🚧 已达到使用限额 — 下次尝试时间为 {time}。',
537
+ 'requests.limit.answerAutoResumeOffNotice': '🚧 已达到使用限额。自动恢复已关闭,工作将等待操作员恢复。',
538
+ 'account.title': '👤 此话题的 Claude 账号:{name}\n\n{list}\n\n点按一个配置以将此话题切换过去。在 General 话题中,所选将成为所有话题的默认值。',
539
+ 'account.titleGeneral': '👤 Claude 账号 — 所有话题的默认值:{name}\n\n{list}\n\n点按一个配置将其设为默认。自行选择过的话题保持不变。',
540
+ 'account.row.loggedOut': '未登录',
541
+ 'account.row.topics': ' · {count} 个话题',
542
+ 'account.kind.personal': '个人 {plan}',
543
+ 'account.kind.corporate': '企业 {plan}',
544
+ 'account.kind.unknown': '套餐 {plan}',
545
+ 'account.removeButton': '🗑 删除',
546
+ 'account.backButton': '⬅️ 返回',
547
+ 'account.followButton': '↩ 跟随默认值({name})',
548
+ 'account.pickLogin': '🔑 要重新登录哪个配置?',
549
+ 'account.pickRemove': '🗑 要删除哪个配置?其登录将被删除;选择过它的话题回到默认值。',
550
+ 'account.nothingToRemove': '没有可移除的已添加配置。',
551
+ 'account.confirmRemove': '🗑 删除配置 {name}({email})?其登录将被删除,选择过它的 {count} 个话题回到默认值。',
552
+ 'account.confirmRemoveButton': '🗑 是,删除 {name}',
553
+ 'account.removed': '✅ 配置 {name} 已删除。{count} 个话题现在跟随默认值。',
554
+ 'account.removeInstanceDefaultRefused': '{name} 是所有话题的默认值。请先在 General 话题中选择另一个默认值。',
555
+ 'account.unknown': '❌ 没有名为 {name} 的配置。运行 /accounts 查看列表。',
556
+ 'account.notLoggedIn': '⚠️ 配置 {name} 未登录。请先运行 /accounts login {name}。',
557
+ 'account.askName': '➕ 新配置的名称 — 小写字母、数字、- 和 _,最多 {max} 个字符(例如 work)。作为下一条消息发送,或运行 /accounts add <名称>。',
558
+ 'account.invalidName': '❌ 配置名称只能是小写字母、数字、- 和 _,最多 {max} 个字符,且不能是 "default"。',
559
+ 'account.exists': '已存在名为 {name} 的配置。',
560
+ 'account.created': '✅ 配置 {name} 已创建。正在开始登录…',
561
+ 'account.createFailed': '⚠️ 无法创建配置 {name} 的目录。请查看机器人日志。',
562
+ 'account.login_url': '🔐 为配置 {name} 登录 Claude。请在已登录“那个”账号的浏览器中打开此链接——使用无痕窗口或另一个浏览器配置可避免沿用当前登录——完成登录后把代码粘贴回这里:\n{url}',
563
+ 'account.login_success': '✅ 配置 {name} 已登录:{email}({plan})。',
564
+ 'account.login_failed': '⚠️ 配置 {name} 登录失败。运行 /accounts login {name} 重试。',
565
+ 'account.setThisTopic': '✅ 此话题的 Claude 账号:{name}。{apply}',
566
+ 'account.setGlobal': '✅ 所有话题的默认 Claude 账号:{name}。自行选择过的话题保持不变;其余话题现在或在下次启动时切换。',
567
+ 'account.followSet': '✅ 此话题跟随默认 Claude 账号({name})。{apply}',
568
+ 'account.usage': '用法:/accounts — 选择器;/accounts add <名称>;/accounts use <名称>;/accounts login <名称>;/accounts remove <名称>;/accounts autoswitch on|off。',
569
+ 'account.applied.inactive': ' 将在会话下次启动或恢复时生效。',
570
+ 'account.applied.unchanged': '',
571
+ 'account.applied.respawned': ' 运行中的会话已在其下重启——同一段对话。',
572
+ 'account.applied.deferred': ' 代理正在工作;切换将在本轮结束时生效。',
573
+ 'account.applied.restartRequired': ' 代理正在工作;切换将在下次启动或恢复时生效。',
574
+ 'account.askNameCancelled': '✖ 已取消添加账号。消息重新发送给代理。',
575
+ 'account.row.usage': ' ⏱ 5小时 {session} · 每周 {weekly}{fable}',
576
+ 'account.row.usageFable': ' · Fable {fable}',
577
+ 'account.row.usageStale': '(已过时)',
578
+ 'account.row.limited': ' ⛔ 已达上限,直到 {until}',
579
+ 'account.usageHint': '用量:各窗口已用 %,然后是何时重置(🔄 2小时后 = 两小时后)。',
580
+ 'account.autoSwitchHint': '遇到用量上限时怎么办(切换到备用模型,或等待重置)在 /limits 中设置。',
581
+ 'fallback.backendClaude': 'Claude',
582
+ 'fallback.backendOpenCode': 'OpenCode',
583
+ 'fallback.topicModel': '话题当前模型',
584
+ 'fallback.topicModelButton': '保留话题当前模型',
585
+ 'fallback.noAgent': '无代理',
586
+ 'fallback.addButton': '➕ 添加',
587
+ 'fallback.clearButton': '🗑 清空',
588
+ 'fallback.backButton': '⬅️ 返回',
589
+ 'fallback.nothingDetected': '没有可添加的内容:未检测到已登录的 Claude 账号,也没有 OpenCode provider。请先用 /accounts 登录。',
590
+ 'fallback.pickAccount': '➕ 选择账号或提供商:',
591
+ 'fallback.pickModel': '➕ {account} — 选择模型:',
592
+ 'fallback.full': '列表最多容纳 {max} 个模型。',
593
+ 'fallback.alreadyInChain': '已在列表中:{label}',
594
+ 'fallback.added': '✅ 已添加:{label}',
595
+ 'fallback.proposeNothing': '没有可提议的内容:未检测到已登录的 Claude 账号或 OpenCode 提供商。',
596
+ 'fallback.proposed': '🔄 已用已连接项填充备用模型列表:{count} 项。可用按钮调整顺序或删除。',
597
+ 'fallback.cleared': '🗑 备用模型列表已清空。',
598
+ 'fallback.stale': '此键盘发出后列表已变化 — 已重新渲染。',
599
+ 'fallback.moved': '已移动。',
600
+ 'fallback.removed': '🗑 已移除:{label}',
601
+ 'fallback.proposeConfirmButton': '✨ 是,替换',
602
+ 'fallback.switchExpired': '此上限已结束 — 无需切换。',
603
+ 'fallback.switchButton': '🔁 切换到 {label}',
604
+ 'fallback.switchOffer': '🪜 有一个余量充足的备用模型 — 点按即可把此话题移过去并立即继续。',
605
+ 'fallback.switched': '🔁 {from} 触及用量上限 — 此话题已切换到 {to} 并继续。{reset}',
606
+ 'fallback.backgroundStopped': '仍在运行的后台任务已因切换而停止。',
607
+ 'fallback.switchedReset': ' {from} 将于 {time} 重置;在你手动切回之前(/accounts、/model、/claude、/opencode),话题保持在 {to}。',
608
+ 'fallback.switchedDeferred': '🔁 {from} 触及用量上限 — 代理仍在工作,此话题将在本轮结束后切换到 {to};在此之前等待保持生效。',
609
+ 'fallback.switchFailed': '⚠️ 切换到 {to} 失败:{error}。重置等待保持生效。',
610
+ 'limits.usageHeading': '用量(已用 %)',
611
+ 'limits.topicRuns': '运行在:{current}',
612
+ 'limits.settingsGeneral': '所有话题的默认值。',
613
+ 'limits.sourceGeneral': '同 General',
614
+ 'limits.sourceTopic': '已为此话题设置',
615
+ 'limits.sourceLine': '🔁 {switch} · ⏳ {wait}',
616
+ 'limits.switchButton': '🔁 自动切换:{state}',
617
+ 'limits.waitButton': '⏳ 等待重置:{state}',
618
+ 'limits.switchMenuTitle': '🔁 自动切换到备用模型',
619
+ 'limits.waitMenuTitle': '⏳ 等待重置后继续',
620
+ 'limits.settingSameButton': '同 General({state})',
621
+ 'limits.rebuildButton': '🔄 用已连接项填充',
622
+ 'limits.rebuildConfirm': '🔄 用已连接项重新生成并替换列表?标有 🚫 的模型仍保持排除。',
623
+ 'limits.entryEnabled': '✅ 已纳入自动切换:{label}',
624
+ 'limits.entryDisabled': '🚫 已排除出自动切换:{label}',
625
+ 'limits.setThisTopic': '✅ {what}:此话题 {state}。',
626
+ 'limits.setGlobal': '✅ {what}:所有话题 {state}(各话题自己的覆盖设置仍然有效)。',
627
+ 'limits.setSame': '✅ {what}:此话题跟随 General({state})。',
628
+ 'limits.whatSwitch': '自动切换到备用模型',
629
+ 'limits.whatWait': '等待重置后继续',
630
+ 'limits.usage': '用法:/limits — 主界面;/limits rebuild;/limits clear;/limits switch on|off|same;/limits wait on|off|same(在话题中,«same» = 跟随 General)。',
631
+ 'accounts.openCodeSection': '🔌 OpenCode provider(已连接):\n{list}',
632
+ 'accounts.openCodeNone': '🔌 OpenCode provider:尚未连接任何一个。点「➕ OpenCode provider」来连接。',
633
+ 'accounts.buttonsHint': '点按账号可把此话题切换到它(在 General 中:所有话题的默认)。🔑 重新登录账号或提供商,🗑 移除账号(default 会登出),🔌 断开提供商。',
634
+ 'accounts.addClaudeButton': '➕ Claude 账号',
635
+ 'accounts.addProviderButton': '➕ OpenCode provider',
636
+ 'accounts.askProvider': '➕ 连接哪个 OpenCode provider?请在下一条消息中发送它的 id(例如 openai 或 openrouter)。',
637
+ 'accounts.stale': '此界面已过期——已重新生成。',
638
+ 'accounts.confirmDisconnect': '🔌 断开 {provider}?已保存的凭据将被删除。',
639
+ 'accounts.confirmDisconnectButton': '🔌 是,断开 {provider}',
640
+ 'limits.listNote': '🪜 备用模型,最靠上的优先:',
641
+ 'limits.listNoteEmpty': '🪜 暂无备用模型 — 只会尝试已登录的 Claude 账号。➕ 添加 或 🔄 用已连接项填充。',
642
+ 'apiRetry.usageLimitResetOnRungNotice': '🚧 已达到用量限制 — 所有备用模型都受限。此话题将在 {model} 重置后(~{time})在该模型上继续。',
643
+ 'requests.limit.answerAfterResetOnRungNotice': '🚧 已达到用量限制 — 将在 {time} 之后使用 {model} 回复。',
644
+ 'usage.resetIn': '🔄 {time}后',
645
+ 'usage.unitDay': '天',
646
+ 'usage.unitHour': '小时',
647
+ 'usage.unitMinute': '分钟',
648
+ 'accounts.disconnectButton': '🔌 断开 {provider}',
649
+ 'accounts.defaultRemovedNote': '默认账号(~/.claude)已登出并隐藏。重新登录:/accounts login default。',
650
+ 'account.confirmRemoveDefault': '🗑 移除默认账号({email})?它在 ~/.claude 中保存的登录会被删除:基于它运行的会话将停止工作,使用它的话题需要另一个账号。记录、设置、skills 和记忆保留。重新登录前它会保持隐藏。',
651
+ 'account.removedDefault': '✅ 默认账号已登出并隐藏。在你选择其他账号或重新登录(/accounts login default)之前,基于它的会话会失败。',
652
+ 'account.removeDefaultFailed': '⚠️ 无法登出默认账号。请查看机器人日志。',
653
+ 'limits.rungTitle': '🪜 第 {n} / {total} 个:{label}',
654
+ 'limits.rungReady': '✅ 可用。',
655
+ 'limits.rungLimited': '⛔ 受限至 {until}。',
656
+ 'limits.rungSignedOut': '🔒 未登录。',
657
+ 'limits.rungMissing': '❓ 已不再提供。',
658
+ 'limits.rungDisabled': '🚫 已排除出自动切换。',
659
+ 'limits.rungHere': '✓ 此话题当前运行在它上面。',
660
+ 'limits.btnUp': '⬆️ 上移',
661
+ 'limits.btnDown': '⬇️ 下移',
662
+ 'limits.btnUse': '✅ 使用',
663
+ 'limits.btnDontUse': '🚫 不使用',
664
+ };
665
+ //# sourceMappingURL=zh.js.map