charness 3.0.0 → 3.2.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 (293) hide show
  1. package/.env.example +8 -7
  2. package/DEVELOPMENT.md +12 -6
  3. package/MIGRATION_1_TO_2.md +1 -1
  4. package/MIGRATION_RENAME_TO_CHARNESS.md +133 -0
  5. package/README.md +221 -555
  6. package/SETUP.md +539 -0
  7. package/dist/adapters/claudeCliAdapter.d.ts +16 -1
  8. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
  9. package/dist/adapters/claudeCliAdapter.js +37 -2
  10. package/dist/adapters/claudeCliAdapter.js.map +1 -1
  11. package/dist/adapters/claudeConfigDir.d.ts +40 -0
  12. package/dist/adapters/claudeConfigDir.d.ts.map +1 -0
  13. package/dist/adapters/claudeConfigDir.js +3 -0
  14. package/dist/adapters/claudeConfigDir.js.map +1 -0
  15. package/dist/adapters/claudeJsonStreamAdapter.d.ts +32 -0
  16. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
  17. package/dist/adapters/claudeJsonStreamAdapter.js +90 -8
  18. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
  19. package/dist/adapters/claudePlatformFlags.d.ts +4 -4
  20. package/dist/adapters/claudePlatformFlags.js +4 -4
  21. package/dist/adapters/createAdapter.d.ts +8 -0
  22. package/dist/adapters/createAdapter.d.ts.map +1 -1
  23. package/dist/adapters/createAdapter.js +37 -0
  24. package/dist/adapters/createAdapter.js.map +1 -1
  25. package/dist/adapters/openCodeAdapter.d.ts +23 -0
  26. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  27. package/dist/adapters/openCodeAdapter.js +85 -2
  28. package/dist/adapters/openCodeAdapter.js.map +1 -1
  29. package/dist/agentLogin/agentLogin.d.ts +15 -2
  30. package/dist/agentLogin/agentLogin.d.ts.map +1 -1
  31. package/dist/agentLogin/agentLogin.js +53 -16
  32. package/dist/agentLogin/agentLogin.js.map +1 -1
  33. package/dist/apiErrorRetry.d.ts +8 -3
  34. package/dist/apiErrorRetry.d.ts.map +1 -1
  35. package/dist/apiErrorRetry.js +36 -5
  36. package/dist/apiErrorRetry.js.map +1 -1
  37. package/dist/apiRetryKick.d.ts +9 -0
  38. package/dist/apiRetryKick.d.ts.map +1 -1
  39. package/dist/apiRetryKick.js +16 -0
  40. package/dist/apiRetryKick.js.map +1 -1
  41. package/dist/bot.d.ts.map +1 -1
  42. package/dist/bot.js +642 -26
  43. package/dist/bot.js.map +1 -1
  44. package/dist/cli/bot.d.ts +4 -2
  45. package/dist/cli/bot.d.ts.map +1 -1
  46. package/dist/cli/bot.js +11 -3
  47. package/dist/cli/bot.js.map +1 -1
  48. package/dist/cli/botEntry.js +3 -1
  49. package/dist/cli/botEntry.js.map +1 -1
  50. package/dist/cli/claudeProfiles.d.ts +42 -0
  51. package/dist/cli/claudeProfiles.d.ts.map +1 -0
  52. package/dist/cli/claudeProfiles.js +106 -0
  53. package/dist/cli/claudeProfiles.js.map +1 -0
  54. package/dist/cli/envLoader.d.ts +6 -5
  55. package/dist/cli/envLoader.d.ts.map +1 -1
  56. package/dist/cli/envLoader.js +8 -27
  57. package/dist/cli/envLoader.js.map +1 -1
  58. package/dist/cli/hot.d.ts +2 -2
  59. package/dist/cli/hot.d.ts.map +1 -1
  60. package/dist/cli/hot.js +26 -16
  61. package/dist/cli/hot.js.map +1 -1
  62. package/dist/cli.js +19 -9
  63. package/dist/cli.js.map +1 -1
  64. package/dist/connectors/jira/adf.d.ts +23 -0
  65. package/dist/connectors/jira/adf.d.ts.map +1 -1
  66. package/dist/connectors/jira/adf.js +44 -0
  67. package/dist/connectors/jira/adf.js.map +1 -1
  68. package/dist/connectors/jira/answerSink.d.ts +27 -3
  69. package/dist/connectors/jira/answerSink.d.ts.map +1 -1
  70. package/dist/connectors/jira/answerSink.js +145 -18
  71. package/dist/connectors/jira/answerSink.js.map +1 -1
  72. package/dist/connectors/jira/attachmentTool.d.ts +7 -0
  73. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -1
  74. package/dist/connectors/jira/attachmentTool.js +16 -0
  75. package/dist/connectors/jira/attachmentTool.js.map +1 -1
  76. package/dist/connectors/jira/client.d.ts +36 -0
  77. package/dist/connectors/jira/client.d.ts.map +1 -1
  78. package/dist/connectors/jira/client.js +46 -5
  79. package/dist/connectors/jira/client.js.map +1 -1
  80. package/dist/connectors/jira/config.d.ts +13 -17
  81. package/dist/connectors/jira/config.d.ts.map +1 -1
  82. package/dist/connectors/jira/config.js +15 -33
  83. package/dist/connectors/jira/config.js.map +1 -1
  84. package/dist/connectors/jira/connector.d.ts +10 -1
  85. package/dist/connectors/jira/connector.d.ts.map +1 -1
  86. package/dist/connectors/jira/connector.js +90 -16
  87. package/dist/connectors/jira/connector.js.map +1 -1
  88. package/dist/connectors/jira/contextLedger.d.ts +7 -0
  89. package/dist/connectors/jira/contextLedger.d.ts.map +1 -1
  90. package/dist/connectors/jira/contextLedger.js +18 -0
  91. package/dist/connectors/jira/contextLedger.js.map +1 -1
  92. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -1
  93. package/dist/connectors/jira/contextPreamble.js +6 -3
  94. package/dist/connectors/jira/contextPreamble.js.map +1 -1
  95. package/dist/connectors/jira/inbound.d.ts +72 -10
  96. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  97. package/dist/connectors/jira/inbound.js +204 -36
  98. package/dist/connectors/jira/inbound.js.map +1 -1
  99. package/dist/connectors/jira/issueBlocks.d.ts +31 -3
  100. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
  101. package/dist/connectors/jira/issueBlocks.js +108 -29
  102. package/dist/connectors/jira/issueBlocks.js.map +1 -1
  103. package/dist/connectors/jira/issueContext.d.ts +11 -5
  104. package/dist/connectors/jira/issueContext.d.ts.map +1 -1
  105. package/dist/connectors/jira/issueContext.js +23 -6
  106. package/dist/connectors/jira/issueContext.js.map +1 -1
  107. package/dist/connectors/jira/issueDelta.d.ts +3 -0
  108. package/dist/connectors/jira/issueDelta.d.ts.map +1 -1
  109. package/dist/connectors/jira/issueDelta.js +15 -6
  110. package/dist/connectors/jira/issueDelta.js.map +1 -1
  111. package/dist/connectors/jira/mediaPlaceholders.d.ts +2 -0
  112. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -1
  113. package/dist/connectors/jira/mediaPlaceholders.js +16 -3
  114. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -1
  115. package/dist/connectors/jira/prompt.d.ts +4 -0
  116. package/dist/connectors/jira/prompt.d.ts.map +1 -1
  117. package/dist/connectors/jira/prompt.js +20 -1
  118. package/dist/connectors/jira/prompt.js.map +1 -1
  119. package/dist/connectors/jira/sessionKeyCodec.d.ts +2 -0
  120. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -1
  121. package/dist/connectors/jira/sessionKeyCodec.js +5 -0
  122. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -1
  123. package/dist/connectors/jira/trigger.d.ts +16 -3
  124. package/dist/connectors/jira/trigger.d.ts.map +1 -1
  125. package/dist/connectors/jira/trigger.js +17 -2
  126. package/dist/connectors/jira/trigger.js.map +1 -1
  127. package/dist/connectors/jira/triggerLog.d.ts +12 -3
  128. package/dist/connectors/jira/triggerLog.d.ts.map +1 -1
  129. package/dist/connectors/jira/triggerLog.js +18 -2
  130. package/dist/connectors/jira/triggerLog.js.map +1 -1
  131. package/dist/connectors/jira/trustedGroup.d.ts +54 -0
  132. package/dist/connectors/jira/trustedGroup.d.ts.map +1 -0
  133. package/dist/connectors/jira/trustedGroup.js +98 -0
  134. package/dist/connectors/jira/trustedGroup.js.map +1 -0
  135. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +3 -0
  136. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -1
  137. package/dist/connectors/telegram/commands/autoContinueLimits.js +15 -45
  138. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -1
  139. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +58 -0
  140. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -0
  141. package/dist/connectors/telegram/commands/claudeAccounts.js +591 -0
  142. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -0
  143. package/dist/connectors/telegram/commands/fallbackChain.d.ts +49 -0
  144. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -0
  145. package/dist/connectors/telegram/commands/fallbackChain.js +624 -0
  146. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -0
  147. package/dist/connectors/telegram/commands/modelProviders.d.ts +23 -1
  148. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -1
  149. package/dist/connectors/telegram/commands/modelProviders.js +131 -6
  150. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -1
  151. package/dist/i18n/de.d.ts.map +1 -1
  152. package/dist/i18n/de.js +137 -9
  153. package/dist/i18n/de.js.map +1 -1
  154. package/dist/i18n/en.d.ts.map +1 -1
  155. package/dist/i18n/en.js +137 -9
  156. package/dist/i18n/en.js.map +1 -1
  157. package/dist/i18n/es.d.ts.map +1 -1
  158. package/dist/i18n/es.js +137 -9
  159. package/dist/i18n/es.js.map +1 -1
  160. package/dist/i18n/fr.d.ts.map +1 -1
  161. package/dist/i18n/fr.js +137 -9
  162. package/dist/i18n/fr.js.map +1 -1
  163. package/dist/i18n/hi.d.ts.map +1 -1
  164. package/dist/i18n/hi.js +137 -9
  165. package/dist/i18n/hi.js.map +1 -1
  166. package/dist/i18n/ja.d.ts.map +1 -1
  167. package/dist/i18n/ja.js +137 -9
  168. package/dist/i18n/ja.js.map +1 -1
  169. package/dist/i18n/ka.d.ts.map +1 -1
  170. package/dist/i18n/ka.js +137 -9
  171. package/dist/i18n/ka.js.map +1 -1
  172. package/dist/i18n/pt.d.ts.map +1 -1
  173. package/dist/i18n/pt.js +137 -9
  174. package/dist/i18n/pt.js.map +1 -1
  175. package/dist/i18n/ru.d.ts.map +1 -1
  176. package/dist/i18n/ru.js +137 -9
  177. package/dist/i18n/ru.js.map +1 -1
  178. package/dist/i18n/uk.d.ts.map +1 -1
  179. package/dist/i18n/uk.js +137 -9
  180. package/dist/i18n/uk.js.map +1 -1
  181. package/dist/i18n/uz.d.ts.map +1 -1
  182. package/dist/i18n/uz.js +137 -9
  183. package/dist/i18n/uz.js.map +1 -1
  184. package/dist/i18n/zh.d.ts.map +1 -1
  185. package/dist/i18n/zh.js +137 -9
  186. package/dist/i18n/zh.js.map +1 -1
  187. package/dist/index.js +1 -1
  188. package/dist/index.js.map +1 -1
  189. package/dist/installManager.d.ts +16 -2
  190. package/dist/installManager.d.ts.map +1 -1
  191. package/dist/installManager.js +42 -12
  192. package/dist/installManager.js.map +1 -1
  193. package/dist/instanceLock.d.ts.map +1 -1
  194. package/dist/instanceLock.js +10 -8
  195. package/dist/instanceLock.js.map +1 -1
  196. package/dist/legacyMigration.d.ts +69 -0
  197. package/dist/legacyMigration.d.ts.map +1 -0
  198. package/dist/legacyMigration.js +338 -0
  199. package/dist/legacyMigration.js.map +1 -0
  200. package/dist/legacyNames.d.ts +107 -0
  201. package/dist/legacyNames.d.ts.map +1 -0
  202. package/dist/legacyNames.js +230 -0
  203. package/dist/legacyNames.js.map +1 -0
  204. package/dist/platform/answerSink.d.ts +5 -0
  205. package/dist/platform/answerSink.d.ts.map +1 -1
  206. package/dist/platform/answerSink.js.map +1 -1
  207. package/dist/requests/answerRequest.d.ts +2 -0
  208. package/dist/requests/answerRequest.d.ts.map +1 -1
  209. package/dist/requests/answerRequest.js +3 -1
  210. package/dist/requests/answerRequest.js.map +1 -1
  211. package/dist/requests/answerStyle.d.ts +11 -0
  212. package/dist/requests/answerStyle.d.ts.map +1 -0
  213. package/dist/requests/answerStyle.js +14 -0
  214. package/dist/requests/answerStyle.js.map +1 -0
  215. package/dist/requests/answerTail.d.ts.map +1 -1
  216. package/dist/requests/answerTail.js +2 -0
  217. package/dist/requests/answerTail.js.map +1 -1
  218. package/dist/requests/requestHeader.d.ts.map +1 -1
  219. package/dist/requests/requestHeader.js +3 -0
  220. package/dist/requests/requestHeader.js.map +1 -1
  221. package/dist/requests/requestLedger.js +1 -1
  222. package/dist/requests/requestLedger.js.map +1 -1
  223. package/dist/requests/types.d.ts +3 -1
  224. package/dist/requests/types.d.ts.map +1 -1
  225. package/dist/scheduler/mcpSurface.d.ts +17 -1
  226. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  227. package/dist/scheduler/mcpSurface.js +86 -13
  228. package/dist/scheduler/mcpSurface.js.map +1 -1
  229. package/dist/state.d.ts +175 -2
  230. package/dist/state.d.ts.map +1 -1
  231. package/dist/state.js +303 -2
  232. package/dist/state.js.map +1 -1
  233. package/dist/types.d.ts +7 -0
  234. package/dist/types.d.ts.map +1 -1
  235. package/dist/utils/autoContinueOnLimit.d.ts +7 -0
  236. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -1
  237. package/dist/utils/autoContinueOnLimit.js +10 -0
  238. package/dist/utils/autoContinueOnLimit.js.map +1 -1
  239. package/dist/utils/claudeAccountPickerPlan.d.ts +85 -0
  240. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -0
  241. package/dist/utils/claudeAccountPickerPlan.js +123 -0
  242. package/dist/utils/claudeAccountPickerPlan.js.map +1 -0
  243. package/dist/utils/claudeLimitSwitch.d.ts +40 -0
  244. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -0
  245. package/dist/utils/claudeLimitSwitch.js +54 -0
  246. package/dist/utils/claudeLimitSwitch.js.map +1 -0
  247. package/dist/utils/claudeProfileUsageLines.d.ts +15 -0
  248. package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -0
  249. package/dist/utils/claudeProfileUsageLines.js +42 -0
  250. package/dist/utils/claudeProfileUsageLines.js.map +1 -0
  251. package/dist/utils/claudeProfiles.d.ts +124 -0
  252. package/dist/utils/claudeProfiles.d.ts.map +1 -0
  253. package/dist/utils/claudeProfiles.js +304 -0
  254. package/dist/utils/claudeProfiles.js.map +1 -0
  255. package/dist/utils/claudeStreamJson.d.ts +13 -1
  256. package/dist/utils/claudeStreamJson.d.ts.map +1 -1
  257. package/dist/utils/claudeStreamJson.js +13 -0
  258. package/dist/utils/claudeStreamJson.js.map +1 -1
  259. package/dist/utils/claudeUsage.d.ts +209 -0
  260. package/dist/utils/claudeUsage.d.ts.map +1 -0
  261. package/dist/utils/claudeUsage.js +413 -0
  262. package/dist/utils/claudeUsage.js.map +1 -0
  263. package/dist/utils/claudeUsageRefresher.d.ts +44 -0
  264. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -0
  265. package/dist/utils/claudeUsageRefresher.js +95 -0
  266. package/dist/utils/claudeUsageRefresher.js.map +1 -0
  267. package/dist/utils/fallbackBridge.d.ts +32 -0
  268. package/dist/utils/fallbackBridge.d.ts.map +1 -0
  269. package/dist/utils/fallbackBridge.js +62 -0
  270. package/dist/utils/fallbackBridge.js.map +1 -0
  271. package/dist/utils/fallbackChain.d.ts +299 -0
  272. package/dist/utils/fallbackChain.d.ts.map +1 -0
  273. package/dist/utils/fallbackChain.js +542 -0
  274. package/dist/utils/fallbackChain.js.map +1 -0
  275. package/dist/utils/jsonStreamHost.d.ts +14 -3
  276. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  277. package/dist/utils/jsonStreamHost.js +26 -5
  278. package/dist/utils/jsonStreamHost.js.map +1 -1
  279. package/dist/utils/modelRecentPlan.d.ts +56 -0
  280. package/dist/utils/modelRecentPlan.d.ts.map +1 -0
  281. package/dist/utils/modelRecentPlan.js +107 -0
  282. package/dist/utils/modelRecentPlan.js.map +1 -0
  283. package/dist/utils/openCodeCompactPlugin.d.ts +11 -3
  284. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
  285. package/dist/utils/openCodeCompactPlugin.js +37 -5
  286. package/dist/utils/openCodeCompactPlugin.js.map +1 -1
  287. package/dist/utils/threadStatusReport.d.ts +25 -1
  288. package/dist/utils/threadStatusReport.d.ts.map +1 -1
  289. package/dist/utils/threadStatusReport.js +24 -1
  290. package/dist/utils/threadStatusReport.js.map +1 -1
  291. package/examples/.env.example +7 -7
  292. package/examples/docker-compose.yml +15 -14
  293. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustedGroup.js","sourceRoot":"","sources":["../../../src/connectors/jira/trustedGroup.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export declare function appendAutoContinueLimitsHint(noticeText: string): string
