charness 0.0.0-stage → 3.0.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 (988) 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 +1024 -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 +1336 -0
  19. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -0
  20. package/dist/adapters/claudeCliAdapter.js +4204 -0
  21. package/dist/adapters/claudeCliAdapter.js.map +1 -0
  22. package/dist/adapters/claudeJsonStreamAdapter.d.ts +548 -0
  23. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -0
  24. package/dist/adapters/claudeJsonStreamAdapter.js +1810 -0
  25. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -0
  26. package/dist/adapters/claudePlatformFlags.d.ts +35 -0
  27. package/dist/adapters/claudePlatformFlags.d.ts.map +1 -0
  28. package/dist/adapters/claudePlatformFlags.js +46 -0
  29. package/dist/adapters/claudePlatformFlags.js.map +1 -0
  30. package/dist/adapters/createAdapter.d.ts +252 -0
  31. package/dist/adapters/createAdapter.d.ts.map +1 -0
  32. package/dist/adapters/createAdapter.js +475 -0
  33. package/dist/adapters/createAdapter.js.map +1 -0
  34. package/dist/adapters/openCodeAdapter.d.ts +1446 -0
  35. package/dist/adapters/openCodeAdapter.d.ts.map +1 -0
  36. package/dist/adapters/openCodeAdapter.js +4540 -0
  37. package/dist/adapters/openCodeAdapter.js.map +1 -0
  38. package/dist/adapters/sessionLaunchDefaults.d.ts +28 -0
  39. package/dist/adapters/sessionLaunchDefaults.d.ts.map +1 -0
  40. package/dist/adapters/sessionLaunchDefaults.js +15 -0
  41. package/dist/adapters/sessionLaunchDefaults.js.map +1 -0
  42. package/dist/adapters/terminalAdapter.d.ts +68 -0
  43. package/dist/adapters/terminalAdapter.d.ts.map +1 -0
  44. package/dist/adapters/terminalAdapter.js +371 -0
  45. package/dist/adapters/terminalAdapter.js.map +1 -0
  46. package/dist/agentLogin/agentLogin.d.ts +31 -0
  47. package/dist/agentLogin/agentLogin.d.ts.map +1 -0
  48. package/dist/agentLogin/agentLogin.js +493 -0
  49. package/dist/agentLogin/agentLogin.js.map +1 -0
  50. package/dist/agentTrigger.d.ts +28 -0
  51. package/dist/agentTrigger.d.ts.map +1 -0
  52. package/dist/agentTrigger.js +53 -0
  53. package/dist/agentTrigger.js.map +1 -0
  54. package/dist/apiErrorRetry.d.ts +209 -0
  55. package/dist/apiErrorRetry.d.ts.map +1 -0
  56. package/dist/apiErrorRetry.js +351 -0
  57. package/dist/apiErrorRetry.js.map +1 -0
  58. package/dist/apiRetryKick.d.ts +148 -0
  59. package/dist/apiRetryKick.d.ts.map +1 -0
  60. package/dist/apiRetryKick.js +158 -0
  61. package/dist/apiRetryKick.js.map +1 -0
  62. package/dist/bootClassifier.d.ts +46 -0
  63. package/dist/bootClassifier.d.ts.map +1 -0
  64. package/dist/bootClassifier.js +43 -0
  65. package/dist/bootClassifier.js.map +1 -0
  66. package/dist/bot.d.ts +207 -0
  67. package/dist/bot.d.ts.map +1 -0
  68. package/dist/bot.js +10611 -0
  69. package/dist/bot.js.map +1 -0
  70. package/dist/botFileStorage.d.ts +60 -0
  71. package/dist/botFileStorage.d.ts.map +1 -0
  72. package/dist/botFileStorage.js +205 -0
  73. package/dist/botFileStorage.js.map +1 -0
  74. package/dist/cli/applyDnsFix.d.ts +7 -0
  75. package/dist/cli/applyDnsFix.d.ts.map +1 -0
  76. package/dist/cli/applyDnsFix.js +46 -0
  77. package/dist/cli/applyDnsFix.js.map +1 -0
  78. package/dist/cli/bot.d.ts +27 -0
  79. package/dist/cli/bot.d.ts.map +1 -0
  80. package/dist/cli/bot.js +98 -0
  81. package/dist/cli/bot.js.map +1 -0
  82. package/dist/cli/botEntry.d.ts +3 -0
  83. package/dist/cli/botEntry.d.ts.map +1 -0
  84. package/dist/cli/botEntry.js +11 -0
  85. package/dist/cli/botEntry.js.map +1 -0
  86. package/dist/cli/connectorGuards.d.ts +31 -0
  87. package/dist/cli/connectorGuards.d.ts.map +1 -0
  88. package/dist/cli/connectorGuards.js +159 -0
  89. package/dist/cli/connectorGuards.js.map +1 -0
  90. package/dist/cli/envLoader.d.ts +34 -0
  91. package/dist/cli/envLoader.d.ts.map +1 -0
  92. package/dist/cli/envLoader.js +132 -0
  93. package/dist/cli/envLoader.js.map +1 -0
  94. package/dist/cli/hot.d.ts +82 -0
  95. package/dist/cli/hot.d.ts.map +1 -0
  96. package/dist/cli/hot.js +323 -0
  97. package/dist/cli/hot.js.map +1 -0
  98. package/dist/cli.d.ts +3 -0
  99. package/dist/cli.d.ts.map +1 -0
  100. package/dist/cli.js +130 -0
  101. package/dist/cli.js.map +1 -0
  102. package/dist/connectors/jira/adf.d.ts +72 -0
  103. package/dist/connectors/jira/adf.d.ts.map +1 -0
  104. package/dist/connectors/jira/adf.js +407 -0
  105. package/dist/connectors/jira/adf.js.map +1 -0
  106. package/dist/connectors/jira/agentBinaries.d.ts +14 -0
  107. package/dist/connectors/jira/agentBinaries.d.ts.map +1 -0
  108. package/dist/connectors/jira/agentBinaries.js +75 -0
  109. package/dist/connectors/jira/agentBinaries.js.map +1 -0
  110. package/dist/connectors/jira/answerSink.d.ts +52 -0
  111. package/dist/connectors/jira/answerSink.d.ts.map +1 -0
  112. package/dist/connectors/jira/answerSink.js +220 -0
  113. package/dist/connectors/jira/answerSink.js.map +1 -0
  114. package/dist/connectors/jira/attachmentDownload.d.ts +41 -0
  115. package/dist/connectors/jira/attachmentDownload.d.ts.map +1 -0
  116. package/dist/connectors/jira/attachmentDownload.js +92 -0
  117. package/dist/connectors/jira/attachmentDownload.js.map +1 -0
  118. package/dist/connectors/jira/attachmentTool.d.ts +43 -0
  119. package/dist/connectors/jira/attachmentTool.d.ts.map +1 -0
  120. package/dist/connectors/jira/attachmentTool.js +150 -0
  121. package/dist/connectors/jira/attachmentTool.js.map +1 -0
  122. package/dist/connectors/jira/client.d.ts +490 -0
  123. package/dist/connectors/jira/client.d.ts.map +1 -0
  124. package/dist/connectors/jira/client.js +453 -0
  125. package/dist/connectors/jira/client.js.map +1 -0
  126. package/dist/connectors/jira/config.d.ts +117 -0
  127. package/dist/connectors/jira/config.d.ts.map +1 -0
  128. package/dist/connectors/jira/config.js +350 -0
  129. package/dist/connectors/jira/config.js.map +1 -0
  130. package/dist/connectors/jira/configFile.d.ts +10 -0
  131. package/dist/connectors/jira/configFile.d.ts.map +1 -0
  132. package/dist/connectors/jira/configFile.js +50 -0
  133. package/dist/connectors/jira/configFile.js.map +1 -0
  134. package/dist/connectors/jira/connector.d.ts +68 -0
  135. package/dist/connectors/jira/connector.d.ts.map +1 -0
  136. package/dist/connectors/jira/connector.js +257 -0
  137. package/dist/connectors/jira/connector.js.map +1 -0
  138. package/dist/connectors/jira/contextLedger.d.ts +59 -0
  139. package/dist/connectors/jira/contextLedger.d.ts.map +1 -0
  140. package/dist/connectors/jira/contextLedger.js +194 -0
  141. package/dist/connectors/jira/contextLedger.js.map +1 -0
  142. package/dist/connectors/jira/contextPreamble.d.ts +18 -0
  143. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -0
  144. package/dist/connectors/jira/contextPreamble.js +31 -0
  145. package/dist/connectors/jira/contextPreamble.js.map +1 -0
  146. package/dist/connectors/jira/inbound.d.ts +132 -0
  147. package/dist/connectors/jira/inbound.d.ts.map +1 -0
  148. package/dist/connectors/jira/inbound.js +316 -0
  149. package/dist/connectors/jira/inbound.js.map +1 -0
  150. package/dist/connectors/jira/issueBlocks.d.ts +51 -0
  151. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -0
  152. package/dist/connectors/jira/issueBlocks.js +182 -0
  153. package/dist/connectors/jira/issueBlocks.js.map +1 -0
  154. package/dist/connectors/jira/issueContext.d.ts +25 -0
  155. package/dist/connectors/jira/issueContext.d.ts.map +1 -0
  156. package/dist/connectors/jira/issueContext.js +53 -0
  157. package/dist/connectors/jira/issueContext.js.map +1 -0
  158. package/dist/connectors/jira/issueDelta.d.ts +35 -0
  159. package/dist/connectors/jira/issueDelta.d.ts.map +1 -0
  160. package/dist/connectors/jira/issueDelta.js +50 -0
  161. package/dist/connectors/jira/issueDelta.js.map +1 -0
  162. package/dist/connectors/jira/mediaPlaceholders.d.ts +20 -0
  163. package/dist/connectors/jira/mediaPlaceholders.d.ts.map +1 -0
  164. package/dist/connectors/jira/mediaPlaceholders.js +92 -0
  165. package/dist/connectors/jira/mediaPlaceholders.js.map +1 -0
  166. package/dist/connectors/jira/outbound.d.ts +6 -0
  167. package/dist/connectors/jira/outbound.d.ts.map +1 -0
  168. package/dist/connectors/jira/outbound.js +38 -0
  169. package/dist/connectors/jira/outbound.js.map +1 -0
  170. package/dist/connectors/jira/prompt.d.ts +37 -0
  171. package/dist/connectors/jira/prompt.d.ts.map +1 -0
  172. package/dist/connectors/jira/prompt.js +99 -0
  173. package/dist/connectors/jira/prompt.js.map +1 -0
  174. package/dist/connectors/jira/promptSpill.d.ts +50 -0
  175. package/dist/connectors/jira/promptSpill.d.ts.map +1 -0
  176. package/dist/connectors/jira/promptSpill.js +157 -0
  177. package/dist/connectors/jira/promptSpill.js.map +1 -0
  178. package/dist/connectors/jira/promptText.d.ts +7 -0
  179. package/dist/connectors/jira/promptText.d.ts.map +1 -0
  180. package/dist/connectors/jira/promptText.js +26 -0
  181. package/dist/connectors/jira/promptText.js.map +1 -0
  182. package/dist/connectors/jira/sessionKeyCodec.d.ts +16 -0
  183. package/dist/connectors/jira/sessionKeyCodec.d.ts.map +1 -0
  184. package/dist/connectors/jira/sessionKeyCodec.js +101 -0
  185. package/dist/connectors/jira/sessionKeyCodec.js.map +1 -0
  186. package/dist/connectors/jira/trigger.d.ts +50 -0
  187. package/dist/connectors/jira/trigger.d.ts.map +1 -0
  188. package/dist/connectors/jira/trigger.js +93 -0
  189. package/dist/connectors/jira/trigger.js.map +1 -0
  190. package/dist/connectors/jira/triggerLog.d.ts +51 -0
  191. package/dist/connectors/jira/triggerLog.d.ts.map +1 -0
  192. package/dist/connectors/jira/triggerLog.js +78 -0
  193. package/dist/connectors/jira/triggerLog.js.map +1 -0
  194. package/dist/connectors/jira/unconfirmedPosts.d.ts +58 -0
  195. package/dist/connectors/jira/unconfirmedPosts.d.ts.map +1 -0
  196. package/dist/connectors/jira/unconfirmedPosts.js +105 -0
  197. package/dist/connectors/jira/unconfirmedPosts.js.map +1 -0
  198. package/dist/connectors/telegram/answerSink.d.ts +46 -0
  199. package/dist/connectors/telegram/answerSink.d.ts.map +1 -0
  200. package/dist/connectors/telegram/answerSink.js +71 -0
  201. package/dist/connectors/telegram/answerSink.js.map +1 -0
  202. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +31 -0
  203. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -0
  204. package/dist/connectors/telegram/commands/autoContinueLimits.js +142 -0
  205. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -0
  206. package/dist/connectors/telegram/commands/botCore.d.ts +46 -0
  207. package/dist/connectors/telegram/commands/botCore.d.ts.map +1 -0
  208. package/dist/connectors/telegram/commands/botCore.js +3 -0
  209. package/dist/connectors/telegram/commands/botCore.js.map +1 -0
  210. package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
  211. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -0
  212. package/dist/connectors/telegram/commands/callbackMessage.js +13 -0
  213. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -0
  214. package/dist/connectors/telegram/commands/compaction.d.ts +47 -0
  215. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -0
  216. package/dist/connectors/telegram/commands/compaction.js +868 -0
  217. package/dist/connectors/telegram/commands/compaction.js.map +1 -0
  218. package/dist/connectors/telegram/commands/displayModes.d.ts +13 -0
  219. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -0
  220. package/dist/connectors/telegram/commands/displayModes.js +335 -0
  221. package/dist/connectors/telegram/commands/displayModes.js.map +1 -0
  222. package/dist/connectors/telegram/commands/modelProviders.d.ts +95 -0
  223. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -0
  224. package/dist/connectors/telegram/commands/modelProviders.js +841 -0
  225. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -0
  226. package/dist/connectors/telegram/commands/reminders.d.ts +54 -0
  227. package/dist/connectors/telegram/commands/reminders.d.ts.map +1 -0
  228. package/dist/connectors/telegram/commands/reminders.js +624 -0
  229. package/dist/connectors/telegram/commands/reminders.js.map +1 -0
  230. package/dist/connectors/telegram/fileIntake.d.ts +166 -0
  231. package/dist/connectors/telegram/fileIntake.d.ts.map +1 -0
  232. package/dist/connectors/telegram/fileIntake.js +304 -0
  233. package/dist/connectors/telegram/fileIntake.js.map +1 -0
  234. package/dist/connectors/telegram/fileSendGateway.d.ts +57 -0
  235. package/dist/connectors/telegram/fileSendGateway.d.ts.map +1 -0
  236. package/dist/connectors/telegram/fileSendGateway.js +221 -0
  237. package/dist/connectors/telegram/fileSendGateway.js.map +1 -0
  238. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts +52 -0
  239. package/dist/connectors/telegram/foreignKeyFallbacks.d.ts.map +1 -0
  240. package/dist/connectors/telegram/foreignKeyFallbacks.js +71 -0
  241. package/dist/connectors/telegram/foreignKeyFallbacks.js.map +1 -0
  242. package/dist/connectors/telegram/inbound.d.ts +131 -0
  243. package/dist/connectors/telegram/inbound.d.ts.map +1 -0
  244. package/dist/connectors/telegram/inbound.js +278 -0
  245. package/dist/connectors/telegram/inbound.js.map +1 -0
  246. package/dist/connectors/telegram/languagePicker.d.ts +32 -0
  247. package/dist/connectors/telegram/languagePicker.d.ts.map +1 -0
  248. package/dist/connectors/telegram/languagePicker.js +55 -0
  249. package/dist/connectors/telegram/languagePicker.js.map +1 -0
  250. package/dist/connectors/telegram/messageSplit.d.ts +62 -0
  251. package/dist/connectors/telegram/messageSplit.d.ts.map +1 -0
  252. package/dist/connectors/telegram/messageSplit.js +119 -0
  253. package/dist/connectors/telegram/messageSplit.js.map +1 -0
  254. package/dist/connectors/telegram/outbound.d.ts +62 -0
  255. package/dist/connectors/telegram/outbound.d.ts.map +1 -0
  256. package/dist/connectors/telegram/outbound.js +116 -0
  257. package/dist/connectors/telegram/outbound.js.map +1 -0
  258. package/dist/connectors/telegram/output/createOutputTransport.d.ts +34 -0
  259. package/dist/connectors/telegram/output/createOutputTransport.d.ts.map +1 -0
  260. package/dist/connectors/telegram/output/createOutputTransport.js +77 -0
  261. package/dist/connectors/telegram/output/createOutputTransport.js.map +1 -0
  262. package/dist/connectors/telegram/output/dmOutputTransport.d.ts +47 -0
  263. package/dist/connectors/telegram/output/dmOutputTransport.d.ts.map +1 -0
  264. package/dist/connectors/telegram/output/dmOutputTransport.js +412 -0
  265. package/dist/connectors/telegram/output/dmOutputTransport.js.map +1 -0
  266. package/dist/connectors/telegram/outputBacklogGlue.d.ts +38 -0
  267. package/dist/connectors/telegram/outputBacklogGlue.d.ts.map +1 -0
  268. package/dist/connectors/telegram/outputBacklogGlue.js +49 -0
  269. package/dist/connectors/telegram/outputBacklogGlue.js.map +1 -0
  270. package/dist/connectors/telegram/outputFlushPlan.d.ts +93 -0
  271. package/dist/connectors/telegram/outputFlushPlan.d.ts.map +1 -0
  272. package/dist/connectors/telegram/outputFlushPlan.js +120 -0
  273. package/dist/connectors/telegram/outputFlushPlan.js.map +1 -0
  274. package/dist/connectors/telegram/questionKeyboards.d.ts +30 -0
  275. package/dist/connectors/telegram/questionKeyboards.d.ts.map +1 -0
  276. package/dist/connectors/telegram/questionKeyboards.js +37 -0
  277. package/dist/connectors/telegram/questionKeyboards.js.map +1 -0
  278. package/dist/connectors/telegram/renderAgentHtml.d.ts +27 -0
  279. package/dist/connectors/telegram/renderAgentHtml.d.ts.map +1 -0
  280. package/dist/connectors/telegram/renderAgentHtml.js +97 -0
  281. package/dist/connectors/telegram/renderAgentHtml.js.map +1 -0
  282. package/dist/connectors/telegram/sessionKeyCodec.d.ts +28 -0
  283. package/dist/connectors/telegram/sessionKeyCodec.d.ts.map +1 -0
  284. package/dist/connectors/telegram/sessionKeyCodec.js +107 -0
  285. package/dist/connectors/telegram/sessionKeyCodec.js.map +1 -0
  286. package/dist/connectors/telegram/telegramCallGuard.d.ts +19 -0
  287. package/dist/connectors/telegram/telegramCallGuard.d.ts.map +1 -0
  288. package/dist/connectors/telegram/telegramCallGuard.js +35 -0
  289. package/dist/connectors/telegram/telegramCallGuard.js.map +1 -0
  290. package/dist/connectors/telegram/timezonePicker.d.ts +85 -0
  291. package/dist/connectors/telegram/timezonePicker.d.ts.map +1 -0
  292. package/dist/connectors/telegram/timezonePicker.js +142 -0
  293. package/dist/connectors/telegram/timezonePicker.js.map +1 -0
  294. package/dist/connectors/telegram/updateDispatcher.d.ts +85 -0
  295. package/dist/connectors/telegram/updateDispatcher.d.ts.map +1 -0
  296. package/dist/connectors/telegram/updateDispatcher.js +159 -0
  297. package/dist/connectors/telegram/updateDispatcher.js.map +1 -0
  298. package/dist/connectors/test/connector.d.ts +52 -0
  299. package/dist/connectors/test/connector.d.ts.map +1 -0
  300. package/dist/connectors/test/connector.js +143 -0
  301. package/dist/connectors/test/connector.js.map +1 -0
  302. package/dist/connectors/test/sessionKeyCodec.d.ts +25 -0
  303. package/dist/connectors/test/sessionKeyCodec.d.ts.map +1 -0
  304. package/dist/connectors/test/sessionKeyCodec.js +50 -0
  305. package/dist/connectors/test/sessionKeyCodec.js.map +1 -0
  306. package/dist/diagLog.d.ts +6 -0
  307. package/dist/diagLog.d.ts.map +1 -0
  308. package/dist/diagLog.js +58 -0
  309. package/dist/diagLog.js.map +1 -0
  310. package/dist/effortLevels.d.ts +68 -0
  311. package/dist/effortLevels.d.ts.map +1 -0
  312. package/dist/effortLevels.js +114 -0
  313. package/dist/effortLevels.js.map +1 -0
  314. package/dist/folderName.d.ts +42 -0
  315. package/dist/folderName.d.ts.map +1 -0
  316. package/dist/folderName.js +51 -0
  317. package/dist/folderName.js.map +1 -0
  318. package/dist/i18n/de.d.ts +2 -0
  319. package/dist/i18n/de.d.ts.map +1 -0
  320. package/dist/i18n/de.js +537 -0
  321. package/dist/i18n/de.js.map +1 -0
  322. package/dist/i18n/en.d.ts +7 -0
  323. package/dist/i18n/en.d.ts.map +1 -0
  324. package/dist/i18n/en.js +566 -0
  325. package/dist/i18n/en.js.map +1 -0
  326. package/dist/i18n/es.d.ts +2 -0
  327. package/dist/i18n/es.d.ts.map +1 -0
  328. package/dist/i18n/es.js +537 -0
  329. package/dist/i18n/es.js.map +1 -0
  330. package/dist/i18n/fr.d.ts +2 -0
  331. package/dist/i18n/fr.d.ts.map +1 -0
  332. package/dist/i18n/fr.js +537 -0
  333. package/dist/i18n/fr.js.map +1 -0
  334. package/dist/i18n/hi.d.ts +2 -0
  335. package/dist/i18n/hi.d.ts.map +1 -0
  336. package/dist/i18n/hi.js +537 -0
  337. package/dist/i18n/hi.js.map +1 -0
  338. package/dist/i18n/ja.d.ts +2 -0
  339. package/dist/i18n/ja.d.ts.map +1 -0
  340. package/dist/i18n/ja.js +537 -0
  341. package/dist/i18n/ja.js.map +1 -0
  342. package/dist/i18n/ka.d.ts +2 -0
  343. package/dist/i18n/ka.d.ts.map +1 -0
  344. package/dist/i18n/ka.js +537 -0
  345. package/dist/i18n/ka.js.map +1 -0
  346. package/dist/i18n/pt.d.ts +2 -0
  347. package/dist/i18n/pt.d.ts.map +1 -0
  348. package/dist/i18n/pt.js +537 -0
  349. package/dist/i18n/pt.js.map +1 -0
  350. package/dist/i18n/ru.d.ts +6 -0
  351. package/dist/i18n/ru.d.ts.map +1 -0
  352. package/dist/i18n/ru.js +540 -0
  353. package/dist/i18n/ru.js.map +1 -0
  354. package/dist/i18n/uk.d.ts +8 -0
  355. package/dist/i18n/uk.d.ts.map +1 -0
  356. package/dist/i18n/uk.js +542 -0
  357. package/dist/i18n/uk.js.map +1 -0
  358. package/dist/i18n/uz.d.ts +2 -0
  359. package/dist/i18n/uz.d.ts.map +1 -0
  360. package/dist/i18n/uz.js +537 -0
  361. package/dist/i18n/uz.js.map +1 -0
  362. package/dist/i18n/zh.d.ts +2 -0
  363. package/dist/i18n/zh.d.ts.map +1 -0
  364. package/dist/i18n/zh.js +537 -0
  365. package/dist/i18n/zh.js.map +1 -0
  366. package/dist/i18n.d.ts +115 -0
  367. package/dist/i18n.d.ts.map +1 -0
  368. package/dist/i18n.js +233 -0
  369. package/dist/i18n.js.map +1 -0
  370. package/dist/index.d.ts +3 -0
  371. package/dist/index.d.ts.map +1 -0
  372. package/dist/index.js +10 -0
  373. package/dist/index.js.map +1 -0
  374. package/dist/installManager.d.ts +99 -0
  375. package/dist/installManager.d.ts.map +1 -0
  376. package/dist/installManager.js +943 -0
  377. package/dist/installManager.js.map +1 -0
  378. package/dist/instanceLock.d.ts +161 -0
  379. package/dist/instanceLock.d.ts.map +1 -0
  380. package/dist/instanceLock.js +388 -0
  381. package/dist/instanceLock.js.map +1 -0
  382. package/dist/mcpConfig.d.ts +76 -0
  383. package/dist/mcpConfig.d.ts.map +1 -0
  384. package/dist/mcpConfig.js +270 -0
  385. package/dist/mcpConfig.js.map +1 -0
  386. package/dist/openCodeOpenQuestion.d.ts +44 -0
  387. package/dist/openCodeOpenQuestion.d.ts.map +1 -0
  388. package/dist/openCodeOpenQuestion.js +64 -0
  389. package/dist/openCodeOpenQuestion.js.map +1 -0
  390. package/dist/openCodeQuestionFlow.d.ts +105 -0
  391. package/dist/openCodeQuestionFlow.d.ts.map +1 -0
  392. package/dist/openCodeQuestionFlow.js +143 -0
  393. package/dist/openCodeQuestionFlow.js.map +1 -0
  394. package/dist/openCodeSessionRouting.d.ts +133 -0
  395. package/dist/openCodeSessionRouting.d.ts.map +1 -0
  396. package/dist/openCodeSessionRouting.js +253 -0
  397. package/dist/openCodeSessionRouting.js.map +1 -0
  398. package/dist/openCodeSessionTitle.d.ts +50 -0
  399. package/dist/openCodeSessionTitle.d.ts.map +1 -0
  400. package/dist/openCodeSessionTitle.js +84 -0
  401. package/dist/openCodeSessionTitle.js.map +1 -0
  402. package/dist/outputTrace.d.ts +108 -0
  403. package/dist/outputTrace.d.ts.map +1 -0
  404. package/dist/outputTrace.js +430 -0
  405. package/dist/outputTrace.js.map +1 -0
  406. package/dist/pendingQuestionRepost.d.ts +47 -0
  407. package/dist/pendingQuestionRepost.d.ts.map +1 -0
  408. package/dist/pendingQuestionRepost.js +29 -0
  409. package/dist/pendingQuestionRepost.js.map +1 -0
  410. package/dist/pinnedStatus.d.ts +52 -0
  411. package/dist/pinnedStatus.d.ts.map +1 -0
  412. package/dist/pinnedStatus.js +36 -0
  413. package/dist/pinnedStatus.js.map +1 -0
  414. package/dist/platform/answerSink.d.ts +93 -0
  415. package/dist/platform/answerSink.d.ts.map +1 -0
  416. package/dist/platform/answerSink.js +31 -0
  417. package/dist/platform/answerSink.js.map +1 -0
  418. package/dist/platform/capabilityFallback.d.ts +39 -0
  419. package/dist/platform/capabilityFallback.d.ts.map +1 -0
  420. package/dist/platform/capabilityFallback.js +55 -0
  421. package/dist/platform/capabilityFallback.js.map +1 -0
  422. package/dist/platform/commandRouter.d.ts +51 -0
  423. package/dist/platform/commandRouter.d.ts.map +1 -0
  424. package/dist/platform/commandRouter.js +53 -0
  425. package/dist/platform/commandRouter.js.map +1 -0
  426. package/dist/platform/connectorSet.d.ts +39 -0
  427. package/dist/platform/connectorSet.d.ts.map +1 -0
  428. package/dist/platform/connectorSet.js +55 -0
  429. package/dist/platform/connectorSet.js.map +1 -0
  430. package/dist/platform/inbound.d.ts +147 -0
  431. package/dist/platform/inbound.d.ts.map +1 -0
  432. package/dist/platform/inbound.js +18 -0
  433. package/dist/platform/inbound.js.map +1 -0
  434. package/dist/platform/outbound.d.ts +225 -0
  435. package/dist/platform/outbound.d.ts.map +1 -0
  436. package/dist/platform/outbound.js +30 -0
  437. package/dist/platform/outbound.js.map +1 -0
  438. package/dist/platform/unservedStateGuard.d.ts +27 -0
  439. package/dist/platform/unservedStateGuard.d.ts.map +1 -0
  440. package/dist/platform/unservedStateGuard.js +42 -0
  441. package/dist/platform/unservedStateGuard.js.map +1 -0
  442. package/dist/postToSession.d.ts +94 -0
  443. package/dist/postToSession.d.ts.map +1 -0
  444. package/dist/postToSession.js +56 -0
  445. package/dist/postToSession.js.map +1 -0
  446. package/dist/progressLine.d.ts +180 -0
  447. package/dist/progressLine.d.ts.map +1 -0
  448. package/dist/progressLine.js +293 -0
  449. package/dist/progressLine.js.map +1 -0
  450. package/dist/rateLimiter.d.ts +246 -0
  451. package/dist/rateLimiter.d.ts.map +1 -0
  452. package/dist/rateLimiter.js +555 -0
  453. package/dist/rateLimiter.js.map +1 -0
  454. package/dist/requests/answerRequest.d.ts +57 -0
  455. package/dist/requests/answerRequest.d.ts.map +1 -0
  456. package/dist/requests/answerRequest.js +96 -0
  457. package/dist/requests/answerRequest.js.map +1 -0
  458. package/dist/requests/answerTail.d.ts +83 -0
  459. package/dist/requests/answerTail.d.ts.map +1 -0
  460. package/dist/requests/answerTail.js +102 -0
  461. package/dist/requests/answerTail.js.map +1 -0
  462. package/dist/requests/limitWaitAnswer.d.ts +87 -0
  463. package/dist/requests/limitWaitAnswer.d.ts.map +1 -0
  464. package/dist/requests/limitWaitAnswer.js +83 -0
  465. package/dist/requests/limitWaitAnswer.js.map +1 -0
  466. package/dist/requests/requestGroup.d.ts +44 -0
  467. package/dist/requests/requestGroup.d.ts.map +1 -0
  468. package/dist/requests/requestGroup.js +63 -0
  469. package/dist/requests/requestGroup.js.map +1 -0
  470. package/dist/requests/requestHeader.d.ts +70 -0
  471. package/dist/requests/requestHeader.d.ts.map +1 -0
  472. package/dist/requests/requestHeader.js +83 -0
  473. package/dist/requests/requestHeader.js.map +1 -0
  474. package/dist/requests/requestLedger.d.ts +217 -0
  475. package/dist/requests/requestLedger.d.ts.map +1 -0
  476. package/dist/requests/requestLedger.js +468 -0
  477. package/dist/requests/requestLedger.js.map +1 -0
  478. package/dist/requests/sessionTurnProbe.d.ts +52 -0
  479. package/dist/requests/sessionTurnProbe.d.ts.map +1 -0
  480. package/dist/requests/sessionTurnProbe.js +29 -0
  481. package/dist/requests/sessionTurnProbe.js.map +1 -0
  482. package/dist/requests/types.d.ts +181 -0
  483. package/dist/requests/types.d.ts.map +1 -0
  484. package/dist/requests/types.js +9 -0
  485. package/dist/requests/types.js.map +1 -0
  486. package/dist/requests/wakeUpEngine.d.ts +160 -0
  487. package/dist/requests/wakeUpEngine.d.ts.map +1 -0
  488. package/dist/requests/wakeUpEngine.js +399 -0
  489. package/dist/requests/wakeUpEngine.js.map +1 -0
  490. package/dist/requests/wakeUpRules.d.ts +151 -0
  491. package/dist/requests/wakeUpRules.d.ts.map +1 -0
  492. package/dist/requests/wakeUpRules.js +167 -0
  493. package/dist/requests/wakeUpRules.js.map +1 -0
  494. package/dist/resumeContext.d.ts +87 -0
  495. package/dist/resumeContext.d.ts.map +1 -0
  496. package/dist/resumeContext.js +114 -0
  497. package/dist/resumeContext.js.map +1 -0
  498. package/dist/scheduler/checkRun.d.ts +95 -0
  499. package/dist/scheduler/checkRun.d.ts.map +1 -0
  500. package/dist/scheduler/checkRun.js +172 -0
  501. package/dist/scheduler/checkRun.js.map +1 -0
  502. package/dist/scheduler/delivery.d.ts +99 -0
  503. package/dist/scheduler/delivery.d.ts.map +1 -0
  504. package/dist/scheduler/delivery.js +212 -0
  505. package/dist/scheduler/delivery.js.map +1 -0
  506. package/dist/scheduler/deliveryKind.d.ts +29 -0
  507. package/dist/scheduler/deliveryKind.d.ts.map +1 -0
  508. package/dist/scheduler/deliveryKind.js +39 -0
  509. package/dist/scheduler/deliveryKind.js.map +1 -0
  510. package/dist/scheduler/directoryThreads.d.ts +19 -0
  511. package/dist/scheduler/directoryThreads.d.ts.map +1 -0
  512. package/dist/scheduler/directoryThreads.js +28 -0
  513. package/dist/scheduler/directoryThreads.js.map +1 -0
  514. package/dist/scheduler/engine.d.ts +77 -0
  515. package/dist/scheduler/engine.d.ts.map +1 -0
  516. package/dist/scheduler/engine.js +337 -0
  517. package/dist/scheduler/engine.js.map +1 -0
  518. package/dist/scheduler/injection.d.ts +102 -0
  519. package/dist/scheduler/injection.d.ts.map +1 -0
  520. package/dist/scheduler/injection.js +122 -0
  521. package/dist/scheduler/injection.js.map +1 -0
  522. package/dist/scheduler/mcpBoot.d.ts +65 -0
  523. package/dist/scheduler/mcpBoot.d.ts.map +1 -0
  524. package/dist/scheduler/mcpBoot.js +60 -0
  525. package/dist/scheduler/mcpBoot.js.map +1 -0
  526. package/dist/scheduler/mcpSurface.d.ts +355 -0
  527. package/dist/scheduler/mcpSurface.d.ts.map +1 -0
  528. package/dist/scheduler/mcpSurface.js +1257 -0
  529. package/dist/scheduler/mcpSurface.js.map +1 -0
  530. package/dist/scheduler/rebindResume.d.ts +27 -0
  531. package/dist/scheduler/rebindResume.d.ts.map +1 -0
  532. package/dist/scheduler/rebindResume.js +17 -0
  533. package/dist/scheduler/rebindResume.js.map +1 -0
  534. package/dist/scheduler/recurrence.d.ts +58 -0
  535. package/dist/scheduler/recurrence.d.ts.map +1 -0
  536. package/dist/scheduler/recurrence.js +210 -0
  537. package/dist/scheduler/recurrence.js.map +1 -0
  538. package/dist/scheduler/runLedger.d.ts +59 -0
  539. package/dist/scheduler/runLedger.d.ts.map +1 -0
  540. package/dist/scheduler/runLedger.js +54 -0
  541. package/dist/scheduler/runLedger.js.map +1 -0
  542. package/dist/scheduler/store.d.ts +97 -0
  543. package/dist/scheduler/store.d.ts.map +1 -0
  544. package/dist/scheduler/store.js +124 -0
  545. package/dist/scheduler/store.js.map +1 -0
  546. package/dist/scheduler/timezoneRecompute.d.ts +61 -0
  547. package/dist/scheduler/timezoneRecompute.d.ts.map +1 -0
  548. package/dist/scheduler/timezoneRecompute.js +46 -0
  549. package/dist/scheduler/timezoneRecompute.js.map +1 -0
  550. package/dist/scheduler/types.d.ts +139 -0
  551. package/dist/scheduler/types.d.ts.map +1 -0
  552. package/dist/scheduler/types.js +8 -0
  553. package/dist/scheduler/types.js.map +1 -0
  554. package/dist/sendErrorClassifier.d.ts +45 -0
  555. package/dist/sendErrorClassifier.d.ts.map +1 -0
  556. package/dist/sendErrorClassifier.js +65 -0
  557. package/dist/sendErrorClassifier.js.map +1 -0
  558. package/dist/sessionKey.d.ts +136 -0
  559. package/dist/sessionKey.d.ts.map +1 -0
  560. package/dist/sessionKey.js +153 -0
  561. package/dist/sessionKey.js.map +1 -0
  562. package/dist/sessionPick.d.ts +42 -0
  563. package/dist/sessionPick.d.ts.map +1 -0
  564. package/dist/sessionPick.js +39 -0
  565. package/dist/sessionPick.js.map +1 -0
  566. package/dist/shutdown.d.ts +126 -0
  567. package/dist/shutdown.d.ts.map +1 -0
  568. package/dist/shutdown.js +164 -0
  569. package/dist/shutdown.js.map +1 -0
  570. package/dist/startupPromptBuffer.d.ts +85 -0
  571. package/dist/startupPromptBuffer.d.ts.map +1 -0
  572. package/dist/startupPromptBuffer.js +123 -0
  573. package/dist/startupPromptBuffer.js.map +1 -0
  574. package/dist/state.d.ts +1245 -0
  575. package/dist/state.d.ts.map +1 -0
  576. package/dist/state.js +1830 -0
  577. package/dist/state.js.map +1 -0
  578. package/dist/threadContextPreamble.d.ts +89 -0
  579. package/dist/threadContextPreamble.d.ts.map +1 -0
  580. package/dist/threadContextPreamble.js +102 -0
  581. package/dist/threadContextPreamble.js.map +1 -0
  582. package/dist/threadRouting.d.ts +164 -0
  583. package/dist/threadRouting.d.ts.map +1 -0
  584. package/dist/threadRouting.js +182 -0
  585. package/dist/threadRouting.js.map +1 -0
  586. package/dist/types.d.ts +1015 -0
  587. package/dist/types.d.ts.map +1 -0
  588. package/dist/types.js +3 -0
  589. package/dist/types.js.map +1 -0
  590. package/dist/utils/abortableFifo.d.ts +10 -0
  591. package/dist/utils/abortableFifo.d.ts.map +1 -0
  592. package/dist/utils/abortableFifo.js +55 -0
  593. package/dist/utils/abortableFifo.js.map +1 -0
  594. package/dist/utils/adoptedToolList.d.ts +27 -0
  595. package/dist/utils/adoptedToolList.d.ts.map +1 -0
  596. package/dist/utils/adoptedToolList.js +22 -0
  597. package/dist/utils/adoptedToolList.js.map +1 -0
  598. package/dist/utils/agentEnvironment.d.ts +42 -0
  599. package/dist/utils/agentEnvironment.d.ts.map +1 -0
  600. package/dist/utils/agentEnvironment.js +122 -0
  601. package/dist/utils/agentEnvironment.js.map +1 -0
  602. package/dist/utils/ansiClean.d.ts +11 -0
  603. package/dist/utils/ansiClean.d.ts.map +1 -0
  604. package/dist/utils/ansiClean.js +139 -0
  605. package/dist/utils/ansiClean.js.map +1 -0
  606. package/dist/utils/autoContinueOnLimit.d.ts +49 -0
  607. package/dist/utils/autoContinueOnLimit.d.ts.map +1 -0
  608. package/dist/utils/autoContinueOnLimit.js +69 -0
  609. package/dist/utils/autoContinueOnLimit.js.map +1 -0
  610. package/dist/utils/canonicalPathContainment.d.ts +7 -0
  611. package/dist/utils/canonicalPathContainment.d.ts.map +1 -0
  612. package/dist/utils/canonicalPathContainment.js +48 -0
  613. package/dist/utils/canonicalPathContainment.js.map +1 -0
  614. package/dist/utils/claudeAuthLogin.d.ts +71 -0
  615. package/dist/utils/claudeAuthLogin.d.ts.map +1 -0
  616. package/dist/utils/claudeAuthLogin.js +93 -0
  617. package/dist/utils/claudeAuthLogin.js.map +1 -0
  618. package/dist/utils/claudeChunkClassifier.d.ts +97 -0
  619. package/dist/utils/claudeChunkClassifier.d.ts.map +1 -0
  620. package/dist/utils/claudeChunkClassifier.js +254 -0
  621. package/dist/utils/claudeChunkClassifier.js.map +1 -0
  622. package/dist/utils/claudeCodeVersion.d.ts +31 -0
  623. package/dist/utils/claudeCodeVersion.d.ts.map +1 -0
  624. package/dist/utils/claudeCodeVersion.js +62 -0
  625. package/dist/utils/claudeCodeVersion.js.map +1 -0
  626. package/dist/utils/claudeCompactHook.d.ts +64 -0
  627. package/dist/utils/claudeCompactHook.d.ts.map +1 -0
  628. package/dist/utils/claudeCompactHook.js +98 -0
  629. package/dist/utils/claudeCompactHook.js.map +1 -0
  630. package/dist/utils/claudeLivenessAction.d.ts +208 -0
  631. package/dist/utils/claudeLivenessAction.d.ts.map +1 -0
  632. package/dist/utils/claudeLivenessAction.js +135 -0
  633. package/dist/utils/claudeLivenessAction.js.map +1 -0
  634. package/dist/utils/claudeMcpHeal.d.ts +92 -0
  635. package/dist/utils/claudeMcpHeal.d.ts.map +1 -0
  636. package/dist/utils/claudeMcpHeal.js +91 -0
  637. package/dist/utils/claudeMcpHeal.js.map +1 -0
  638. package/dist/utils/claudeRelayRouting.d.ts +86 -0
  639. package/dist/utils/claudeRelayRouting.d.ts.map +1 -0
  640. package/dist/utils/claudeRelayRouting.js +159 -0
  641. package/dist/utils/claudeRelayRouting.js.map +1 -0
  642. package/dist/utils/claudeRuntimeInfo.d.ts +26 -0
  643. package/dist/utils/claudeRuntimeInfo.d.ts.map +1 -0
  644. package/dist/utils/claudeRuntimeInfo.js +151 -0
  645. package/dist/utils/claudeRuntimeInfo.js.map +1 -0
  646. package/dist/utils/claudeScrapeShapes.d.ts +256 -0
  647. package/dist/utils/claudeScrapeShapes.d.ts.map +1 -0
  648. package/dist/utils/claudeScrapeShapes.js +290 -0
  649. package/dist/utils/claudeScrapeShapes.js.map +1 -0
  650. package/dist/utils/claudeSessionTitle.d.ts +27 -0
  651. package/dist/utils/claudeSessionTitle.d.ts.map +1 -0
  652. package/dist/utils/claudeSessionTitle.js +90 -0
  653. package/dist/utils/claudeSessionTitle.js.map +1 -0
  654. package/dist/utils/claudeStreamJson.d.ts +202 -0
  655. package/dist/utils/claudeStreamJson.d.ts.map +1 -0
  656. package/dist/utils/claudeStreamJson.js +351 -0
  657. package/dist/utils/claudeStreamJson.js.map +1 -0
  658. package/dist/utils/claudeSubagentTail.d.ts +93 -0
  659. package/dist/utils/claudeSubagentTail.d.ts.map +1 -0
  660. package/dist/utils/claudeSubagentTail.js +136 -0
  661. package/dist/utils/claudeSubagentTail.js.map +1 -0
  662. package/dist/utils/clearThreadOutputQueues.d.ts +43 -0
  663. package/dist/utils/clearThreadOutputQueues.d.ts.map +1 -0
  664. package/dist/utils/clearThreadOutputQueues.js +39 -0
  665. package/dist/utils/clearThreadOutputQueues.js.map +1 -0
  666. package/dist/utils/compactCommandRoute.d.ts +45 -0
  667. package/dist/utils/compactCommandRoute.d.ts.map +1 -0
  668. package/dist/utils/compactCommandRoute.js +36 -0
  669. package/dist/utils/compactCommandRoute.js.map +1 -0
  670. package/dist/utils/compactOnIdle.d.ts +329 -0
  671. package/dist/utils/compactOnIdle.d.ts.map +1 -0
  672. package/dist/utils/compactOnIdle.js +379 -0
  673. package/dist/utils/compactOnIdle.js.map +1 -0
  674. package/dist/utils/consoleFileTap.d.ts +51 -0
  675. package/dist/utils/consoleFileTap.d.ts.map +1 -0
  676. package/dist/utils/consoleFileTap.js +86 -0
  677. package/dist/utils/consoleFileTap.js.map +1 -0
  678. package/dist/utils/displayVerbosity.d.ts +44 -0
  679. package/dist/utils/displayVerbosity.d.ts.map +1 -0
  680. package/dist/utils/displayVerbosity.js +75 -0
  681. package/dist/utils/displayVerbosity.js.map +1 -0
  682. package/dist/utils/download.d.ts +72 -0
  683. package/dist/utils/download.d.ts.map +1 -0
  684. package/dist/utils/download.js +216 -0
  685. package/dist/utils/download.js.map +1 -0
  686. package/dist/utils/draftFinalize.d.ts +110 -0
  687. package/dist/utils/draftFinalize.d.ts.map +1 -0
  688. package/dist/utils/draftFinalize.js +100 -0
  689. package/dist/utils/draftFinalize.js.map +1 -0
  690. package/dist/utils/draftId.d.ts +36 -0
  691. package/dist/utils/draftId.d.ts.map +1 -0
  692. package/dist/utils/draftId.js +46 -0
  693. package/dist/utils/draftId.js.map +1 -0
  694. package/dist/utils/draftPacer.d.ts +72 -0
  695. package/dist/utils/draftPacer.d.ts.map +1 -0
  696. package/dist/utils/draftPacer.js +53 -0
  697. package/dist/utils/draftPacer.js.map +1 -0
  698. package/dist/utils/effortStartupKeystroke.d.ts +20 -0
  699. package/dist/utils/effortStartupKeystroke.d.ts.map +1 -0
  700. package/dist/utils/effortStartupKeystroke.js +28 -0
  701. package/dist/utils/effortStartupKeystroke.js.map +1 -0
  702. package/dist/utils/ensureSessionPlan.d.ts +70 -0
  703. package/dist/utils/ensureSessionPlan.d.ts.map +1 -0
  704. package/dist/utils/ensureSessionPlan.js +54 -0
  705. package/dist/utils/ensureSessionPlan.js.map +1 -0
  706. package/dist/utils/fileSendPlan.d.ts +217 -0
  707. package/dist/utils/fileSendPlan.d.ts.map +1 -0
  708. package/dist/utils/fileSendPlan.js +291 -0
  709. package/dist/utils/fileSendPlan.js.map +1 -0
  710. package/dist/utils/fileSendService.d.ts +94 -0
  711. package/dist/utils/fileSendService.d.ts.map +1 -0
  712. package/dist/utils/fileSendService.js +387 -0
  713. package/dist/utils/fileSendService.js.map +1 -0
  714. package/dist/utils/groupFinalizePlan.d.ts +38 -0
  715. package/dist/utils/groupFinalizePlan.d.ts.map +1 -0
  716. package/dist/utils/groupFinalizePlan.js +35 -0
  717. package/dist/utils/groupFinalizePlan.js.map +1 -0
  718. package/dist/utils/identicalOutputGuard.d.ts +83 -0
  719. package/dist/utils/identicalOutputGuard.d.ts.map +1 -0
  720. package/dist/utils/identicalOutputGuard.js +99 -0
  721. package/dist/utils/identicalOutputGuard.js.map +1 -0
  722. package/dist/utils/isoTimestamp.d.ts +16 -0
  723. package/dist/utils/isoTimestamp.d.ts.map +1 -0
  724. package/dist/utils/isoTimestamp.js +34 -0
  725. package/dist/utils/isoTimestamp.js.map +1 -0
  726. package/dist/utils/jsonStreamBusyWatchdog.d.ts +130 -0
  727. package/dist/utils/jsonStreamBusyWatchdog.d.ts.map +1 -0
  728. package/dist/utils/jsonStreamBusyWatchdog.js +122 -0
  729. package/dist/utils/jsonStreamBusyWatchdog.js.map +1 -0
  730. package/dist/utils/jsonStreamHost.d.ts +227 -0
  731. package/dist/utils/jsonStreamHost.d.ts.map +1 -0
  732. package/dist/utils/jsonStreamHost.js +417 -0
  733. package/dist/utils/jsonStreamHost.js.map +1 -0
  734. package/dist/utils/keyedTransitionQueue.d.ts +18 -0
  735. package/dist/utils/keyedTransitionQueue.d.ts.map +1 -0
  736. package/dist/utils/keyedTransitionQueue.js +34 -0
  737. package/dist/utils/keyedTransitionQueue.js.map +1 -0
  738. package/dist/utils/limitEpisodeRecovery.d.ts +92 -0
  739. package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -0
  740. package/dist/utils/limitEpisodeRecovery.js +133 -0
  741. package/dist/utils/limitEpisodeRecovery.js.map +1 -0
  742. package/dist/utils/limitHeldPromptQueue.d.ts +48 -0
  743. package/dist/utils/limitHeldPromptQueue.d.ts.map +1 -0
  744. package/dist/utils/limitHeldPromptQueue.js +59 -0
  745. package/dist/utils/limitHeldPromptQueue.js.map +1 -0
  746. package/dist/utils/limitHeldPrompts.d.ts +58 -0
  747. package/dist/utils/limitHeldPrompts.d.ts.map +1 -0
  748. package/dist/utils/limitHeldPrompts.js +65 -0
  749. package/dist/utils/limitHeldPrompts.js.map +1 -0
  750. package/dist/utils/linkPreviewSuppression.d.ts +18 -0
  751. package/dist/utils/linkPreviewSuppression.d.ts.map +1 -0
  752. package/dist/utils/linkPreviewSuppression.js +37 -0
  753. package/dist/utils/linkPreviewSuppression.js.map +1 -0
  754. package/dist/utils/localClock.d.ts +15 -0
  755. package/dist/utils/localClock.d.ts.map +1 -0
  756. package/dist/utils/localClock.js +29 -0
  757. package/dist/utils/localClock.js.map +1 -0
  758. package/dist/utils/markdownTableRender.d.ts +83 -0
  759. package/dist/utils/markdownTableRender.d.ts.map +1 -0
  760. package/dist/utils/markdownTableRender.js +298 -0
  761. package/dist/utils/markdownTableRender.js.map +1 -0
  762. package/dist/utils/mediaGroupCollector.d.ts +51 -0
  763. package/dist/utils/mediaGroupCollector.d.ts.map +1 -0
  764. package/dist/utils/mediaGroupCollector.js +90 -0
  765. package/dist/utils/mediaGroupCollector.js.map +1 -0
  766. package/dist/utils/messageSendService.d.ts +136 -0
  767. package/dist/utils/messageSendService.d.ts.map +1 -0
  768. package/dist/utils/messageSendService.js +165 -0
  769. package/dist/utils/messageSendService.js.map +1 -0
  770. package/dist/utils/minutesOverride.d.ts +7 -0
  771. package/dist/utils/minutesOverride.d.ts.map +1 -0
  772. package/dist/utils/minutesOverride.js +16 -0
  773. package/dist/utils/minutesOverride.js.map +1 -0
  774. package/dist/utils/modelPickerPlan.d.ts +119 -0
  775. package/dist/utils/modelPickerPlan.d.ts.map +1 -0
  776. package/dist/utils/modelPickerPlan.js +171 -0
  777. package/dist/utils/modelPickerPlan.js.map +1 -0
  778. package/dist/utils/modelSetReplyDecision.d.ts +67 -0
  779. package/dist/utils/modelSetReplyDecision.d.ts.map +1 -0
  780. package/dist/utils/modelSetReplyDecision.js +27 -0
  781. package/dist/utils/modelSetReplyDecision.js.map +1 -0
  782. package/dist/utils/openCodeAuthLogin.d.ts +181 -0
  783. package/dist/utils/openCodeAuthLogin.d.ts.map +1 -0
  784. package/dist/utils/openCodeAuthLogin.js +393 -0
  785. package/dist/utils/openCodeAuthLogin.js.map +1 -0
  786. package/dist/utils/openCodeCompactPlugin.d.ts +81 -0
  787. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -0
  788. package/dist/utils/openCodeCompactPlugin.js +146 -0
  789. package/dist/utils/openCodeCompactPlugin.js.map +1 -0
  790. package/dist/utils/openCodeTurnActivity.d.ts +67 -0
  791. package/dist/utils/openCodeTurnActivity.d.ts.map +1 -0
  792. package/dist/utils/openCodeTurnActivity.js +27 -0
  793. package/dist/utils/openCodeTurnActivity.js.map +1 -0
  794. package/dist/utils/outputDebounce.d.ts +24 -0
  795. package/dist/utils/outputDebounce.d.ts.map +1 -0
  796. package/dist/utils/outputDebounce.js +30 -0
  797. package/dist/utils/outputDebounce.js.map +1 -0
  798. package/dist/utils/outputFlushTiming.d.ts +54 -0
  799. package/dist/utils/outputFlushTiming.d.ts.map +1 -0
  800. package/dist/utils/outputFlushTiming.js +48 -0
  801. package/dist/utils/outputFlushTiming.js.map +1 -0
  802. package/dist/utils/paginateList.d.ts +25 -0
  803. package/dist/utils/paginateList.d.ts.map +1 -0
  804. package/dist/utils/paginateList.js +32 -0
  805. package/dist/utils/paginateList.js.map +1 -0
  806. package/dist/utils/paneDiff.d.ts +55 -0
  807. package/dist/utils/paneDiff.d.ts.map +1 -0
  808. package/dist/utils/paneDiff.js +88 -0
  809. package/dist/utils/paneDiff.js.map +1 -0
  810. package/dist/utils/paneResizeGuard.d.ts +69 -0
  811. package/dist/utils/paneResizeGuard.d.ts.map +1 -0
  812. package/dist/utils/paneResizeGuard.js +91 -0
  813. package/dist/utils/paneResizeGuard.js.map +1 -0
  814. package/dist/utils/persistAdapterSessionIds.d.ts +39 -0
  815. package/dist/utils/persistAdapterSessionIds.d.ts.map +1 -0
  816. package/dist/utils/persistAdapterSessionIds.js +28 -0
  817. package/dist/utils/persistAdapterSessionIds.js.map +1 -0
  818. package/dist/utils/pinnedBannerSkipDecision.d.ts +44 -0
  819. package/dist/utils/pinnedBannerSkipDecision.d.ts.map +1 -0
  820. package/dist/utils/pinnedBannerSkipDecision.js +20 -0
  821. package/dist/utils/pinnedBannerSkipDecision.js.map +1 -0
  822. package/dist/utils/pollBackoff.d.ts +45 -0
  823. package/dist/utils/pollBackoff.d.ts.map +1 -0
  824. package/dist/utils/pollBackoff.js +44 -0
  825. package/dist/utils/pollBackoff.js.map +1 -0
  826. package/dist/utils/promptDelivery.d.ts +46 -0
  827. package/dist/utils/promptDelivery.d.ts.map +1 -0
  828. package/dist/utils/promptDelivery.js +49 -0
  829. package/dist/utils/promptDelivery.js.map +1 -0
  830. package/dist/utils/providerDisconnectPlan.d.ts +82 -0
  831. package/dist/utils/providerDisconnectPlan.d.ts.map +1 -0
  832. package/dist/utils/providerDisconnectPlan.js +110 -0
  833. package/dist/utils/providerDisconnectPlan.js.map +1 -0
  834. package/dist/utils/rateLimitLog.d.ts +48 -0
  835. package/dist/utils/rateLimitLog.d.ts.map +1 -0
  836. package/dist/utils/rateLimitLog.js +43 -0
  837. package/dist/utils/rateLimitLog.js.map +1 -0
  838. package/dist/utils/recentRelayWindow.d.ts +165 -0
  839. package/dist/utils/recentRelayWindow.d.ts.map +1 -0
  840. package/dist/utils/recentRelayWindow.js +284 -0
  841. package/dist/utils/recentRelayWindow.js.map +1 -0
  842. package/dist/utils/recvPreviewRedaction.d.ts +23 -0
  843. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -0
  844. package/dist/utils/recvPreviewRedaction.js +39 -0
  845. package/dist/utils/recvPreviewRedaction.js.map +1 -0
  846. package/dist/utils/reminderFlow.d.ts +148 -0
  847. package/dist/utils/reminderFlow.d.ts.map +1 -0
  848. package/dist/utils/reminderFlow.js +122 -0
  849. package/dist/utils/reminderFlow.js.map +1 -0
  850. package/dist/utils/reminderScheduleText.d.ts +87 -0
  851. package/dist/utils/reminderScheduleText.d.ts.map +1 -0
  852. package/dist/utils/reminderScheduleText.js +135 -0
  853. package/dist/utils/reminderScheduleText.js.map +1 -0
  854. package/dist/utils/reminderWizard.d.ts +710 -0
  855. package/dist/utils/reminderWizard.d.ts.map +1 -0
  856. package/dist/utils/reminderWizard.js +1164 -0
  857. package/dist/utils/reminderWizard.js.map +1 -0
  858. package/dist/utils/replyQuote.d.ts +111 -0
  859. package/dist/utils/replyQuote.d.ts.map +1 -0
  860. package/dist/utils/replyQuote.js +122 -0
  861. package/dist/utils/replyQuote.js.map +1 -0
  862. package/dist/utils/resolveBinary.d.ts +25 -0
  863. package/dist/utils/resolveBinary.d.ts.map +1 -0
  864. package/dist/utils/resolveBinary.js +99 -0
  865. package/dist/utils/resolveBinary.js.map +1 -0
  866. package/dist/utils/retryAfterHeader.d.ts +7 -0
  867. package/dist/utils/retryAfterHeader.d.ts.map +1 -0
  868. package/dist/utils/retryAfterHeader.js +17 -0
  869. package/dist/utils/retryAfterHeader.js.map +1 -0
  870. package/dist/utils/rotatingJsonlFile.d.ts +40 -0
  871. package/dist/utils/rotatingJsonlFile.d.ts.map +1 -0
  872. package/dist/utils/rotatingJsonlFile.js +106 -0
  873. package/dist/utils/rotatingJsonlFile.js.map +1 -0
  874. package/dist/utils/rotatingLogFile.d.ts +25 -0
  875. package/dist/utils/rotatingLogFile.d.ts.map +1 -0
  876. package/dist/utils/rotatingLogFile.js +74 -0
  877. package/dist/utils/rotatingLogFile.js.map +1 -0
  878. package/dist/utils/sendRateTracker.d.ts +59 -0
  879. package/dist/utils/sendRateTracker.d.ts.map +1 -0
  880. package/dist/utils/sendRateTracker.js +144 -0
  881. package/dist/utils/sendRateTracker.js.map +1 -0
  882. package/dist/utils/serialQueue.d.ts +5 -0
  883. package/dist/utils/serialQueue.d.ts.map +1 -0
  884. package/dist/utils/serialQueue.js +14 -0
  885. package/dist/utils/serialQueue.js.map +1 -0
  886. package/dist/utils/sseStreamLifecycle.d.ts +32 -0
  887. package/dist/utils/sseStreamLifecycle.d.ts.map +1 -0
  888. package/dist/utils/sseStreamLifecycle.js +41 -0
  889. package/dist/utils/sseStreamLifecycle.js.map +1 -0
  890. package/dist/utils/startupReadiness.d.ts +119 -0
  891. package/dist/utils/startupReadiness.d.ts.map +1 -0
  892. package/dist/utils/startupReadiness.js +148 -0
  893. package/dist/utils/startupReadiness.js.map +1 -0
  894. package/dist/utils/statusFlushDecision.d.ts +18 -0
  895. package/dist/utils/statusFlushDecision.d.ts.map +1 -0
  896. package/dist/utils/statusFlushDecision.js +53 -0
  897. package/dist/utils/statusFlushDecision.js.map +1 -0
  898. package/dist/utils/subagentRender.d.ts +52 -0
  899. package/dist/utils/subagentRender.d.ts.map +1 -0
  900. package/dist/utils/subagentRender.js +66 -0
  901. package/dist/utils/subagentRender.js.map +1 -0
  902. package/dist/utils/subagentStatusRender.d.ts +90 -0
  903. package/dist/utils/subagentStatusRender.d.ts.map +1 -0
  904. package/dist/utils/subagentStatusRender.js +124 -0
  905. package/dist/utils/subagentStatusRender.js.map +1 -0
  906. package/dist/utils/telegramError.d.ts +2 -0
  907. package/dist/utils/telegramError.d.ts.map +1 -0
  908. package/dist/utils/telegramError.js +16 -0
  909. package/dist/utils/telegramError.js.map +1 -0
  910. package/dist/utils/terminalEmitPlan.d.ts +74 -0
  911. package/dist/utils/terminalEmitPlan.d.ts.map +1 -0
  912. package/dist/utils/terminalEmitPlan.js +86 -0
  913. package/dist/utils/terminalEmitPlan.js.map +1 -0
  914. package/dist/utils/thinkingRender.d.ts +74 -0
  915. package/dist/utils/thinkingRender.d.ts.map +1 -0
  916. package/dist/utils/thinkingRender.js +85 -0
  917. package/dist/utils/thinkingRender.js.map +1 -0
  918. package/dist/utils/threadStatusReport.d.ts +55 -0
  919. package/dist/utils/threadStatusReport.d.ts.map +1 -0
  920. package/dist/utils/threadStatusReport.js +65 -0
  921. package/dist/utils/threadStatusReport.js.map +1 -0
  922. package/dist/utils/threadToggle.d.ts +29 -0
  923. package/dist/utils/threadToggle.d.ts.map +1 -0
  924. package/dist/utils/threadToggle.js +39 -0
  925. package/dist/utils/threadToggle.js.map +1 -0
  926. package/dist/utils/timezone.d.ts +125 -0
  927. package/dist/utils/timezone.d.ts.map +1 -0
  928. package/dist/utils/timezone.js +278 -0
  929. package/dist/utils/timezone.js.map +1 -0
  930. package/dist/utils/tmuxExec.d.ts +61 -0
  931. package/dist/utils/tmuxExec.d.ts.map +1 -0
  932. package/dist/utils/tmuxExec.js +109 -0
  933. package/dist/utils/tmuxExec.js.map +1 -0
  934. package/dist/utils/tmuxSessionName.d.ts +34 -0
  935. package/dist/utils/tmuxSessionName.d.ts.map +1 -0
  936. package/dist/utils/tmuxSessionName.js +51 -0
  937. package/dist/utils/tmuxSessionName.js.map +1 -0
  938. package/dist/utils/toolResultRender.d.ts +61 -0
  939. package/dist/utils/toolResultRender.d.ts.map +1 -0
  940. package/dist/utils/toolResultRender.js +62 -0
  941. package/dist/utils/toolResultRender.js.map +1 -0
  942. package/dist/utils/topicRequest.d.ts +61 -0
  943. package/dist/utils/topicRequest.d.ts.map +1 -0
  944. package/dist/utils/topicRequest.js +68 -0
  945. package/dist/utils/topicRequest.js.map +1 -0
  946. package/dist/utils/topicView.d.ts +55 -0
  947. package/dist/utils/topicView.d.ts.map +1 -0
  948. package/dist/utils/topicView.js +56 -0
  949. package/dist/utils/topicView.js.map +1 -0
  950. package/dist/utils/transcribeAudio.d.ts +89 -0
  951. package/dist/utils/transcribeAudio.d.ts.map +1 -0
  952. package/dist/utils/transcribeAudio.js +249 -0
  953. package/dist/utils/transcribeAudio.js.map +1 -0
  954. package/dist/utils/transientFrames.d.ts +52 -0
  955. package/dist/utils/transientFrames.d.ts.map +1 -0
  956. package/dist/utils/transientFrames.js +41 -0
  957. package/dist/utils/transientFrames.js.map +1 -0
  958. package/dist/utils/typingActive.d.ts +35 -0
  959. package/dist/utils/typingActive.d.ts.map +1 -0
  960. package/dist/utils/typingActive.js +22 -0
  961. package/dist/utils/typingActive.js.map +1 -0
  962. package/dist/utils/typingLoopBackstop.d.ts +64 -0
  963. package/dist/utils/typingLoopBackstop.d.ts.map +1 -0
  964. package/dist/utils/typingLoopBackstop.js +68 -0
  965. package/dist/utils/typingLoopBackstop.js.map +1 -0
  966. package/dist/utils/verbosityRender.d.ts +18 -0
  967. package/dist/utils/verbosityRender.d.ts.map +1 -0
  968. package/dist/utils/verbosityRender.js +17 -0
  969. package/dist/utils/verbosityRender.js.map +1 -0
  970. package/dist/utils/wedgeRecovery.d.ts +57 -0
  971. package/dist/utils/wedgeRecovery.d.ts.map +1 -0
  972. package/dist/utils/wedgeRecovery.js +24 -0
  973. package/dist/utils/wedgeRecovery.js.map +1 -0
  974. package/dist/utils.d.ts +30 -0
  975. package/dist/utils.d.ts.map +1 -0
  976. package/dist/utils.js +61 -0
  977. package/dist/utils.js.map +1 -0
  978. package/dist/validation.d.ts +113 -0
  979. package/dist/validation.d.ts.map +1 -0
  980. package/dist/validation.js +226 -0
  981. package/dist/validation.js.map +1 -0
  982. package/dist/voiceQueue.d.ts +7 -0
  983. package/dist/voiceQueue.d.ts.map +1 -0
  984. package/dist/voiceQueue.js +33 -0
  985. package/dist/voiceQueue.js.map +1 -0
  986. package/examples/.env.example +17 -0
  987. package/examples/docker-compose.yml +36 -0
  988. package/package.json +83 -4
