charness 3.1.0 → 3.3.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 (417) hide show
  1. package/.env.example +11 -13
  2. package/DEVELOPMENT.md +27 -6
  3. package/MIGRATION_1_TO_2.md +1 -1
  4. package/MIGRATION_RENAME_TO_CHARNESS.md +133 -0
  5. package/README.md +185 -618
  6. package/SETUP.md +644 -0
  7. package/dist/adapters/adapterEventRouting.d.ts +2 -1
  8. package/dist/adapters/adapterEventRouting.d.ts.map +1 -1
  9. package/dist/adapters/adapterEventRouting.js +3 -0
  10. package/dist/adapters/adapterEventRouting.js.map +1 -1
  11. package/dist/adapters/adapterNames.d.ts +13 -0
  12. package/dist/adapters/adapterNames.d.ts.map +1 -1
  13. package/dist/adapters/adapterNames.js +16 -0
  14. package/dist/adapters/adapterNames.js.map +1 -1
  15. package/dist/adapters/backendUnavailableError.d.ts +11 -0
  16. package/dist/adapters/backendUnavailableError.d.ts.map +1 -0
  17. package/dist/adapters/backendUnavailableError.js +19 -0
  18. package/dist/adapters/backendUnavailableError.js.map +1 -0
  19. package/dist/adapters/claudeCliAdapter.d.ts +30 -7
  20. package/dist/adapters/claudeCliAdapter.d.ts.map +1 -1
  21. package/dist/adapters/claudeCliAdapter.js +71 -17
  22. package/dist/adapters/claudeCliAdapter.js.map +1 -1
  23. package/dist/adapters/claudeJsonStreamAdapter.d.ts +36 -3
  24. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
  25. package/dist/adapters/claudeJsonStreamAdapter.js +95 -31
  26. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
  27. package/dist/adapters/createAdapter.d.ts +3 -14
  28. package/dist/adapters/createAdapter.d.ts.map +1 -1
  29. package/dist/adapters/createAdapter.js +9 -19
  30. package/dist/adapters/createAdapter.js.map +1 -1
  31. package/dist/adapters/openCodeAdapter.d.ts +140 -12
  32. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  33. package/dist/adapters/openCodeAdapter.js +386 -120
  34. package/dist/adapters/openCodeAdapter.js.map +1 -1
  35. package/dist/apiErrorRetry.d.ts +70 -6
  36. package/dist/apiErrorRetry.d.ts.map +1 -1
  37. package/dist/apiErrorRetry.js +312 -34
  38. package/dist/apiErrorRetry.js.map +1 -1
  39. package/dist/apiRetryKick.d.ts +26 -1
  40. package/dist/apiRetryKick.d.ts.map +1 -1
  41. package/dist/apiRetryKick.js +41 -2
  42. package/dist/apiRetryKick.js.map +1 -1
  43. package/dist/bot.d.ts +2 -1
  44. package/dist/bot.d.ts.map +1 -1
  45. package/dist/bot.js +743 -190
  46. package/dist/bot.js.map +1 -1
  47. package/dist/cli/bot.d.ts +4 -2
  48. package/dist/cli/bot.d.ts.map +1 -1
  49. package/dist/cli/bot.js +11 -3
  50. package/dist/cli/bot.js.map +1 -1
  51. package/dist/cli/botEntry.js +3 -1
  52. package/dist/cli/botEntry.js.map +1 -1
  53. package/dist/cli/claudeProfiles.d.ts +4 -4
  54. package/dist/cli/claudeProfiles.js +5 -5
  55. package/dist/cli/claudeProfiles.js.map +1 -1
  56. package/dist/cli/envLoader.d.ts +6 -5
  57. package/dist/cli/envLoader.d.ts.map +1 -1
  58. package/dist/cli/envLoader.js +8 -27
  59. package/dist/cli/envLoader.js.map +1 -1
  60. package/dist/cli/hot.d.ts +9 -3
  61. package/dist/cli/hot.d.ts.map +1 -1
  62. package/dist/cli/hot.js +55 -19
  63. package/dist/cli/hot.js.map +1 -1
  64. package/dist/cli.js +12 -12
  65. package/dist/cli.js.map +1 -1
  66. package/dist/configDirFile.d.ts +73 -0
  67. package/dist/configDirFile.d.ts.map +1 -0
  68. package/dist/configDirFile.js +216 -0
  69. package/dist/configDirFile.js.map +1 -0
  70. package/dist/connectors/jira/adf.d.ts +21 -0
  71. package/dist/connectors/jira/adf.d.ts.map +1 -1
  72. package/dist/connectors/jira/adf.js +39 -0
  73. package/dist/connectors/jira/adf.js.map +1 -1
  74. package/dist/connectors/jira/answerSink.d.ts +20 -3
  75. package/dist/connectors/jira/answerSink.d.ts.map +1 -1
  76. package/dist/connectors/jira/answerSink.js +126 -13
  77. package/dist/connectors/jira/answerSink.js.map +1 -1
  78. package/dist/connectors/jira/client.d.ts +4 -0
  79. package/dist/connectors/jira/client.d.ts.map +1 -1
  80. package/dist/connectors/jira/client.js +3 -0
  81. package/dist/connectors/jira/client.js.map +1 -1
  82. package/dist/connectors/jira/config.d.ts +10 -1
  83. package/dist/connectors/jira/config.d.ts.map +1 -1
  84. package/dist/connectors/jira/config.js +11 -2
  85. package/dist/connectors/jira/config.js.map +1 -1
  86. package/dist/connectors/jira/connector.d.ts +7 -1
  87. package/dist/connectors/jira/connector.d.ts.map +1 -1
  88. package/dist/connectors/jira/connector.js +23 -4
  89. package/dist/connectors/jira/connector.js.map +1 -1
  90. package/dist/connectors/jira/contextLedger.d.ts +6 -0
  91. package/dist/connectors/jira/contextLedger.d.ts.map +1 -1
  92. package/dist/connectors/jira/contextLedger.js +16 -0
  93. package/dist/connectors/jira/contextLedger.js.map +1 -1
  94. package/dist/connectors/jira/contextPreamble.d.ts.map +1 -1
  95. package/dist/connectors/jira/contextPreamble.js +6 -3
  96. package/dist/connectors/jira/contextPreamble.js.map +1 -1
  97. package/dist/connectors/jira/inbound.d.ts +60 -7
  98. package/dist/connectors/jira/inbound.d.ts.map +1 -1
  99. package/dist/connectors/jira/inbound.js +169 -16
  100. package/dist/connectors/jira/inbound.js.map +1 -1
  101. package/dist/connectors/jira/issueBlocks.d.ts +6 -1
  102. package/dist/connectors/jira/issueBlocks.d.ts.map +1 -1
  103. package/dist/connectors/jira/issueBlocks.js +5 -1
  104. package/dist/connectors/jira/issueBlocks.js.map +1 -1
  105. package/dist/connectors/jira/prompt.d.ts +2 -0
  106. package/dist/connectors/jira/prompt.d.ts.map +1 -1
  107. package/dist/connectors/jira/prompt.js +16 -0
  108. package/dist/connectors/jira/prompt.js.map +1 -1
  109. package/dist/connectors/jira/trigger.d.ts +12 -3
  110. package/dist/connectors/jira/trigger.d.ts.map +1 -1
  111. package/dist/connectors/jira/trigger.js +8 -1
  112. package/dist/connectors/jira/trigger.js.map +1 -1
  113. package/dist/connectors/jira/triggerLog.d.ts +10 -3
  114. package/dist/connectors/jira/triggerLog.d.ts.map +1 -1
  115. package/dist/connectors/jira/triggerLog.js +18 -2
  116. package/dist/connectors/jira/triggerLog.js.map +1 -1
  117. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts +2 -2
  118. package/dist/connectors/telegram/commands/autoContinueLimits.d.ts.map +1 -1
  119. package/dist/connectors/telegram/commands/autoContinueLimits.js +4 -4
  120. package/dist/connectors/telegram/commands/autoContinueLimits.js.map +1 -1
  121. package/dist/connectors/telegram/commands/backendSwitch.d.ts +25 -0
  122. package/dist/connectors/telegram/commands/backendSwitch.d.ts.map +1 -0
  123. package/dist/connectors/telegram/commands/backendSwitch.js +104 -0
  124. package/dist/connectors/telegram/commands/backendSwitch.js.map +1 -0
  125. package/dist/connectors/telegram/commands/callbackMessage.d.ts +12 -0
  126. package/dist/connectors/telegram/commands/callbackMessage.d.ts.map +1 -1
  127. package/dist/connectors/telegram/commands/callbackMessage.js +24 -0
  128. package/dist/connectors/telegram/commands/callbackMessage.js.map +1 -1
  129. package/dist/connectors/telegram/commands/callbackToast.d.ts +36 -0
  130. package/dist/connectors/telegram/commands/callbackToast.d.ts.map +1 -0
  131. package/dist/connectors/telegram/commands/callbackToast.js +83 -0
  132. package/dist/connectors/telegram/commands/callbackToast.js.map +1 -0
  133. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +18 -0
  134. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -1
  135. package/dist/connectors/telegram/commands/claudeAccounts.js +220 -66
  136. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -1
  137. package/dist/connectors/telegram/commands/displayModes.d.ts.map +1 -1
  138. package/dist/connectors/telegram/commands/displayModes.js +4 -2
  139. package/dist/connectors/telegram/commands/displayModes.js.map +1 -1
  140. package/dist/connectors/telegram/commands/fallbackChain.d.ts +5 -8
  141. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -1
  142. package/dist/connectors/telegram/commands/fallbackChain.js +183 -193
  143. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
  144. package/dist/connectors/telegram/commands/limitsBoard.d.ts +40 -0
  145. package/dist/connectors/telegram/commands/limitsBoard.d.ts.map +1 -0
  146. package/dist/connectors/telegram/commands/limitsBoard.js +281 -0
  147. package/dist/connectors/telegram/commands/limitsBoard.js.map +1 -0
  148. package/dist/connectors/telegram/commands/modelPage.d.ts +130 -0
  149. package/dist/connectors/telegram/commands/modelPage.d.ts.map +1 -0
  150. package/dist/connectors/telegram/commands/modelPage.js +120 -0
  151. package/dist/connectors/telegram/commands/modelPage.js.map +1 -0
  152. package/dist/connectors/telegram/commands/modelProviders.d.ts +9 -1
  153. package/dist/connectors/telegram/commands/modelProviders.d.ts.map +1 -1
  154. package/dist/connectors/telegram/commands/modelProviders.js +203 -111
  155. package/dist/connectors/telegram/commands/modelProviders.js.map +1 -1
  156. package/dist/connectors/telegram/commands/stt.d.ts +32 -0
  157. package/dist/connectors/telegram/commands/stt.d.ts.map +1 -0
  158. package/dist/connectors/telegram/commands/stt.js +460 -0
  159. package/dist/connectors/telegram/commands/stt.js.map +1 -0
  160. package/dist/effortLevels.d.ts +57 -7
  161. package/dist/effortLevels.d.ts.map +1 -1
  162. package/dist/effortLevels.js +65 -9
  163. package/dist/effortLevels.js.map +1 -1
  164. package/dist/i18n/de.d.ts.map +1 -1
  165. package/dist/i18n/de.js +160 -17
  166. package/dist/i18n/de.js.map +1 -1
  167. package/dist/i18n/en.d.ts.map +1 -1
  168. package/dist/i18n/en.js +160 -17
  169. package/dist/i18n/en.js.map +1 -1
  170. package/dist/i18n/es.d.ts.map +1 -1
  171. package/dist/i18n/es.js +160 -17
  172. package/dist/i18n/es.js.map +1 -1
  173. package/dist/i18n/fr.d.ts.map +1 -1
  174. package/dist/i18n/fr.js +160 -17
  175. package/dist/i18n/fr.js.map +1 -1
  176. package/dist/i18n/hi.d.ts.map +1 -1
  177. package/dist/i18n/hi.js +160 -17
  178. package/dist/i18n/hi.js.map +1 -1
  179. package/dist/i18n/ja.d.ts.map +1 -1
  180. package/dist/i18n/ja.js +160 -17
  181. package/dist/i18n/ja.js.map +1 -1
  182. package/dist/i18n/ka.d.ts.map +1 -1
  183. package/dist/i18n/ka.js +160 -17
  184. package/dist/i18n/ka.js.map +1 -1
  185. package/dist/i18n/pt.d.ts.map +1 -1
  186. package/dist/i18n/pt.js +160 -17
  187. package/dist/i18n/pt.js.map +1 -1
  188. package/dist/i18n/ru.d.ts.map +1 -1
  189. package/dist/i18n/ru.js +160 -17
  190. package/dist/i18n/ru.js.map +1 -1
  191. package/dist/i18n/uk.d.ts.map +1 -1
  192. package/dist/i18n/uk.js +160 -17
  193. package/dist/i18n/uk.js.map +1 -1
  194. package/dist/i18n/uz.d.ts.map +1 -1
  195. package/dist/i18n/uz.js +160 -17
  196. package/dist/i18n/uz.js.map +1 -1
  197. package/dist/i18n/zh.d.ts.map +1 -1
  198. package/dist/i18n/zh.js +160 -17
  199. package/dist/i18n/zh.js.map +1 -1
  200. package/dist/index.js +1 -1
  201. package/dist/index.js.map +1 -1
  202. package/dist/installManager.d.ts +36 -6
  203. package/dist/installManager.d.ts.map +1 -1
  204. package/dist/installManager.js +124 -26
  205. package/dist/installManager.js.map +1 -1
  206. package/dist/instanceLock.d.ts.map +1 -1
  207. package/dist/instanceLock.js +10 -8
  208. package/dist/instanceLock.js.map +1 -1
  209. package/dist/instanceSettings.d.ts +52 -0
  210. package/dist/instanceSettings.d.ts.map +1 -0
  211. package/dist/instanceSettings.js +136 -0
  212. package/dist/instanceSettings.js.map +1 -0
  213. package/dist/legacyMigration.d.ts +69 -0
  214. package/dist/legacyMigration.d.ts.map +1 -0
  215. package/dist/legacyMigration.js +338 -0
  216. package/dist/legacyMigration.js.map +1 -0
  217. package/dist/legacyNames.d.ts +107 -0
  218. package/dist/legacyNames.d.ts.map +1 -0
  219. package/dist/legacyNames.js +230 -0
  220. package/dist/legacyNames.js.map +1 -0
  221. package/dist/pinnedStatus.d.ts +7 -1
  222. package/dist/pinnedStatus.d.ts.map +1 -1
  223. package/dist/pinnedStatus.js +1 -1
  224. package/dist/pinnedStatus.js.map +1 -1
  225. package/dist/platform/answerSink.d.ts +5 -0
  226. package/dist/platform/answerSink.d.ts.map +1 -1
  227. package/dist/platform/answerSink.js.map +1 -1
  228. package/dist/requests/answerRequest.d.ts +2 -0
  229. package/dist/requests/answerRequest.d.ts.map +1 -1
  230. package/dist/requests/answerRequest.js +3 -1
  231. package/dist/requests/answerRequest.js.map +1 -1
  232. package/dist/requests/answerStyle.d.ts +11 -0
  233. package/dist/requests/answerStyle.d.ts.map +1 -0
  234. package/dist/requests/answerStyle.js +14 -0
  235. package/dist/requests/answerStyle.js.map +1 -0
  236. package/dist/requests/answerTail.d.ts.map +1 -1
  237. package/dist/requests/answerTail.js +2 -0
  238. package/dist/requests/answerTail.js.map +1 -1
  239. package/dist/requests/requestHeader.d.ts.map +1 -1
  240. package/dist/requests/requestHeader.js +3 -0
  241. package/dist/requests/requestHeader.js.map +1 -1
  242. package/dist/requests/requestLedger.d.ts +8 -0
  243. package/dist/requests/requestLedger.d.ts.map +1 -1
  244. package/dist/requests/requestLedger.js +20 -2
  245. package/dist/requests/requestLedger.js.map +1 -1
  246. package/dist/requests/types.d.ts +3 -1
  247. package/dist/requests/types.d.ts.map +1 -1
  248. package/dist/scheduler/mcpSurface.d.ts +9 -1
  249. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  250. package/dist/scheduler/mcpSurface.js +49 -16
  251. package/dist/scheduler/mcpSurface.js.map +1 -1
  252. package/dist/shutdown.d.ts +14 -0
  253. package/dist/shutdown.d.ts.map +1 -1
  254. package/dist/shutdown.js +16 -0
  255. package/dist/shutdown.js.map +1 -1
  256. package/dist/state.d.ts +57 -3
  257. package/dist/state.d.ts.map +1 -1
  258. package/dist/state.js +67 -3
  259. package/dist/state.js.map +1 -1
  260. package/dist/stt/sttAutoInstall.d.ts +39 -0
  261. package/dist/stt/sttAutoInstall.d.ts.map +1 -0
  262. package/dist/stt/sttAutoInstall.js +158 -0
  263. package/dist/stt/sttAutoInstall.js.map +1 -0
  264. package/dist/stt/sttChildEnv.d.ts +11 -0
  265. package/dist/stt/sttChildEnv.d.ts.map +1 -0
  266. package/dist/stt/sttChildEnv.js +30 -0
  267. package/dist/stt/sttChildEnv.js.map +1 -0
  268. package/dist/stt/sttConfigEdit.d.ts +71 -0
  269. package/dist/stt/sttConfigEdit.d.ts.map +1 -0
  270. package/dist/stt/sttConfigEdit.js +144 -0
  271. package/dist/stt/sttConfigEdit.js.map +1 -0
  272. package/dist/stt/sttInstall.d.ts +147 -0
  273. package/dist/stt/sttInstall.d.ts.map +1 -0
  274. package/dist/stt/sttInstall.js +491 -0
  275. package/dist/stt/sttInstall.js.map +1 -0
  276. package/dist/stt/sttInstallEntry.d.ts +2 -0
  277. package/dist/stt/sttInstallEntry.d.ts.map +1 -0
  278. package/dist/stt/sttInstallEntry.js +31 -0
  279. package/dist/stt/sttInstallEntry.js.map +1 -0
  280. package/dist/stt/sttInstallReporter.d.ts +45 -0
  281. package/dist/stt/sttInstallReporter.d.ts.map +1 -0
  282. package/dist/stt/sttInstallReporter.js +57 -0
  283. package/dist/stt/sttInstallReporter.js.map +1 -0
  284. package/dist/stt/sttRuntime.d.ts +35 -0
  285. package/dist/stt/sttRuntime.d.ts.map +1 -0
  286. package/dist/stt/sttRuntime.js +73 -0
  287. package/dist/stt/sttRuntime.js.map +1 -0
  288. package/dist/stt/sttScreenPlan.d.ts +193 -0
  289. package/dist/stt/sttScreenPlan.d.ts.map +1 -0
  290. package/dist/stt/sttScreenPlan.js +541 -0
  291. package/dist/stt/sttScreenPlan.js.map +1 -0
  292. package/dist/stt/sttSettings.d.ts +201 -0
  293. package/dist/stt/sttSettings.d.ts.map +1 -0
  294. package/dist/stt/sttSettings.js +387 -0
  295. package/dist/stt/sttSettings.js.map +1 -0
  296. package/dist/stt/sttSidecarOwner.d.ts +115 -0
  297. package/dist/stt/sttSidecarOwner.d.ts.map +1 -0
  298. package/dist/stt/sttSidecarOwner.js +475 -0
  299. package/dist/stt/sttSidecarOwner.js.map +1 -0
  300. package/dist/stt/transcribeChain.d.ts +36 -0
  301. package/dist/stt/transcribeChain.d.ts.map +1 -0
  302. package/dist/stt/transcribeChain.js +42 -0
  303. package/dist/stt/transcribeChain.js.map +1 -0
  304. package/dist/types.d.ts +77 -4
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/utils/adapterSwitchSessionIds.d.ts +32 -0
  307. package/dist/utils/adapterSwitchSessionIds.d.ts.map +1 -0
  308. package/dist/utils/adapterSwitchSessionIds.js +44 -0
  309. package/dist/utils/adapterSwitchSessionIds.js.map +1 -0
  310. package/dist/utils/backendSwitchPlan.d.ts +63 -0
  311. package/dist/utils/backendSwitchPlan.d.ts.map +1 -0
  312. package/dist/utils/backendSwitchPlan.js +73 -0
  313. package/dist/utils/backendSwitchPlan.js.map +1 -0
  314. package/dist/utils/claudeAccountPickerPlan.d.ts +12 -1
  315. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -1
  316. package/dist/utils/claudeAccountPickerPlan.js +20 -1
  317. package/dist/utils/claudeAccountPickerPlan.js.map +1 -1
  318. package/dist/utils/claudeProfiles.d.ts +7 -0
  319. package/dist/utils/claudeProfiles.d.ts.map +1 -1
  320. package/dist/utils/claudeProfiles.js +19 -0
  321. package/dist/utils/claudeProfiles.js.map +1 -1
  322. package/dist/utils/claudeTranscriptContent.d.ts +24 -0
  323. package/dist/utils/claudeTranscriptContent.d.ts.map +1 -0
  324. package/dist/utils/claudeTranscriptContent.js +107 -0
  325. package/dist/utils/claudeTranscriptContent.js.map +1 -0
  326. package/dist/utils/claudeUsage.d.ts +47 -8
  327. package/dist/utils/claudeUsage.d.ts.map +1 -1
  328. package/dist/utils/claudeUsage.js +76 -14
  329. package/dist/utils/claudeUsage.js.map +1 -1
  330. package/dist/utils/claudeUsageRefresher.d.ts +8 -1
  331. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
  332. package/dist/utils/claudeUsageRefresher.js +9 -4
  333. package/dist/utils/claudeUsageRefresher.js.map +1 -1
  334. package/dist/utils/effortPickerPlan.d.ts +54 -0
  335. package/dist/utils/effortPickerPlan.d.ts.map +1 -0
  336. package/dist/utils/effortPickerPlan.js +56 -0
  337. package/dist/utils/effortPickerPlan.js.map +1 -0
  338. package/dist/utils/ensureSessionPlan.d.ts +20 -4
  339. package/dist/utils/ensureSessionPlan.d.ts.map +1 -1
  340. package/dist/utils/ensureSessionPlan.js +17 -4
  341. package/dist/utils/ensureSessionPlan.js.map +1 -1
  342. package/dist/utils/fallbackBridge.d.ts +6 -2
  343. package/dist/utils/fallbackBridge.d.ts.map +1 -1
  344. package/dist/utils/fallbackBridge.js +10 -3
  345. package/dist/utils/fallbackBridge.js.map +1 -1
  346. package/dist/utils/fallbackChain.d.ts +36 -0
  347. package/dist/utils/fallbackChain.d.ts.map +1 -1
  348. package/dist/utils/fallbackChain.js +65 -1
  349. package/dist/utils/fallbackChain.js.map +1 -1
  350. package/dist/utils/fallbackSwitchNotice.d.ts +41 -0
  351. package/dist/utils/fallbackSwitchNotice.d.ts.map +1 -0
  352. package/dist/utils/fallbackSwitchNotice.js +75 -0
  353. package/dist/utils/fallbackSwitchNotice.js.map +1 -0
  354. package/dist/utils/fileSendService.d.ts +33 -10
  355. package/dist/utils/fileSendService.d.ts.map +1 -1
  356. package/dist/utils/fileSendService.js +78 -27
  357. package/dist/utils/fileSendService.js.map +1 -1
  358. package/dist/utils/jsonStreamHost.d.ts +39 -0
  359. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  360. package/dist/utils/jsonStreamHost.js +60 -1
  361. package/dist/utils/jsonStreamHost.js.map +1 -1
  362. package/dist/utils/limitEpisodeRecovery.d.ts +16 -2
  363. package/dist/utils/limitEpisodeRecovery.d.ts.map +1 -1
  364. package/dist/utils/limitEpisodeRecovery.js +44 -3
  365. package/dist/utils/limitEpisodeRecovery.js.map +1 -1
  366. package/dist/utils/limitSettings.d.ts +25 -0
  367. package/dist/utils/limitSettings.d.ts.map +1 -0
  368. package/dist/utils/limitSettings.js +31 -0
  369. package/dist/utils/limitSettings.js.map +1 -0
  370. package/dist/utils/limitsBoardPlan.d.ts +52 -0
  371. package/dist/utils/limitsBoardPlan.d.ts.map +1 -0
  372. package/dist/utils/limitsBoardPlan.js +93 -0
  373. package/dist/utils/limitsBoardPlan.js.map +1 -0
  374. package/dist/utils/openCodeCompactPlugin.d.ts +11 -3
  375. package/dist/utils/openCodeCompactPlugin.d.ts.map +1 -1
  376. package/dist/utils/openCodeCompactPlugin.js +37 -5
  377. package/dist/utils/openCodeCompactPlugin.js.map +1 -1
  378. package/dist/utils/openCodeUsage.d.ts +93 -0
  379. package/dist/utils/openCodeUsage.d.ts.map +1 -0
  380. package/dist/utils/openCodeUsage.js +248 -0
  381. package/dist/utils/openCodeUsage.js.map +1 -0
  382. package/dist/utils/operatorSwitchPlan.d.ts +61 -0
  383. package/dist/utils/operatorSwitchPlan.d.ts.map +1 -0
  384. package/dist/utils/operatorSwitchPlan.js +32 -0
  385. package/dist/utils/operatorSwitchPlan.js.map +1 -0
  386. package/dist/utils/promptDelivery.d.ts +40 -0
  387. package/dist/utils/promptDelivery.d.ts.map +1 -1
  388. package/dist/utils/promptDelivery.js +31 -0
  389. package/dist/utils/promptDelivery.js.map +1 -1
  390. package/dist/utils/recvPreviewRedaction.d.ts +14 -4
  391. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -1
  392. package/dist/utils/recvPreviewRedaction.js +19 -7
  393. package/dist/utils/recvPreviewRedaction.js.map +1 -1
  394. package/dist/utils/startupReadiness.d.ts +3 -3
  395. package/dist/utils/startupReadiness.d.ts.map +1 -1
  396. package/dist/utils/startupReadiness.js +2 -2
  397. package/dist/utils/startupReadiness.js.map +1 -1
  398. package/dist/utils/threadStatusReport.d.ts +3 -1
  399. package/dist/utils/threadStatusReport.d.ts.map +1 -1
  400. package/dist/utils/threadStatusReport.js +4 -3
  401. package/dist/utils/threadStatusReport.js.map +1 -1
  402. package/dist/utils/timezone.d.ts +23 -0
  403. package/dist/utils/timezone.d.ts.map +1 -1
  404. package/dist/utils/timezone.js +38 -0
  405. package/dist/utils/timezone.js.map +1 -1
  406. package/dist/utils/transcribeAudio.d.ts +25 -12
  407. package/dist/utils/transcribeAudio.d.ts.map +1 -1
  408. package/dist/utils/transcribeAudio.js +39 -21
  409. package/dist/utils/transcribeAudio.js.map +1 -1
  410. package/dist/utils/usageRefreshBudget.d.ts +9 -0
  411. package/dist/utils/usageRefreshBudget.d.ts.map +1 -0
  412. package/dist/utils/usageRefreshBudget.js +27 -0
  413. package/dist/utils/usageRefreshBudget.js.map +1 -0
  414. package/examples/.env.example +13 -9
  415. package/examples/docker-compose.yml +20 -17
  416. package/package.json +4 -1
  417. package/stt/gigaam_sidecar.py +800 -0
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sttLanguagePresets = exports.sttIdleMinutesPresets = exports.sttTimeoutPercentPresets = exports.sttTimeoutBasePresets = void 0;
4
+ exports.moveSttEngine = moveSttEngine;
5
+ exports.toggleSttEngineDisabled = toggleSttEngineDisabled;
6
+ exports.setSttEngineTimeout = setSttEngineTimeout;
7
+ exports.setSttEngineApiKey = setSttEngineApiKey;
8
+ exports.removeSttEngine = removeSttEngine;
9
+ exports.addSttEngine = addSttEngine;
10
+ exports.enableLocalSttEngine = enableLocalSttEngine;
11
+ exports.dropLocalSttEngine = dropLocalSttEngine;
12
+ exports.setSttLanguage = setSttLanguage;
13
+ exports.setSttIdleMinutes = setSttIdleMinutes;
14
+ exports.setSttWorkers = setSttWorkers;
15
+ exports.normaliseSttUrl = normaliseSttUrl;
16
+ const sttSettings_1 = require("./sttSettings");
17
+ /**
18
+ * @description The edits `/stt` makes to `stt.json`, as pure functions: each takes the current settings and
19
+ * returns the next ones (or a named refusal), validated by the same schema a hand edit goes through — a button
20
+ * can never write a file the loader would refuse.
21
+ */
22
+ exports.sttTimeoutBasePresets = [5, 10, 20, 30];
23
+ exports.sttTimeoutPercentPresets = [10, 25, 50, 100];
24
+ /** Minutes the local engine may idle; `0` is "never exits". */
25
+ exports.sttIdleMinutesPresets = [5, 15, 30, 60, 0];
26
+ exports.sttLanguagePresets = [sttSettings_1.gigaamLanguage, 'en', 'uk', 'de', 'fr', 'es'];
27
+ const baseUrlSuffixRe = /\/v1\/?$/;
28
+ const transcriptionsPath = '/v1/audio/transcriptions';
29
+ const transcriptionsPathRe = /\/audio\/transcriptions\/?$/;
30
+ function finalize(config) {
31
+ const validation = (0, sttSettings_1.validateSttConfig)(config);
32
+ return validation.ok ? { ok: true, config: validation.config } : { ok: false, reason: 'invalidValue' };
33
+ }
34
+ function findEngineIndex(config, engineId) {
35
+ return config.engines.findIndex((engine) => engine.id === engineId);
36
+ }
37
+ function replaceEngine(config, engineId, change) {
38
+ const index = findEngineIndex(config, engineId);
39
+ if (index < 0)
40
+ return { ok: false, reason: 'unknownEngine' };
41
+ return finalize({ ...config, engines: config.engines.map((engine, position) => (position === index ? change(engine) : engine)) });
42
+ }
43
+ /** @description Move an engine one place earlier (`-1`) or later (`1`); at the end of the list it stays. */
44
+ function moveSttEngine(config, engineId, direction) {
45
+ const index = findEngineIndex(config, engineId);
46
+ if (index < 0)
47
+ return { ok: false, reason: 'unknownEngine' };
48
+ const target = index + direction;
49
+ if (target < 0 || target >= config.engines.length)
50
+ return { ok: true, config };
51
+ const engines = [...config.engines];
52
+ [engines[index], engines[target]] = [engines[target], engines[index]];
53
+ return finalize({ ...config, engines });
54
+ }
55
+ /** @description Switch an engine between "use" and "don't use" without removing it. */
56
+ function toggleSttEngineDisabled(config, engineId) {
57
+ return replaceEngine(config, engineId, (engine) => {
58
+ const { isDisabled: _wasDisabled, ...rest } = engine;
59
+ return engine.isDisabled ? rest : { ...rest, isDisabled: true };
60
+ });
61
+ }
62
+ /** @description Change one half of an engine's timeout; the other half keeps its value (default `10 s + 25 %`). */
63
+ function setSttEngineTimeout(config, engineId, change, currentTimeout) {
64
+ return replaceEngine(config, engineId, (engine) => ({ ...engine, timeout: { ...(engine.timeout ?? currentTimeout), ...change } }));
65
+ }
66
+ /** @description Set (or replace) an engine's API key. */
67
+ function setSttEngineApiKey(config, engineId, apiKey) {
68
+ return replaceEngine(config, engineId, (engine) => ({ ...engine, apiKey }));
69
+ }
70
+ function removeSttEngine(config, engineId) {
71
+ if (findEngineIndex(config, engineId) < 0)
72
+ return { ok: false, reason: 'unknownEngine' };
73
+ return finalize({ ...config, engines: config.engines.filter((engine) => engine.id !== engineId) });
74
+ }
75
+ /**
76
+ * @description Add an engine with a fresh id: the local one goes FIRST (it is the point of installing it), the
77
+ * others last. The local engine can be listed once; the list holds at most {@link sttEngineLimit}.
78
+ */
79
+ function addSttEngine(config, spec) {
80
+ if (config.engines.length >= sttSettings_1.sttEngineLimit)
81
+ return { ok: false, reason: 'full' };
82
+ if (spec.kind === 'gigaam' && config.engines.some((engine) => engine.kind === 'gigaam'))
83
+ return { ok: false, reason: 'alreadyListed' };
84
+ const engineId = (0, sttSettings_1.createSttEngineId)(spec.kind, new Set(config.engines.map((engine) => engine.id)));
85
+ const engine = spec.kind === 'gigaam'
86
+ ? { id: engineId, kind: 'gigaam' }
87
+ : spec.kind === 'url'
88
+ ? { id: engineId, kind: 'url', url: spec.url, ...(spec.apiKey ? { apiKey: spec.apiKey } : {}) }
89
+ : { id: engineId, kind: spec.kind, apiKey: spec.apiKey };
90
+ const engines = spec.kind === 'gigaam' ? [engine, ...config.engines] : [...config.engines, engine];
91
+ const result = finalize({ ...config, engines });
92
+ return result.ok ? { ...result, engineId } : result;
93
+ }
94
+ /**
95
+ * @description After the local engine is installed: put it first when the chain does not name it yet, else just
96
+ * make sure it is switched on where it already stands.
97
+ */
98
+ function enableLocalSttEngine(config) {
99
+ const existing = config.engines.find((engine) => engine.kind === 'gigaam');
100
+ if (!existing)
101
+ return addSttEngine(config, { kind: 'gigaam' });
102
+ return existing.isDisabled ? toggleSttEngineDisabled(config, existing.id) : { ok: true, config };
103
+ }
104
+ /** @description Drop the local engine from the chain (its files are removed by the caller). */
105
+ function dropLocalSttEngine(config) {
106
+ return finalize({ ...config, engines: config.engines.filter((engine) => engine.kind !== 'gigaam') });
107
+ }
108
+ function setSttLanguage(config, language) {
109
+ return finalize({ ...config, language });
110
+ }
111
+ function setSttIdleMinutes(config, idleMinutes) {
112
+ return finalize({ ...config, gigaam: { ...config.gigaam, idleMinutes } });
113
+ }
114
+ function setSttWorkers(config, workers) {
115
+ return finalize({ ...config, gigaam: { ...config.gigaam, workers } });
116
+ }
117
+ /**
118
+ * @description Turn what the operator typed into the endpoint URL: it must be http(s) and carry no login (a key
119
+ * has its own step). A base address (`http://host:8000`, `…/v1`) gets `/v1/audio/transcriptions` appended; an
120
+ * address that already names `…/audio/transcriptions` is kept as typed, and so is any other path (a proxy
121
+ * under its own prefix).
122
+ */
123
+ function normaliseSttUrl(input) {
124
+ let parsed;
125
+ try {
126
+ parsed = new URL(input.trim());
127
+ }
128
+ catch {
129
+ return { ok: false, reason: 'invalid' };
130
+ }
131
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
132
+ return { ok: false, reason: 'invalid' };
133
+ if (parsed.username || parsed.password)
134
+ return { ok: false, reason: 'credentials' };
135
+ parsed.hash = '';
136
+ const trimmedPath = parsed.pathname.replace(/\/+$/, '');
137
+ if (transcriptionsPathRe.test(trimmedPath))
138
+ return { ok: true, url: parsed.toString() };
139
+ if (trimmedPath === '' || baseUrlSuffixRe.test(parsed.pathname)) {
140
+ parsed.pathname = `${trimmedPath.replace(baseUrlSuffixRe, '')}${transcriptionsPath}`;
141
+ }
142
+ return { ok: true, url: parsed.toString() };
143
+ }
144
+ //# sourceMappingURL=sttConfigEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sttConfigEdit.js","sourceRoot":"","sources":["../../src/stt/sttConfigEdit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @description The install of the local speech engine: a private Python venv
3
+ * under `<DATA_DIR>/stt` holding the pinned `onnx-asr` + `soundfile`, and the
4
+ * GigaAM model fetched into a private Hugging Face cache — nothing is shared
5
+ * with, or written into, the operator's Python. There is NO user-facing command:
6
+ * the bot runs this from `/stt` ("Add engine → GigaAM (local)") or, when `stt.json`
7
+ * names the local engine, at boot; both launch the detached `sttInstallEntry`.
8
+ */
9
+ /** Must equal `SCRIPT_VERSION` in `stt/gigaam_sidecar.py` (a unit test holds them together). */
10
+ export declare const gigaamScriptVersion = "1";
11
+ /** The one place the pinned packages are named. */
12
+ export declare const gigaamPinnedRequirements: readonly string[];
13
+ /** The int8 e2e-rnnt files as fetched (216 MiB: the 215 MB encoder, decoder, joint, vocab), the progress denominator. */
14
+ export declare const gigaamModelApproxBytes: number;
15
+ /** Where everything of the local engine lives under a data dir. */
16
+ export interface SttPaths {
17
+ root: string;
18
+ venvDir: string;
19
+ venvPython: string;
20
+ /** `HF_HOME` of the sidecar and of the install's model fetch. */
21
+ hfHome: string;
22
+ uvCacheDir: string;
23
+ markerFile: string;
24
+ lockDir: string;
25
+ installLog: string;
26
+ progressFile: string;
27
+ }
28
+ export declare function getSttPaths(dataDir: string): SttPaths;
29
+ /**
30
+ * @description The sidecar script that ships in the package's `stt/` dir, two
31
+ * levels above this module (`src/stt` under tsx, `dist/stt` once built).
32
+ */
33
+ export declare function getSidecarScriptPath(): string;
34
+ /** What the host offers: `uv`, and/or a `python3` with the venv module. */
35
+ export interface SttInstallFacts {
36
+ uvPath: string | null;
37
+ python3: {
38
+ path: string;
39
+ major: number;
40
+ minor: number;
41
+ hasVenvSupport: boolean;
42
+ } | null;
43
+ paths: SttPaths;
44
+ }
45
+ export interface SttInstallCommand {
46
+ command: string;
47
+ args: string[];
48
+ /** Shown to the operator while it runs. */
49
+ phase: 'creatingEnvironment' | 'installingPackages';
50
+ }
51
+ export type SttInstallPlan = {
52
+ ok: true;
53
+ tool: 'uv' | 'pip';
54
+ commands: SttInstallCommand[];
55
+ } | {
56
+ ok: false;
57
+ error: string;
58
+ };
59
+ export declare const missingPythonToolError: string;
60
+ /**
61
+ * @description Decide how to build the venv: `uv` first (it needs no `ensurepip`
62
+ * and can fetch a Python), else a `python3` >= 3.10 that can create a venv with
63
+ * pip, else an error naming what is missing.
64
+ */
65
+ export declare function planSttInstall(facts: SttInstallFacts): SttInstallPlan;
66
+ /** @description Look at the host: where `uv` and a usable `python3` are. */
67
+ export declare function detectSttInstallFacts(paths: SttPaths, env?: NodeJS.ProcessEnv): SttInstallFacts;
68
+ /** @name SttInstallMarker @description `installed.json`: what the venv was built from. */
69
+ export interface SttInstallMarker {
70
+ scriptVersion: string;
71
+ pins: string[];
72
+ installedAt: string;
73
+ }
74
+ /**
75
+ * @description Whether the local engine is ready to start: the marker names the
76
+ * script version and pins this build ships, and the venv's interpreter is still
77
+ * there. Cheap and synchronous — it runs for every voice note.
78
+ */
79
+ export declare function isGigaamInstalled(dataDir: string): boolean;
80
+ /** @description An install job is running right now (its lock is held by a live process, not stale). */
81
+ export declare function isGigaamInstalling(dataDir: string, nowMs?: number): boolean;
82
+ export type SttInstallPhase = 'creatingEnvironment' | 'installingPackages' | 'downloadingModel' | 'checking' | 'done' | 'failed';
83
+ /** @name SttInstallProgress @description One progress report; `failed` carries the error and the log tail. */
84
+ export interface SttInstallProgress {
85
+ phase: SttInstallPhase;
86
+ detail: string;
87
+ /** Bytes of the model cache so far (during `downloadingModel` / `checking`). */
88
+ bytesDownloaded: number;
89
+ error?: string;
90
+ logTail?: string[];
91
+ }
92
+ /**
93
+ * @description The last complete progress report in the text of the progress
94
+ * file (one JSON object per line); a torn last line from a crash is skipped.
95
+ */
96
+ export declare function getLastSttInstallProgress(text: string): SttInstallProgress | null;
97
+ export declare function readSttInstallProgress(dataDir: string): SttInstallProgress | null;
98
+ /** @description "120/217 MB" — the download line of the progress report. */
99
+ export declare function formatDownloadDetail(bytesDownloaded: number): string;
100
+ export interface SttCommandResult {
101
+ exitCode: number | null;
102
+ /** Everything the command printed to stdout. */
103
+ stdout: string;
104
+ }
105
+ /** Runs one install command with its output appended to the log; replaceable in tests. */
106
+ export type SttCommandRunner = (command: string, args: string[], options: {
107
+ env: NodeJS.ProcessEnv;
108
+ logFile: string;
109
+ timeoutMs: number;
110
+ }) => Promise<SttCommandResult>;
111
+ export declare const runSttCommand: SttCommandRunner;
112
+ export interface SttInstallOptions {
113
+ onProgress?: (progress: SttInstallProgress) => void;
114
+ /** Rebuild the venv even when the marker says it is current. */
115
+ force?: boolean;
116
+ env?: NodeJS.ProcessEnv;
117
+ /** Seams for tests. */
118
+ runCommand?: SttCommandRunner;
119
+ detectFacts?: (paths: SttPaths, env: NodeJS.ProcessEnv) => SttInstallFacts;
120
+ downloadPollIntervalMs?: number;
121
+ nowMs?: () => number;
122
+ }
123
+ export type SttInstallResult = {
124
+ ok: true;
125
+ wasAlreadyInstalled: boolean;
126
+ } | {
127
+ ok: false;
128
+ reason: 'locked' | 'failed';
129
+ error: string;
130
+ logTail: string[];
131
+ };
132
+ /**
133
+ * @description Build the venv, install the pinned packages and fetch the model
134
+ * (`--check` loads it and recognises a second of silence, so a broken download
135
+ * is caught here, not by the first voice). Idempotent: a current marker means
136
+ * nothing to do unless `force`. One install at a time per data dir (a lock
137
+ * directory; a stale one or a dead owner's is replaced). Child output goes to
138
+ * `install.log`; a failure returns its last lines.
139
+ */
140
+ export declare function runSttInstall(dataDir: string, options?: SttInstallOptions): Promise<SttInstallResult>;
141
+ /**
142
+ * @description Delete the local engine's files (venv, model cache, uv cache,
143
+ * marker, install log). Refuses while an install runs. The caller stops the
144
+ * sidecar first.
145
+ */
146
+ export declare function removeSttInstall(dataDir: string): boolean;
147
+ //# sourceMappingURL=sttInstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sttInstall.d.ts","sourceRoot":"","sources":["../../src/stt/sttInstall.ts"],"names":[],"mappings":"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"}