15
15
  * cancels, and the request wake-up engine, which exists only after the boot built it.
16
16
  */
17
17
  export interface AutoContinueLimitsPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral'> {
18
+ /** Open the `/limits` screen in the topic (the bare alias lands there). */
19
+ openLimitsView: (key: SessionKey) => Promise<void>;
18
20
  getArmedLimitRetryFireAt: (key: SessionKey) => number | null;
19
21
  cancelApiRetry: (key: SessionKey) => void;
20
22
  getRequestWakeUpEngine: () => Pick<RequestWakeUpEngine, 'stopWakingForLimitWait'> | null;
@@ -24,6 +26,7 @@ export interface AutoContinueLimitsPorts extends Pick<BotCore, 'bot' | 'command'
24
26
  * notice's own buttons call, and the `register…()` calls.
25
27
  */
26
28
  export declare function createAutoContinueLimits(ports: AutoContinueLimitsPorts): {
29
+ applyAutoContinueLimits: (key: SessionKey, isGeneral: boolean, enabled: boolean | null) => Promise<string>;
27
30
  consumeAutoContinueLimitsPicker: (key: SessionKey, cbMsg: Message | undefined, text: string) => Promise<void>;
28
31
  registerAutoContinueLimitsCommands: () => void;
29
32
  registerAutoContinueLimitsCallbacks: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"autoContinueLimits.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/autoContinueLimits.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAqBD;;;GAGG;AACH,MAAM,WAAW,uBACf,SAAQ,IAAI,CACV,OAAO,EACP,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAC9G;IACD,wBAAwB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,sBAAsB,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,GAAG,IAAI,CAAC;CAC1F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB;2CAqCjB,UAAU,SAAS,OAAO,GAAG,SAAS,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;8CAqBzE,IAAI;+CA2BH,IAAI;EAWrD"}