@@ -0,0 +1,256 @@
1
+ /**
2
+ * @description Single source of truth for the LINE-SHAPE regexes/predicates of
3
+ * a scraped, ANSI-cleaned Claude TUI pane. These were originally private to
4
+ * `adapters/claudeCliAdapter.ts`; they were lifted here so BOTH the adapter
5
+ * (`stripTuiElementsWithContext` / `fenceToolResultBodies`) and the chunk
6
+ * classifier (`utils/claudeChunkClassifier.ts`) consume ONE definition per
7
+ * shape — never a copy. The rationale comments live with each shape below.
8
+ *
9
+ * Exception: {@link checkIsClaudeChromeLine} is a DELIBERATE parallel of the
10
+ * adapter's inline chrome filters (the adapter drops those lines mid-strip and
11
+ * is NOT yet rewired to this predicate — that wiring is a behavior change
12
+ * deferred to S4–S6). Keep the two in sync until then; unify when the relay
13
+ * starts consuming the classifier.
14
+ *
15
+ * Pure module: regexes + small line predicates only, no I/O, no state. Whole-
16
+ * block detectors that need parsing state (question/survey extraction, input-
17
+ * echo) stay in the adapter and are imported there, not here.
18
+ */
19
+ /**
20
+ * @description The full set of leading spinner / bullet glyphs the Claude TUI
21
+ * (and the bot's own rotating liveness frame, `CLAUDE_LIVENESS_GLYPHS =
22
+ * ['✻','✽','✶','✢']`) may prepend to a status/activity line, anchored at the
23
+ * line start with its trailing whitespace. Stripping it yields a
24
+ * GLYPH-INSENSITIVE signature so a frame that changed only its animation glyph
25
+ * dedups as identical. ONE definition for every call site that strips the lead
26
+ * glyph (status dedup, the liveness frame, the adapter's status dedup).
27
+ */
28
+ export declare const LEADING_SPINNER_GLYPH_RE: RegExp;
29
+ /** Strip a single leading spinner/bullet glyph (+ trailing ws) from a line. */
30
+ export declare function stripLeadingSpinnerGlyph(line: string): string;
31
+ /**
32
+ * @description Active spinner tick, per-line shape used by Claude's TUI
33
+ * while it is thinking or running a tool. Examples:
34
+ * `✽ Doing… (4s · ↓ 14 tokens)`
35
+ * `* Brewing… (1m 30s · ↑ 88 tokens · thought for 17s)`
36
+ * `· Working… (7s · ↓ 222 tokens)`
37
+ *
38
+ * Plan §2026-05-28 tg-output-readability / S4 (N1.b). Why a SECOND
39
+ * regex on top of `PROGRESS_LINE_RE` (in `progressLine.ts`): different
40
+ * job — this one strips tick lines that ride INSIDE a chunk that also
41
+ * carries real output, while `PROGRESS_LINE_RE` classifies whole
42
+ * pure-progress chunks bot-side. This regex does not require the token
43
+ * counter (`(5s)` alone matches), `PROGRESS_LINE_RE` does. Both accept
44
+ * a multi-word activity text since 2026-06-05 — the TUI now shows the
45
+ * active task title there ("Fixing streaming output overwrite…"), and
46
+ * the single-token `\S+…` let those ticks leak into permanent messages
47
+ * (adapter side) / flood the topic (bot side). Since 2026-06-11 both
48
+ * also accept single-level parenthesised segments inside the title —
49
+ * the TUI appends bits like "(sub-agent)" while a Task sub-agent runs
50
+ * ("Fixing relations add flow (sub-agent)…", the live topic flood), and
51
+ * a task title can carry its own parens. The trailing end-anchored
52
+ * `(<elapsed>[ · …])` parenthesis stays the load-bearing anchor — the
53
+ * same safety argument as the multi-word widening.
54
+ *
55
+ * The required text-with-ellipsis disambiguates this from a tool-call
56
+ * header (`● Bash(ls -la)`), which starts with the same `●` glyph but
57
+ * has no ellipsis.
58
+ */
59
+ export declare const SPINNER_TICK_RE: RegExp;
60
+ /**
61
+ * @description Post-thinking trailer line that Claude's TUI prints
62
+ * AFTER it has finished thinking (just before resuming the prompt
63
+ * area). Examples observed in the live ExampleGroup debug session:
64
+ * `✻ Cooked for 27s`
65
+ * `✻ Cogitated for 20s`
66
+ * `✻ Crunched for 7s`
67
+ * `✻ Baked for 10s`
68
+ * `✻ Churned for 20s` (V3 iteration 1, 2026-05-28)
69
+ * `✻ Sautéed for 20s` (V3 iteration 2, 2026-05-28)
70
+ *
71
+ * Plan §2026-05-28 tg-output-readability / S3 (N1.a). The trailer
72
+ * carries zero novel info — the same time was already streaming in
73
+ * the active spinner that preceded it — so we drop it.
74
+ *
75
+ * Verb match is `\S+`, not an explicit list. The original plan called
76
+ * for an explicit list of `-ed` forms (Cooked|Cogitated|...) on the
77
+ * theory that a future Claude verb that IS real prose (e.g.
78
+ * `✻ Ready for input`) could be silently swallowed. Two live V3
79
+ * iterations on 2026-05-28 demonstrated the opposite failure mode:
80
+ * Claude ships new spinner verbs faster than we'd realistically
81
+ * extend the list (`Churned` and `Sautéed` both slipped through on
82
+ * first encounter). The triple anchor `<glyph> <verb> for <N>s` is
83
+ * shape-specific enough that real prose almost cannot satisfy it:
84
+ * - line must START with a spinner glyph (`✻✽✶✢·*●○`) — outside
85
+ * transient TUI status, Claude never emits these as the first
86
+ * non-whitespace char of a prose line;
87
+ * - line must END with `for \d+(?:m\s+\d+)?s` — a time literal,
88
+ * not a generic noun;
89
+ * - line has no other content (anchored `$`).
90
+ * `\S+` is the minimal relaxation: one non-whitespace token between
91
+ * the glyph and ` for `. Accepts `Sautéed`, `Churned`, future verbs,
92
+ * and rejects anything containing whitespace or extra structure.
93
+ */
94
+ export declare const POST_THINKING_TRAILER_RE: RegExp;
95
+ /**
96
+ * @description Static "Thinking for {N}s…" header line the TUI prints at the
97
+ * TOP of a finished reasoning block (distinct from {@link SPINNER_TICK_RE},
98
+ * the LIVE rolling tick, and {@link POST_THINKING_TRAILER_RE}, the closing
99
+ * "Cooked for Ns" trailer). After `cleanOutput`'s ANSI-bold→`*…*` conversion
100
+ * the duration is bolded: `Thinking for *1m 6s*…`. The `⎿`-bodied reasoning
101
+ * summary follows on the next lines (see claudeToolFencing.test.ts).
102
+ *
103
+ * Anchored: glyph-or-bullet-optional `Thinking for`, a duration (`30s`,
104
+ * `1m 6s`, optionally `*`-wrapped), then the U+2026 ellipsis. The duration is
105
+ * load-bearing so a prose sentence "Thinking for a moment about X" cannot
106
+ * match (no `\d+s…` tail).
107
+ */
108
+ export declare const THINKING_HEADER_RE: RegExp;
109
+ /**
110
+ * @description A leading star-burst spinner-glyph line (`✻ ✽ ✶ ✢`) carrying an
111
+ * activity TITLE that ends in the `…` ellipsis but has NO `(elapsed · tokens)`
112
+ * stats anchor — e.g. `✻ Herding cats…` right after a turn starts, before the
113
+ * timer shows. {@link SPINNER_TICK_RE} requires the trailing `(…)` stats, so
114
+ * these bare-title frames slip past it and, being neither chrome nor a tool
115
+ * line, classify as PROSE and ship as answer content (live flood 2026-07-04,
116
+ * alongside the table). They are transient TUI activity, never content → drop.
117
+ *
118
+ * Two deliberate narrowings keep this from eating real text:
119
+ * - the trailing `…` is REQUIRED — Claude's spinner activity always ends in the
120
+ * ellipsis, so a `✻ <word> for 4 people` / `✻ Ready for input` prose look-alike
121
+ * (no ellipsis) is preserved (see cleanOutput.test.ts), and a
122
+ * {@link POST_THINKING_TRAILER_RE} `✻ Cooked for 27s` trailer is left to its
123
+ * own filter;
124
+ * - only the FOUR star-burst glyphs — exclusively TUI animation frames that
125
+ * never lead prose. `·`/`*` are excluded (they lead `· item` / `* item`
126
+ * markdown bullets), as is a {@link THINKING_HEADER_RE} `Thinking for Ns…`
127
+ * header (kept verbatim under `/thinking full`).
128
+ */
129
+ export declare function checkIsBareSpinnerActivityLine(line: string): boolean;
130
+ /**
131
+ * @description Code-producing tool headers whose `⎿` result is code / diff /
132
+ * command output and should render as a monospaced Telegram code block. Two
133
+ * classes, differing in what the `⎿` line itself holds:
134
+ *
135
+ * - OUTPUT tools (`Bash`/`Grep`/`Glob`): the `⎿`-line content IS the first
136
+ * line of stdout, so it goes INSIDE the fence with the indented body;
137
+ * - FILE tools (`Read`/`Edit`/`Update`/`Write`/`MultiEdit`/`NotebookEdit`):
138
+ * the `⎿` line is a one-line summary (`Added N lines, removed M`) that
139
+ * stays as prose — only the deeper-indented diff/file body below it is
140
+ * fenced.
141
+ *
142
+ * Anchored on the tool NAME (optionally glyph-led and/or `*bold*` from the
143
+ * ANSI-bold conversion), NEVER on body indent: Claude wraps long thinking
144
+ * prose at the 300-col pane width into space-indented continuation lines
145
+ * byte-identical in shape to a diff/output body, so only a known code header
146
+ * may license fencing (a thinking block has no such header). Allowlist, not
147
+ * blocklist — unknown shapes stay prose.
148
+ */
149
+ export declare const OUTPUT_TOOL_HEADER_RE: RegExp;
150
+ export declare const FILE_TOOL_HEADER_RE: RegExp;
151
+ /**
152
+ * @description ANY tool-call header line (`● Bash(…)`, `✓ Read(…)`,
153
+ * `● Update(…)`, `● Task(…)`, `● TodoWrite(…)`, `● WebFetch(…)`). MUST stay a
154
+ * superset of the two fence-deciding headers above (`OUTPUT_TOOL_HEADER_RE` +
155
+ * `FILE_TOOL_HEADER_RE`): used by the classifier to TAG a header line as
156
+ * `toolHeader` (and a sub-agent panel preview's `⎿ Tool(…)`) regardless of
157
+ * whether its body would be fenced. Anchored on the tool NAME from Claude's
158
+ * known set, optionally glyph-led and/or `*bold*`, followed by `(`.
159
+ * `Update` is Claude's TUI render of the Edit tool (`● Update(file)`) — the most
160
+ * common header; omitting it (live bug, all-minimal topic) let every Edit header
161
+ * and its sub-agent `⎿ Update(…)` previews bypass the verbosity routing and leak.
162
+ */
163
+ export declare const ANY_TOOL_HEADER_RE: RegExp;
164
+ /** Tool RESULT marker line: ` ⎿ <summary or first output line>`. */
165
+ export declare const TOOL_RESULT_MARKER_RE: RegExp;
166
+ /** An agent-authored fenced code block delimiter, possibly indented. */
167
+ export declare const CODE_FENCE_LINE_RE: RegExp;
168
+ /**
169
+ * @description Lines the bot's progress-collapse owns and must receive
170
+ * UN-fenced: a sub-agent task line (`◯`, optionally `❯`-cursor-led, U+25EF —
171
+ * NOT the `○`/`●` glyphs) and a compaction progress bar (`▰▱`). They are
172
+ * indented in the pane, so a stale `output` tool kind would otherwise route
173
+ * them through the orphan-continuation fence; the resulting ```` ``` ````
174
+ * delimiters then fail `checkIsProgressChunk` (progressLine.ts), so the burst
175
+ * is NOT coalesced and the topic floods with one fenced tick per second.
176
+ */
177
+ export declare const PROGRESS_PASSTHROUGH_RE: RegExp;
178
+ /**
179
+ * @description Transient activity tick the TUI paints INSIDE a tool-result
180
+ * body while the command is still running (`Running…`, `Waiting…`), with no
181
+ * elapsed-time paren. {@link SPINNER_TICK_RE} only catches the glyph-led
182
+ * `(Ns)` form, so these bare words slip through and get fenced as if they
183
+ * were stdout. They are ephemeral chrome, never command output: render plain,
184
+ * and DROP entirely when real output supersedes them in the same body.
185
+ */
186
+ export declare const TRANSIENT_TICK_RE: RegExp;
187
+ /**
188
+ * @description The TUI's "output was collapsed" marker (`… +1 tool use`,
189
+ * `… +33 lines`). Anchored to the literal `… +N tool use(s)/line(s)` shape so
190
+ * a real one-line stdout that merely ends in `…` is never matched. Chrome, not
191
+ * output → render plain, never fenced.
192
+ */
193
+ export declare const COLLAPSE_MARKER_RE: RegExp;
194
+ /**
195
+ * @description The tool-use-only subset of {@link COLLAPSE_MARKER_RE}: matches
196
+ * `… +N tool use(s)` but NOT `… +N line(s)`. WHY a dedicated regex: the
197
+ * "+N tool uses" collapse wall is ALWAYS sub-agent panel chatter, whereas the
198
+ * "+N lines" form `COLLAPSE_MARKER_RE` also matches is a legitimate tool-body
199
+ * summary. The classifier uses this to drop an ORPHAN "+N tool uses" wall (panel
200
+ * already closed / scrolled off) as chrome instead of leaking it as prose,
201
+ * without ever swallowing a real "+N lines" tool-body summary.
202
+ */
203
+ export declare const COLLAPSE_TOOLUSE_MARKER_RE: RegExp;
204
+ /**
205
+ * @description Turn / sub-agent completion summary (`Done (14 tool uses ·
206
+ * 66.9k tokens · 1m 55s)`). The `tokens` inside the paren is the load-bearing
207
+ * anchor — a real `Done (…)` stdout line without token stats is not matched.
208
+ * Chrome, not output → render plain, never fenced.
209
+ */
210
+ export declare const COMPLETION_SUMMARY_RE: RegExp;
211
+ /**
212
+ * @description A file-diff `NN +` CHANGE gutter line as Claude renders
213
+ * Read/Edit/Update diffs: a leading line number, then a literal `+` change
214
+ * marker (`40 +`, `3 +delta`, `51 + content`). Tight by design — `+1 done`,
215
+ * `3 lines changed`, `done` all fail it, so it never matches legit short prose.
216
+ *
217
+ * THE single source of truth for the short-`+`-gutter dedup bypass (live leak
218
+ * 2026-06-24): a short gutter re-rendered on a later poll and leaked because it
219
+ * was under the relay-window length gate. Both the relay window
220
+ * ({@link ../utils/recentRelayWindow}) and `checkIsStatusOutput` key on this
221
+ * shape — strictly `+` additions; `-` deletion gutters stay outside.
222
+ */
223
+ export declare const DIFF_CHANGE_GUTTER_RE: RegExp;
224
+ /**
225
+ * @description The bottom-right corner shortcut hint Claude Code v2.1.201
226
+ * paints on the footer row (`/rc`). Right-aligned at the pane edge, it can
227
+ * scrape as a line whose ONLY content is the hint token (heavy leading
228
+ * whitespace) — the line-set diff then relayed it as a 3-char status frame
229
+ * (`sendMessage "/rc"`, `✽ /rc · 0:01`; live 2026-07-06). Anchored
230
+ * to the WHOLE line being nothing but the literal hint, so prose that merely
231
+ * mentions `/rc` inline is never matched. Closed shape — if a future version
232
+ * paints a different corner hint, WIDEN the alternation (keep `/rc`), don't
233
+ * loosen the whole-line anchor.
234
+ */
235
+ export declare const CORNER_HINT_RE: RegExp;
236
+ /**
237
+ * @description Which tool a `⎿` result body belongs to, deciding how it is
238
+ * fenced: `output` (Bash/Grep/Glob — the `⎿` line is stdout, fenced with the
239
+ * body) vs `file` (Read/Edit/Update/Write — the `⎿` line is a prose summary,
240
+ * only the body below is fenced).
241
+ */
242
+ export type ToolResultKind = 'output' | 'file';
243
+ /**
244
+ * @description Whole-line TUI chrome a scrape chunk can carry that the relay
245
+ * already drops: rounded box-drawing borders, full-width rules, nav / hint
246
+ * footers ("Enter to select", "esc to …", "↑/↓ …"), the bypass-permissions
247
+ * footer, tab-bar rows, and the native-installer ad. Consolidated here from
248
+ * the inline filters in `stripTuiElementsWithContext` so the classifier tags
249
+ * the SAME lines as `chrome` without re-declaring each shape.
250
+ *
251
+ * Conservative by design — every branch is anchored on a TUI-only glyph or an
252
+ * exact phrase, so a real prose line is never mistaken for chrome (the
253
+ * classifier's default is `prose`).
254
+ */
255
+ export declare function checkIsClaudeChromeLine(line: string): boolean;
256
+ //# sourceMappingURL=claudeScrapeShapes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeScrapeShapes.d.ts","sourceRoot":"","sources":["../../src/utils/claudeScrapeShapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,QAAoB,CAAC;AAE1D,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,QAC4E,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,wBAAwB,QACa,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,QAC0C,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,mBAAmB,QAC+C,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QACuG,CAAC;AAEvI,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAA8B,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAAkD,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,QAAoC,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAwC,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,QAAiB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA+B7D"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ /**
3
+ * @description Single source of truth for the LINE-SHAPE regexes/predicates of
4
+ * a scraped, ANSI-cleaned Claude TUI pane. These were originally private to
5
+ * `adapters/claudeCliAdapter.ts`; they were lifted here so BOTH the adapter
6
+ * (`stripTuiElementsWithContext` / `fenceToolResultBodies`) and the chunk
7
+ * classifier (`utils/claudeChunkClassifier.ts`) consume ONE definition per
8
+ * shape — never a copy. The rationale comments live with each shape below.
9
+ *
10
+ * Exception: {@link checkIsClaudeChromeLine} is a DELIBERATE parallel of the
11
+ * adapter's inline chrome filters (the adapter drops those lines mid-strip and
12
+ * is NOT yet rewired to this predicate — that wiring is a behavior change
13
+ * deferred to S4–S6). Keep the two in sync until then; unify when the relay
14
+ * starts consuming the classifier.
15
+ *
16
+ * Pure module: regexes + small line predicates only, no I/O, no state. Whole-
17
+ * block detectors that need parsing state (question/survey extraction, input-
18
+ * echo) stay in the adapter and are imported there, not here.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.CORNER_HINT_RE = exports.DIFF_CHANGE_GUTTER_RE = exports.COMPLETION_SUMMARY_RE = exports.COLLAPSE_TOOLUSE_MARKER_RE = exports.COLLAPSE_MARKER_RE = exports.TRANSIENT_TICK_RE = exports.PROGRESS_PASSTHROUGH_RE = exports.CODE_FENCE_LINE_RE = exports.TOOL_RESULT_MARKER_RE = exports.ANY_TOOL_HEADER_RE = exports.FILE_TOOL_HEADER_RE = exports.OUTPUT_TOOL_HEADER_RE = exports.THINKING_HEADER_RE = exports.POST_THINKING_TRAILER_RE = exports.SPINNER_TICK_RE = exports.LEADING_SPINNER_GLYPH_RE = void 0;
22
+ exports.stripLeadingSpinnerGlyph = stripLeadingSpinnerGlyph;
23
+ exports.checkIsBareSpinnerActivityLine = checkIsBareSpinnerActivityLine;
24
+ exports.checkIsClaudeChromeLine = checkIsClaudeChromeLine;
25
+ /**
26
+ * @description The full set of leading spinner / bullet glyphs the Claude TUI
27
+ * (and the bot's own rotating liveness frame, `CLAUDE_LIVENESS_GLYPHS =
28
+ * ['✻','✽','✶','✢']`) may prepend to a status/activity line, anchored at the
29
+ * line start with its trailing whitespace. Stripping it yields a
30
+ * GLYPH-INSENSITIVE signature so a frame that changed only its animation glyph
31
+ * dedups as identical. ONE definition for every call site that strips the lead
32
+ * glyph (status dedup, the liveness frame, the adapter's status dedup).
33
+ */
34
+ exports.LEADING_SPINNER_GLYPH_RE = /^[✻✽✶✢·*●○⏺]\s*/;
35
+ /** Strip a single leading spinner/bullet glyph (+ trailing ws) from a line. */
36
+ function stripLeadingSpinnerGlyph(line) {
37
+ return line.replace(exports.LEADING_SPINNER_GLYPH_RE, '');
38
+ }
39
+ /**
40
+ * @description Active spinner tick, per-line shape used by Claude's TUI
41
+ * while it is thinking or running a tool. Examples:
42
+ * `✽ Doing… (4s · ↓ 14 tokens)`
43
+ * `* Brewing… (1m 30s · ↑ 88 tokens · thought for 17s)`
44
+ * `· Working… (7s · ↓ 222 tokens)`
45
+ *
46
+ * Plan §2026-05-28 tg-output-readability / S4 (N1.b). Why a SECOND
47
+ * regex on top of `PROGRESS_LINE_RE` (in `progressLine.ts`): different
48
+ * job — this one strips tick lines that ride INSIDE a chunk that also
49
+ * carries real output, while `PROGRESS_LINE_RE` classifies whole
50
+ * pure-progress chunks bot-side. This regex does not require the token
51
+ * counter (`(5s)` alone matches), `PROGRESS_LINE_RE` does. Both accept
52
+ * a multi-word activity text since 2026-06-05 — the TUI now shows the
53
+ * active task title there ("Fixing streaming output overwrite…"), and
54
+ * the single-token `\S+…` let those ticks leak into permanent messages
55
+ * (adapter side) / flood the topic (bot side). Since 2026-06-11 both
56
+ * also accept single-level parenthesised segments inside the title —
57
+ * the TUI appends bits like "(sub-agent)" while a Task sub-agent runs
58
+ * ("Fixing relations add flow (sub-agent)…", the live topic flood), and
59
+ * a task title can carry its own parens. The trailing end-anchored
60
+ * `(<elapsed>[ · …])` parenthesis stays the load-bearing anchor — the
61
+ * same safety argument as the multi-word widening.
62
+ *
63
+ * The required text-with-ellipsis disambiguates this from a tool-call
64
+ * header (`● Bash(ls -la)`), which starts with the same `●` glyph but
65
+ * has no ellipsis.
66
+ */
67
+ exports.SPINNER_TICK_RE = /^\s*[✻✽✶✢·*●○]\s+\S(?:[^()\n]|\([^()\n]*\))*?…\s*\((?:\d+h\s+)?(?:\d+m\s+)?\d+s(?:\s*·[^()]*)?\)\s*$/;
68
+ /**
69
+ * @description Post-thinking trailer line that Claude's TUI prints
70
+ * AFTER it has finished thinking (just before resuming the prompt
71
+ * area). Examples observed in the live ExampleGroup debug session:
72
+ * `✻ Cooked for 27s`
73
+ * `✻ Cogitated for 20s`
74
+ * `✻ Crunched for 7s`
75
+ * `✻ Baked for 10s`
76
+ * `✻ Churned for 20s` (V3 iteration 1, 2026-05-28)
77
+ * `✻ Sautéed for 20s` (V3 iteration 2, 2026-05-28)
78
+ *
79
+ * Plan §2026-05-28 tg-output-readability / S3 (N1.a). The trailer
80
+ * carries zero novel info — the same time was already streaming in
81
+ * the active spinner that preceded it — so we drop it.
82
+ *
83
+ * Verb match is `\S+`, not an explicit list. The original plan called
84
+ * for an explicit list of `-ed` forms (Cooked|Cogitated|...) on the
85
+ * theory that a future Claude verb that IS real prose (e.g.
86
+ * `✻ Ready for input`) could be silently swallowed. Two live V3
87
+ * iterations on 2026-05-28 demonstrated the opposite failure mode:
88
+ * Claude ships new spinner verbs faster than we'd realistically
89
+ * extend the list (`Churned` and `Sautéed` both slipped through on
90
+ * first encounter). The triple anchor `<glyph> <verb> for <N>s` is
91
+ * shape-specific enough that real prose almost cannot satisfy it:
92
+ * - line must START with a spinner glyph (`✻✽✶✢·*●○`) — outside
93
+ * transient TUI status, Claude never emits these as the first
94
+ * non-whitespace char of a prose line;
95
+ * - line must END with `for \d+(?:m\s+\d+)?s` — a time literal,
96
+ * not a generic noun;
97
+ * - line has no other content (anchored `$`).
98
+ * `\S+` is the minimal relaxation: one non-whitespace token between
99
+ * the glyph and ` for `. Accepts `Sautéed`, `Churned`, future verbs,
100
+ * and rejects anything containing whitespace or extra structure.
101
+ */
102
+ exports.POST_THINKING_TRAILER_RE = /^[✻✽✶✢·*●○]\s+\S+\s+for\s+\d+(?:m\s+\d+)?s\s*$/;
103
+ /**
104
+ * @description Static "Thinking for {N}s…" header line the TUI prints at the
105
+ * TOP of a finished reasoning block (distinct from {@link SPINNER_TICK_RE},
106
+ * the LIVE rolling tick, and {@link POST_THINKING_TRAILER_RE}, the closing
107
+ * "Cooked for Ns" trailer). After `cleanOutput`'s ANSI-bold→`*…*` conversion
108
+ * the duration is bolded: `Thinking for *1m 6s*…`. The `⎿`-bodied reasoning
109
+ * summary follows on the next lines (see claudeToolFencing.test.ts).
110
+ *
111
+ * Anchored: glyph-or-bullet-optional `Thinking for`, a duration (`30s`,
112
+ * `1m 6s`, optionally `*`-wrapped), then the U+2026 ellipsis. The duration is
113
+ * load-bearing so a prose sentence "Thinking for a moment about X" cannot
114
+ * match (no `\d+s…` tail).
115
+ */
116
+ exports.THINKING_HEADER_RE = /^\s*[●○⏺✻✽✶✢·*]?\s*Thinking for\s+\*?(?:\d+h\s+)?(?:\d+m\s+)?\d+s\*?…/;
117
+ /**
118
+ * @description A leading star-burst spinner-glyph line (`✻ ✽ ✶ ✢`) carrying an
119
+ * activity TITLE that ends in the `…` ellipsis but has NO `(elapsed · tokens)`
120
+ * stats anchor — e.g. `✻ Herding cats…` right after a turn starts, before the
121
+ * timer shows. {@link SPINNER_TICK_RE} requires the trailing `(…)` stats, so
122
+ * these bare-title frames slip past it and, being neither chrome nor a tool
123
+ * line, classify as PROSE and ship as answer content (live flood 2026-07-04,
124
+ * alongside the table). They are transient TUI activity, never content → drop.
125
+ *
126
+ * Two deliberate narrowings keep this from eating real text:
127
+ * - the trailing `…` is REQUIRED — Claude's spinner activity always ends in the
128
+ * ellipsis, so a `✻ <word> for 4 people` / `✻ Ready for input` prose look-alike
129
+ * (no ellipsis) is preserved (see cleanOutput.test.ts), and a
130
+ * {@link POST_THINKING_TRAILER_RE} `✻ Cooked for 27s` trailer is left to its
131
+ * own filter;
132
+ * - only the FOUR star-burst glyphs — exclusively TUI animation frames that
133
+ * never lead prose. `·`/`*` are excluded (they lead `· item` / `* item`
134
+ * markdown bullets), as is a {@link THINKING_HEADER_RE} `Thinking for Ns…`
135
+ * header (kept verbatim under `/thinking full`).
136
+ */
137
+ function checkIsBareSpinnerActivityLine(line) {
138
+ return /^\s*[✻✽✶✢]\s+\S.*…\s*$/.test(line) && !exports.THINKING_HEADER_RE.test(line);
139
+ }
140
+ /**
141
+ * @description Code-producing tool headers whose `⎿` result is code / diff /
142
+ * command output and should render as a monospaced Telegram code block. Two
143
+ * classes, differing in what the `⎿` line itself holds:
144
+ *
145
+ * - OUTPUT tools (`Bash`/`Grep`/`Glob`): the `⎿`-line content IS the first
146
+ * line of stdout, so it goes INSIDE the fence with the indented body;
147
+ * - FILE tools (`Read`/`Edit`/`Update`/`Write`/`MultiEdit`/`NotebookEdit`):
148
+ * the `⎿` line is a one-line summary (`Added N lines, removed M`) that
149
+ * stays as prose — only the deeper-indented diff/file body below it is
150
+ * fenced.
151
+ *
152
+ * Anchored on the tool NAME (optionally glyph-led and/or `*bold*` from the
153
+ * ANSI-bold conversion), NEVER on body indent: Claude wraps long thinking
154
+ * prose at the 300-col pane width into space-indented continuation lines
155
+ * byte-identical in shape to a diff/output body, so only a known code header
156
+ * may license fencing (a thinking block has no such header). Allowlist, not
157
+ * blocklist — unknown shapes stay prose.
158
+ */
159
+ exports.OUTPUT_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Bash|Grep|Glob)\*?\s*\(/;
160
+ exports.FILE_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Read|Edit|Update|Write|MultiEdit|NotebookEdit)\*?\s*\(/;
161
+ /**
162
+ * @description ANY tool-call header line (`● Bash(…)`, `✓ Read(…)`,
163
+ * `● Update(…)`, `● Task(…)`, `● TodoWrite(…)`, `● WebFetch(…)`). MUST stay a
164
+ * superset of the two fence-deciding headers above (`OUTPUT_TOOL_HEADER_RE` +
165
+ * `FILE_TOOL_HEADER_RE`): used by the classifier to TAG a header line as
166
+ * `toolHeader` (and a sub-agent panel preview's `⎿ Tool(…)`) regardless of
167
+ * whether its body would be fenced. Anchored on the tool NAME from Claude's
168
+ * known set, optionally glyph-led and/or `*bold*`, followed by `(`.
169
+ * `Update` is Claude's TUI render of the Edit tool (`● Update(file)`) — the most
170
+ * common header; omitting it (live bug, all-minimal topic) let every Edit header
171
+ * and its sub-agent `⎿ Update(…)` previews bypass the verbosity routing and leak.
172
+ */
173
+ exports.ANY_TOOL_HEADER_RE = /^\s*[●○⏺⏳✓]?\s*\*?(?:Bash|Read|Write|Edit|Update|MultiEdit|NotebookEdit|Glob|Grep|Task|Agent|TodoWrite|WebFetch|WebSearch)\*?\s*\(/;
174
+ /** Tool RESULT marker line: ` ⎿ <summary or first output line>`. */
175
+ exports.TOOL_RESULT_MARKER_RE = /^(\s*)⎿/;
176
+ /** An agent-authored fenced code block delimiter, possibly indented. */
177
+ exports.CODE_FENCE_LINE_RE = /^\s*```/;
178
+ /**
179
+ * @description Lines the bot's progress-collapse owns and must receive
180
+ * UN-fenced: a sub-agent task line (`◯`, optionally `❯`-cursor-led, U+25EF —
181
+ * NOT the `○`/`●` glyphs) and a compaction progress bar (`▰▱`). They are
182
+ * indented in the pane, so a stale `output` tool kind would otherwise route
183
+ * them through the orphan-continuation fence; the resulting ```` ``` ````
184
+ * delimiters then fail `checkIsProgressChunk` (progressLine.ts), so the burst
185
+ * is NOT coalesced and the topic floods with one fenced tick per second.
186
+ */
187
+ exports.PROGRESS_PASSTHROUGH_RE = /^\s*(?:❯\s+)?◯\s|^\s*[▰▱]/;
188
+ /**
189
+ * @description Transient activity tick the TUI paints INSIDE a tool-result
190
+ * body while the command is still running (`Running…`, `Waiting…`), with no
191
+ * elapsed-time paren. {@link SPINNER_TICK_RE} only catches the glyph-led
192
+ * `(Ns)` form, so these bare words slip through and get fenced as if they
193
+ * were stdout. They are ephemeral chrome, never command output: render plain,
194
+ * and DROP entirely when real output supersedes them in the same body.
195
+ */
196
+ exports.TRANSIENT_TICK_RE = /^\s*(?:Running|Waiting)…\s*(?:\([^)]*\))?\s*$/;
197
+ /**
198
+ * @description The TUI's "output was collapsed" marker (`… +1 tool use`,
199
+ * `… +33 lines`). Anchored to the literal `… +N tool use(s)/line(s)` shape so
200
+ * a real one-line stdout that merely ends in `…` is never matched. Chrome, not
201
+ * output → render plain, never fenced.
202
+ */
203
+ exports.COLLAPSE_MARKER_RE = /^\s*…\s*\+\d+\s+(?:tool use|line)s?\b.*$/;
204
+ /**
205
+ * @description The tool-use-only subset of {@link COLLAPSE_MARKER_RE}: matches
206
+ * `… +N tool use(s)` but NOT `… +N line(s)`. WHY a dedicated regex: the
207
+ * "+N tool uses" collapse wall is ALWAYS sub-agent panel chatter, whereas the
208
+ * "+N lines" form `COLLAPSE_MARKER_RE` also matches is a legitimate tool-body
209
+ * summary. The classifier uses this to drop an ORPHAN "+N tool uses" wall (panel
210
+ * already closed / scrolled off) as chrome instead of leaking it as prose,
211
+ * without ever swallowing a real "+N lines" tool-body summary.
212
+ */
213
+ exports.COLLAPSE_TOOLUSE_MARKER_RE = /^\s*…\s*\+\d+\s+tool uses?\b.*$/;
214
+ /**
215
+ * @description Turn / sub-agent completion summary (`Done (14 tool uses ·
216
+ * 66.9k tokens · 1m 55s)`). The `tokens` inside the paren is the load-bearing
217
+ * anchor — a real `Done (…)` stdout line without token stats is not matched.
218
+ * Chrome, not output → render plain, never fenced.
219
+ */
220
+ exports.COMPLETION_SUMMARY_RE = /^\s*Done\s*\([^)]*tokens[^)]*\)\s*$/;
221
+ /**
222
+ * @description A file-diff `NN +` CHANGE gutter line as Claude renders
223
+ * Read/Edit/Update diffs: a leading line number, then a literal `+` change
224
+ * marker (`40 +`, `3 +delta`, `51 + content`). Tight by design — `+1 done`,
225
+ * `3 lines changed`, `done` all fail it, so it never matches legit short prose.
226
+ *
227
+ * THE single source of truth for the short-`+`-gutter dedup bypass (live leak
228
+ * 2026-06-24): a short gutter re-rendered on a later poll and leaked because it
229
+ * was under the relay-window length gate. Both the relay window
230
+ * ({@link ../utils/recentRelayWindow}) and `checkIsStatusOutput` key on this
231
+ * shape — strictly `+` additions; `-` deletion gutters stay outside.
232
+ */
233
+ exports.DIFF_CHANGE_GUTTER_RE = /^\s*\d+\s+\+/;
234
+ /**
235
+ * @description The bottom-right corner shortcut hint Claude Code v2.1.201
236
+ * paints on the footer row (`/rc`). Right-aligned at the pane edge, it can
237
+ * scrape as a line whose ONLY content is the hint token (heavy leading
238
+ * whitespace) — the line-set diff then relayed it as a 3-char status frame
239
+ * (`sendMessage "/rc"`, `✽ /rc · 0:01`; live 2026-07-06). Anchored
240
+ * to the WHOLE line being nothing but the literal hint, so prose that merely
241
+ * mentions `/rc` inline is never matched. Closed shape — if a future version
242
+ * paints a different corner hint, WIDEN the alternation (keep `/rc`), don't
243
+ * loosen the whole-line anchor.
244
+ */
245
+ exports.CORNER_HINT_RE = /^\s*\/rc\s*$/;
246
+ /**
247
+ * @description Whole-line TUI chrome a scrape chunk can carry that the relay
248
+ * already drops: rounded box-drawing borders, full-width rules, nav / hint
249
+ * footers ("Enter to select", "esc to …", "↑/↓ …"), the bypass-permissions
250
+ * footer, tab-bar rows, and the native-installer ad. Consolidated here from
251
+ * the inline filters in `stripTuiElementsWithContext` so the classifier tags
252
+ * the SAME lines as `chrome` without re-declaring each shape.
253
+ *
254
+ * Conservative by design — every branch is anchored on a TUI-only glyph or an
255
+ * exact phrase, so a real prose line is never mistaken for chrome (the
256
+ * classifier's default is `prose`).
257
+ */
258
+ function checkIsClaudeChromeLine(line) {
259
+ const trimmed = line.trim();
260
+ if (trimmed === '')
261
+ return false;
262
+ return (
263
+ // Full-width horizontal rule.
264
+ /^[─━]+$/.test(trimmed) ||
265
+ // Pure box-drawing / blank composite (rounded chrome borders).
266
+ /^[╭╮╰╯┌┐└┘├┤┬┴┼─━│┃\s]+$/.test(trimmed) ||
267
+ // Wide bordered chrome panel row (rounded corners, >50 chars).
268
+ (/[╭─╮│╰╯]/.test(line) && trimmed.length > 50) ||
269
+ // Block / shade UI fill.
270
+ /^[▐▛▜▌▝▘█▀▄░▒▓\s]+$/.test(trimmed) ||
271
+ // Tab-bar navigation row (← … →).
272
+ /^←.*→\s*$/.test(trimmed) ||
273
+ // Selection / navigation hint footers.
274
+ /Enter to select/i.test(line) ||
275
+ /\(shift\+tab to cycle\)/i.test(line) ||
276
+ /⏵⏵\s*(?:bypass permissions|accept edits)\s*(?:on|off)/i.test(line) ||
277
+ // Bottom-right corner shortcut hint (v2.1.201 `/rc`), scraped standalone.
278
+ exports.CORNER_HINT_RE.test(line) ||
279
+ // Input-box cursor row / cursor-led nav.
280
+ /^❯/.test(trimmed) ||
281
+ // Ephemeral "Tip:" affordance under a turn.
282
+ /^⎿\s*Tip:\s/i.test(trimmed) ||
283
+ // Native-installer ad / docs link.
284
+ /claude code has switched|native installer|Run.*install.*or see/i.test(line) ||
285
+ /docs\.anthropic\.com/i.test(line) ||
286
+ // Resume / welcome chrome.
287
+ /Recent activity|What's new|\/resume for more/i.test(line) ||
288
+ /Welcome\s*back/i.test(line));
289
+ }
290
+ //# sourceMappingURL=claudeScrapeShapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeScrapeShapes.js","sourceRoot":"","sources":["../../src/utils/claudeScrapeShapes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAcH,4DAEC;AA0GD,wEAEC;AA6ID,0DA+BC;AAtSD;;;;;;;;GAQG;AACU,QAAA,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D,+EAA+E;AAC/E,SAAgB,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAwB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACU,QAAA,eAAe,GAC1B,sGAAsG,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACU,QAAA,wBAAwB,GACnC,gDAAgD,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACU,QAAA,kBAAkB,GAC7B,uEAAuE,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,8BAA8B,CAAC,IAAY;IACzD,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,qBAAqB,GAAG,8CAA8C,CAAC;AACvE,QAAA,mBAAmB,GAC9B,6EAA6E,CAAC;AAEhF;;;;;;;;;;;GAWG;AACU,QAAA,kBAAkB,GAC7B,oIAAoI,CAAC;AAEvI,sEAAsE;AACzD,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAE/C,wEAAwE;AAC3D,QAAA,kBAAkB,GAAG,SAAS,CAAC;AAE5C;;;;;;;;GAQG;AACU,QAAA,uBAAuB,GAAG,2BAA2B,CAAC;AAEnE;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,+CAA+C,CAAC;AAEjF;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,0CAA0C,CAAC;AAE7E;;;;;;;;GAQG;AACU,QAAA,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,qCAAqC,CAAC;AAE3E;;;;;;;;;;;GAWG;AACU,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD;;;;;;;;;;GAUG;AACU,QAAA,cAAc,GAAG,cAAc,CAAC;AAU7C;;;;;;;;;;;GAWG;AACH,SAAgB,uBAAuB,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO;IACL,8BAA8B;IAC9B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,+DAA+D;QAC/D,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,+DAA+D;QAC/D,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QAC9C,yBAAyB;QACzB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,kCAAkC;QAClC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,uCAAuC;QACvC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC;QACnE,0EAA0E;QAC1E,sBAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClB,4CAA4C;QAC5C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,mCAAmC;QACnC,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5E,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,2BAA2B;QAC3B,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1D,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @description Derive a human-readable title for a Claude session from its
3
+ * stored user prompts, so the `/sessions` picker shows the session's TOPIC
4
+ * instead of noise.
5
+ *
6
+ * Why this exists: current Claude Code (2.1.201) no longer writes the
7
+ * LLM-generated `type:"summary"` line the old picker relied on, so
8
+ * {@link listClaudeSessionsForWorkDir} always fell back to the LAST stored
9
+ * prompt — which for bot-driven sessions is almost always garbage (the
10
+ * `[Telegram thread context]` preamble, a `/effort` command echo, a
11
+ * `<task-notification>`, or a bare `yes`/`commit`/`...`). We instead pick the
12
+ * FIRST *meaningful* prompt: preamble/marker stripped, tooling noise skipped.
13
+ *
14
+ * Pure (string-in, string-out) so it is unit-tested in isolation.
15
+ */
16
+ /**
17
+ * @description Strip the bot's service wrappers (thread-context preamble first —
18
+ * it is the outermost, then the scheduled-run marker) off a stored prompt and
19
+ * collapse it to a single display line. No noise filtering — the raw topic line.
20
+ */
21
+ export declare function getSessionTitleLine(rawPrompt: string): string;
22
+ /**
23
+ * @description A session-title candidate from ONE stored prompt: the stripped
24
+ * single-line topic, or `null` when the prompt is empty or tooling noise.
25
+ */
26
+ export declare function getSessionTitleCandidate(rawPrompt: string): string | null;
27
+ //# sourceMappingURL=claudeSessionTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeSessionTitle.d.ts","sourceRoot":"","sources":["../../src/utils/claudeSessionTitle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA2CH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK7D;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE"}