1
+ {"version":3,"file":"autoContinueLimits.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/autoContinueLimits.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;GAGG;AACH,MAAM,WAAW,uBACf,SAAQ,IAAI,CACV,OAAO,EACP,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAC9G;IACD,2EAA2E;IAC3E,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,wBAAwB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,cAAc,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,sBAAsB,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,GAAG,IAAI,CAAC;CAC1F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB;mCAezB,UAAU,aAAa,OAAO,WAAW,OAAO,GAAG,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC;2CAyBjE,UAAU,SAAS,OAAO,GAAG,SAAS,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;8CAqBzE,IAAI;+CAeH,IAAI;EAYrD"}
@@ -2,16 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.appendAutoContinueLimitsHint = appendAutoContinueLimitsHint;
4
4
  exports.createAutoContinueLimits = createAutoContinueLimits;
5
- /**
6
- * `/auto_continue_limits` — whether the bot resumes an agent by itself when a usage-limit window resets, per topic
7
- * or (in General) for the instance — with its buttons. See README.md in this folder.
8
- */
9
- const telegraf_1 = require("telegraf");
10
5
  const sessionKeyCodec_1 = require("../sessionKeyCodec");
11
6
  const rateLimiter_1 = require("../../../rateLimiter");
12
7
  const i18n_1 = require("../../../i18n");
13
8
  const sendErrorClassifier_1 = require("../../../sendErrorClassifier");
14
- const autoContinueOnLimit_1 = require("../../../utils/autoContinueOnLimit");
15
9
  /**
16
10
  * @description Append the shared `/auto_continue_limits` pointer to a usage-limit
17
11
  * arming notice. ONE key appended at ONE place, so the reset-time notice and the
@@ -22,30 +16,12 @@ const autoContinueOnLimit_1 = require("../../../utils/autoContinueOnLimit");
22
16
  function appendAutoContinueLimitsHint(noticeText) {
23
17
  return `${noticeText}\n\n${(0, i18n_1.t)('autoContinueLimits.noticeHint')}`;
24
18
  }
25
- /**
26
- * @description Build the `/auto_continue_limits` picker keyboard: Enable / Disable
27
- * with `✓` on the current value, plus a «skip once» row ONLY while a limit resume
28
- * is actually armed for the topic. A skip row with nothing to skip would be a dead
29
- * end (same reasoning as the `/model` re-render never offering an empty list).
30
- */
31
- function buildAutoContinueLimitsKeyboard(isEnabled, armedFireAt) {
32
- const rows = [[
33
- telegraf_1.Markup.button.callback((0, i18n_1.t)('autoContinueLimits.enableButton') + (isEnabled ? ' ✓' : ''), 'acl_on'),
34
- telegraf_1.Markup.button.callback((0, i18n_1.t)('autoContinueLimits.disableButton') + (!isEnabled ? ' ✓' : ''), 'acl_off'),
35
- ]];
36
- if (armedFireAt !== null) {
37
- rows.push([
38
- telegraf_1.Markup.button.callback((0, i18n_1.t)('autoContinueLimits.skipButton'), (0, autoContinueOnLimit_1.buildSkipArmedRetryCallbackData)(armedFireAt)),
39
- ]);
40
- }
41
- return telegraf_1.Markup.inlineKeyboard(rows);
42
- }
43
19
  /**
44
20
  * @description Build the auto-resume switch over its ports. It returns the picker consumer the usage-limit
45
21
  * notice's own buttons call, and the `register…()` calls.
46
22
  */
47
23
  function createAutoContinueLimits(ports) {
48
- const { getArmedLimitRetryFireAt, cancelApiRetry, getRequestWakeUpEngine, bot, command, getState, replyToThread, authoriseContext, withThreadLocale, checkIsGeneral } = ports;
24
+ const { openLimitsView, getArmedLimitRetryFireAt, cancelApiRetry, getRequestWakeUpEngine, bot, command, getState, replyToThread, authoriseContext, withThreadLocale, checkIsGeneral } = ports;
49
25
  /**
50
26
  * @description Apply the `/auto_continue_limits` setting and RETURN the
51
27
  * confirmation text — the single write path behind the command and its picker
@@ -59,13 +35,16 @@ function createAutoContinueLimits(ports) {
59
35
  * moment a limit error arrives.
60
36
  */
61
37
  async function applyAutoContinueLimits(key, isGeneral, enabled) {
62
- const stateWord = enabled ? (0, i18n_1.t)('autoContinueLimits.on') : (0, i18n_1.t)('autoContinueLimits.off');
63
38
  if (isGeneral) {
64
- await getState().setAutoContinueOnLimitGlobalDefault(enabled);
65
- return (0, i18n_1.t)('autoContinueLimits.setGlobal', { state: stateWord });
39
+ const value = enabled ?? true;
40
+ await getState().setAutoContinueOnLimitGlobalDefault(value);
41
+ return (0, i18n_1.t)('autoContinueLimits.setGlobal', { state: value ? (0, i18n_1.t)('autoContinueLimits.on') : (0, i18n_1.t)('autoContinueLimits.off') });
66
42
  }
67
43
  await getState().setAutoContinueOnLimitOverride(key, enabled);
68
- if (!enabled) {
44
+ // `null` drops the override: what the topic follows now is the instance default.
45
+ const effective = getState().checkIsAutoContinueOnLimitEnabled(key);
46
+ const stateWord = effective ? (0, i18n_1.t)('autoContinueLimits.on') : (0, i18n_1.t)('autoContinueLimits.off');
47
+ if (!effective) {
69
48
  const isLimitWaitArmed = getArmedLimitRetryFireAt(key) !== null;
70
49
  cancelApiRetry(key);
71
50
  // Nothing resumes this wait any more: its request must not be woken into the same limit.
@@ -106,27 +85,17 @@ function createAutoContinueLimits(ports) {
106
85
  });
107
86
  }
108
87
  function registerAutoContinueLimitsCommands() {
109
- // `/auto_continue_limits` — toggle waiting out a usage/session limit and resuming by
110
- // itself. Regular topic → per-thread override; General → the instance-wide
111
- // default. Bare → an Enable/Disable picker (✓ on current) plus a «skip once» row
112
- // while a resume is armed. Deliberately NOT gated on an adapter/session (unlike
113
- // `/compact_on_idle`): a limit can hit any topic at any time, and the operator must
114
- // be able to set the preference before that.
88
+ // `/auto_continue_limits` — hidden alias of `/limits`. `on` / `off` set the setting (regular topic →
89
+ // per-thread override; General → the instance-wide default); bare opens the `/limits` screen. Deliberately
90
+ // NOT gated on an adapter/session: a limit can hit any topic at any time, and the operator must be able to
91
+ // set the preference before that.
115
92
  command('auto_continue_limits', async (ctx, key) => {
116
93
  const arg = ctx.message.text.split(/\s+/).slice(1).join(' ').trim().toLowerCase();
117
- const isGeneral = checkIsGeneral(key);
118
94
  if (arg === 'on' || arg === 'off') {
119
- await replyToThread(key, await applyAutoContinueLimits(key, isGeneral, arg === 'on'));
95
+ await replyToThread(key, await applyAutoContinueLimits(key, checkIsGeneral(key), arg === 'on'));
120
96
  return;
121
97
  }
122
- const isEnabled = isGeneral
123
- ? getState().getAutoContinueOnLimitGlobalDefault()
124
- : getState().checkIsAutoContinueOnLimitEnabled(key);
125
- const stateWord = isEnabled ? (0, i18n_1.t)('autoContinueLimits.on') : (0, i18n_1.t)('autoContinueLimits.off');
126
- const title = isGeneral
127
- ? (0, i18n_1.t)('autoContinueLimits.titleGeneral', { state: stateWord })
128
- : (0, i18n_1.t)('autoContinueLimits.title', { state: stateWord });
129
- await replyToThread(key, title, buildAutoContinueLimitsKeyboard(isEnabled, getArmedLimitRetryFireAt(key)));
98
+ await openLimitsView(key);
130
99
  });
131
100
  }
132
101
  function registerAutoContinueLimitsCallbacks() {
@@ -134,6 +103,7 @@ function createAutoContinueLimits(ports) {
134
103
  bot.action('acl_off', (ctx) => handleAutoContinueLimitsCallback(ctx, false));
135
104
  }
136
105
  return {
106
+ applyAutoContinueLimits,
137
107
  consumeAutoContinueLimitsPicker,
138
108
  registerAutoContinueLimitsCommands,
139
109
  registerAutoContinueLimitsCallbacks,
@@ -1 +1 @@
1
- {"version":3,"file":"autoContinueLimits.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/autoContinueLimits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoContinueLimits.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/autoContinueLimits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { SessionKey } from '../../../sessionKey';
2
+ import type { ClaudeConfigDirApplyResult } from '../../../adapters/claudeConfigDir';
3
+ import type { ClaudeLoginProfile } from '../../../agentLogin/agentLogin';
4
+ import { type ClaudeAuthStatus } from '../../../utils/claudeProfiles';
5
+ import type { BotCore } from './botCore';
6
+ /**
7
+ * How a profile change reached the topic's live session: the adapter's own answer, plus `restartRequired`
8
+ * for a backend that cannot re-spawn a working session by itself (the tmux TUI mid-turn).
9
+ */
10
+ export type ClaudeProfileApplyOutcome = ClaudeConfigDirApplyResult | 'restartRequired';
11
+ /**
12
+ * What the account picker needs from the bot: the shared core, where profiles live, the CLI status probe,
13
+ * the profile sign-in driver, and the hooks that move live sessions onto a changed pick.
14
+ */
15
+ export interface ClaudeAccountsPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'editThreadMessage' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral'> {
16
+ getDataDir: () => string;
17
+ /** The instance zone (`/timezone`) the reset instants are shown in. */
18
+ getInstanceTimezone: () => string;
19
+ /** Bring the per-profile usage snapshots up to date (`utils/claudeUsageRefresher.ts`); never throws. */
20
+ refreshClaudeUsage: (options: {
21
+ maxAgeMs?: number;
22
+ }) => Promise<void>;
23
+ /** `claude auth status --json` under `configDir` (`null` = `~/.claude`); `null` when the probe fails. */
24
+ readClaudeAuthStatus: (configDir: string | null) => Promise<ClaudeAuthStatus | null>;
25
+ /** Start the out-of-band sign-in of `profile`; the relay posts the link and the outcome into the topic. */
26
+ startClaudeProfileLogin: (key: SessionKey, profile: ClaudeLoginProfile) => Promise<void>;
27
+ /** Bring ONE topic's live Claude session onto the profile it now resolves to. */
28
+ applyClaudeProfile: (key: SessionKey) => Promise<ClaudeProfileApplyOutcome>;
29
+ /** Bring every served topic's live Claude session onto its resolved profile (after a General change / a removal). */
30
+ applyClaudeProfileEverywhere: () => Promise<void>;
31
+ /** The OpenCode providers the server is authenticated for (its live catalog); `[]` when it cannot be read. */
32
+ detectOpenCodeProviders: () => Promise<string[]>;
33
+ /** Drop a provider's stored credentials and post the outcome — the `/disconnect <provider>` flow, unchanged. */
34
+ disconnectOpenCodeProvider: (key: SessionKey, providerId: string) => Promise<void>;
35
+ /** Start the `/connect <provider>` flow (the method picker: OAuth or API key), unchanged. */
36
+ startOpenCodeConnect: (key: SessionKey, providerId: string) => Promise<void>;
37
+ /**
38
+ * The «auto switch to a fallback model» setting (`fallbackChain.ts` owns it and its confirmation): the legacy
39
+ * `autoswitch on|off` verb and the old `acct_autosw_*` buttons write it through here.
40
+ */
41
+ applyAutoSwitch: (key: SessionKey, isGeneral: boolean, enabled: boolean) => Promise<string>;
42
+ /** `~/.claude`, where the default login lives; injectable so a test signs out a temp directory, never the real one. */
43
+ getHomeClaudeDir?: () => string;
44
+ }
45
+ /**
46
+ * @description Build the `/account` feature over its ports: the command, its buttons, the name capture the
47
+ * «Add» button arms (the text handler asks `checkIsAwaitingProfileName` / `submitProfileName`), and the
48
+ * auth-status sink the sign-in driver reports to.
49
+ */
50
+ export declare function createClaudeAccounts(ports: ClaudeAccountsPorts): {
51
+ registerClaudeAccountCommands: () => void;
52
+ registerClaudeAccountCallbacks: () => void;
53
+ checkIsAwaitingProfileName: (key: SessionKey) => boolean;
54
+ cancelProfileNameCapture: (key: SessionKey) => boolean;
55
+ submitProfileName: (key: SessionKey, text: string) => Promise<void>;
56
+ onClaudeProfileAuthStatus: (_key: SessionKey, profile: ClaudeLoginProfile, status: ClaudeAuthStatus | null) => Promise<void>;
57
+ };
58
+ //# sourceMappingURL=claudeAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeAccounts.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/claudeAccounts.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAiCvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG,iBAAiB,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,OAAO,EACP,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CACpI;IACD,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,uEAAuE;IACvE,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAClC,wGAAwG;IACxG,kBAAkB,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,yGAAyG;IACzG,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrF,2GAA2G;IAC3G,uBAAuB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,iFAAiF;IACjF,kBAAkB,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5E,qHAAqH;IACrH,4BAA4B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,8GAA8G;IAC9G,uBAAuB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,gHAAgH;IAChH,0BAA0B,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,6FAA6F;IAC7F,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;;;OAGG;IACH,eAAe,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5F,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;CACjC;AAKD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB;yCAkXnB,IAAI;0CAgEH,IAAI;sCAtGN,UAAU,KAAG,OAAO;oCAKtB,UAAU,KAAG,OAAO;6BAgBrB,UAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;sCA5Q/B,UAAU,WAAW,kBAAkB,UAAU,gBAAgB,GAAG,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC;EA4dxI"}