@openacp/cli 2026.327.3 → 2026.328.2

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 (179) hide show
  1. package/README.md +13 -13
  2. package/dist/adapter-HGJENQCN.js +13 -0
  3. package/dist/agent-catalog-SZQQERV7.js +10 -0
  4. package/dist/{agent-dependencies-WS7Z2DFW.js → agent-dependencies-ED2ZTUHG.js} +1 -2
  5. package/dist/{agent-registry-5LZT7CUB.js → agent-registry-YOGP656W.js} +1 -2
  6. package/dist/agent-store-5UHZH2XI.js +8 -0
  7. package/dist/{api-client-AQPNKXI2.js → api-client-XTLRRFPX.js} +1 -2
  8. package/dist/api-server-DSUW637I.js +7 -0
  9. package/dist/api-server-WFB5K6FP.js +10 -0
  10. package/dist/{autostart-6JS565RY.js → autostart-CUPZMKKC.js} +3 -4
  11. package/dist/{chunk-WIIZNPCR.js → chunk-2KT6TROD.js} +12 -33
  12. package/dist/chunk-2KT6TROD.js.map +1 -0
  13. package/dist/{chunk-PPSMUECX.js → chunk-2R5XM3ES.js} +2 -2
  14. package/dist/{chunk-SNPYTMPR.js → chunk-3EWTPOF7.js} +2 -2
  15. package/dist/{chunk-YEULD3SG.js → chunk-3NAFXVQM.js} +7 -2
  16. package/dist/{chunk-YEULD3SG.js.map → chunk-3NAFXVQM.js.map} +1 -1
  17. package/dist/{chunk-QAQDGPB4.js → chunk-43JVXFYP.js} +3 -3
  18. package/dist/{chunk-KMMEFXIE.js → chunk-4B6PCWQP.js} +37 -9
  19. package/dist/chunk-4B6PCWQP.js.map +1 -0
  20. package/dist/{chunk-A6Y4GZM3.js → chunk-566W6INH.js} +2 -2
  21. package/dist/{chunk-ODUM3D6X.js → chunk-5HKQCYOI.js} +1 -39
  22. package/dist/chunk-5HKQCYOI.js.map +1 -0
  23. package/dist/{chunk-36YQ44D7.js → chunk-5TCXYDLR.js} +3 -3
  24. package/dist/{chunk-XIBG7LSL.js → chunk-6VR4GWOO.js} +238 -108
  25. package/dist/chunk-6VR4GWOO.js.map +1 -0
  26. package/dist/{chunk-WXVT3AOY.js → chunk-7ZCQF6QM.js} +8 -3
  27. package/dist/chunk-7ZCQF6QM.js.map +1 -0
  28. package/dist/{chunk-HUWOFP2H.js → chunk-E2SLHZAC.js} +8 -12
  29. package/dist/{chunk-HUWOFP2H.js.map → chunk-E2SLHZAC.js.map} +1 -1
  30. package/dist/{chunk-RBYBSSGO.js → chunk-FCTC7KDT.js} +2 -2
  31. package/dist/chunk-I53NEV3S.js +45 -0
  32. package/dist/chunk-I53NEV3S.js.map +1 -0
  33. package/dist/{chunk-2YCW3QDV.js → chunk-IXMIC4GQ.js} +8 -7
  34. package/dist/chunk-IXMIC4GQ.js.map +1 -0
  35. package/dist/{chunk-BLQUXO7S.js → chunk-IZ5UEZF7.js} +27 -2
  36. package/dist/chunk-IZ5UEZF7.js.map +1 -0
  37. package/dist/{chunk-QVMEF6FB.js → chunk-JOMDPFQ2.js} +10 -24
  38. package/dist/chunk-JOMDPFQ2.js.map +1 -0
  39. package/dist/{chunk-4GMLGCF2.js → chunk-JUFN4XMB.js} +2 -2
  40. package/dist/{chunk-AD3X6DGK.js → chunk-NT6FYV27.js} +75 -13
  41. package/dist/chunk-NT6FYV27.js.map +1 -0
  42. package/dist/{chunk-UMT7RU77.js → chunk-QBEQJFGL.js} +9 -9
  43. package/dist/{chunk-XMMAGAT4.js → chunk-R6KZYF7D.js} +8 -1
  44. package/dist/{chunk-XMMAGAT4.js.map → chunk-R6KZYF7D.js.map} +1 -1
  45. package/dist/{chunk-LP45RCA4.js → chunk-RXMWJHWH.js} +1007 -495
  46. package/dist/chunk-RXMWJHWH.js.map +1 -0
  47. package/dist/{chunk-SHTGQGAU.js → chunk-V2YZWYXT.js} +3 -3
  48. package/dist/{chunk-BQ6FR32N.js → chunk-VD3QSMVY.js} +2 -2
  49. package/dist/cli.js +141 -115
  50. package/dist/cli.js.map +1 -1
  51. package/dist/{config-I4FMCJGZ.js → config-UCAFCS5W.js} +3 -4
  52. package/dist/config-editor-OU6PUY66.js +10 -0
  53. package/dist/{config-registry-CUMNXFGK.js → config-registry-ZXAIJNYB.js} +2 -3
  54. package/dist/{context-XM6E22LM.js → context-7MPU7RL5.js} +1 -2
  55. package/dist/core-plugins-R2EVZAJV.js +22 -0
  56. package/dist/{daemon-PXO5QPCR.js → daemon-DTA6KYYY.js} +4 -5
  57. package/dist/{dev-loader-DRU3R7ZM.js → dev-loader-7P3HZCIA.js} +1 -3
  58. package/dist/{dev-loader-DRU3R7ZM.js.map → dev-loader-7P3HZCIA.js.map} +1 -1
  59. package/dist/doctor-D723IB2I.js +9 -0
  60. package/dist/file-service-HHB3JQIO.js +8 -0
  61. package/dist/index.d.ts +41 -150
  62. package/dist/index.js +63 -29
  63. package/dist/index.js.map +1 -1
  64. package/dist/{install-cloudflared-AN24L4DP.js → install-cloudflared-JRJ4BSOM.js} +3 -4
  65. package/dist/{install-cloudflared-AN24L4DP.js.map → install-cloudflared-JRJ4BSOM.js.map} +1 -1
  66. package/dist/{install-context-XPWTFT3J.js → install-context-EHYV5WRY.js} +2 -3
  67. package/dist/{install-context-XPWTFT3J.js.map → install-context-EHYV5WRY.js.map} +1 -1
  68. package/dist/{install-jq-CRVDJGF3.js → install-jq-ISTGT263.js} +3 -4
  69. package/dist/{install-jq-CRVDJGF3.js.map → install-jq-ISTGT263.js.map} +1 -1
  70. package/dist/{integrate-G6CVXTGT.js → integrate-JIEZYDOR.js} +1 -2
  71. package/dist/{integrate-G6CVXTGT.js.map → integrate-JIEZYDOR.js.map} +1 -1
  72. package/dist/{log-LZ7FTRKG.js → log-YZ243M5G.js} +4 -3
  73. package/dist/{main-UVTZ46WP.js → main-RRSX5SRL.js} +117 -40
  74. package/dist/main-RRSX5SRL.js.map +1 -0
  75. package/dist/{menu-YDQ2LWAR.js → menu-ALFN37IR.js} +1 -2
  76. package/dist/notifications-MO23S7S3.js +8 -0
  77. package/dist/{plugin-create-5HQRF2ID.js → plugin-create-EHL76ZZG.js} +1 -2
  78. package/dist/{plugin-create-5HQRF2ID.js.map → plugin-create-EHL76ZZG.js.map} +1 -1
  79. package/dist/plugin-installer-5XHORMLS.js +9 -0
  80. package/dist/{plugin-registry-WB3DR67H.js → plugin-registry-6J3YSFHF.js} +1 -2
  81. package/dist/{plugin-search-HQ4WQKOF.js → plugin-search-MGKAL5JM.js} +1 -2
  82. package/dist/{plugin-search-HQ4WQKOF.js.map → plugin-search-MGKAL5JM.js.map} +1 -1
  83. package/dist/{post-upgrade-3ADZRMYJ.js → post-upgrade-Y26S2ZQ7.js} +6 -7
  84. package/dist/{post-upgrade-3ADZRMYJ.js.map → post-upgrade-Y26S2ZQ7.js.map} +1 -1
  85. package/dist/{read-text-file-IRZM3QLM.js → read-text-file-DJBTITIB.js} +1 -2
  86. package/dist/{registry-client-AVGRE4CF.js → registry-client-GTBWLXYU.js} +1 -2
  87. package/dist/{security-YNRBW6S7.js → security-2BA265LN.js} +1 -2
  88. package/dist/{settings-manager-MD2U4ZV2.js → settings-manager-B4UN2LAC.js} +1 -2
  89. package/dist/{setup-EYAFK2WI.js → setup-OI6A3OXW.js} +109 -80
  90. package/dist/setup-OI6A3OXW.js.map +1 -0
  91. package/dist/speech-GB7PHVQZ.js +9 -0
  92. package/dist/{suggest-7D6B542M.js → suggest-RST5VOHB.js} +1 -3
  93. package/dist/{suggest-7D6B542M.js.map → suggest-RST5VOHB.js.map} +1 -1
  94. package/dist/telegram-UVIAXADE.js +7 -0
  95. package/dist/tunnel-4WNFC7GO.js +7 -0
  96. package/dist/{tunnel-service-QJPUYEKU.js → tunnel-service-I2NFUX3V.js} +3 -4
  97. package/dist/{tunnel-service-QJPUYEKU.js.map → tunnel-service-I2NFUX3V.js.map} +1 -1
  98. package/dist/{validators-WSTBNKRW.js → validators-GITLOFXC.js} +1 -2
  99. package/dist/{version-NQZBM5M7.js → version-AXXV6IV2.js} +1 -2
  100. package/package.json +1 -3
  101. package/dist/adapter-LC2QSDAS.js +0 -15
  102. package/dist/adapter-Y55NXX6I.js +0 -1006
  103. package/dist/adapter-Y55NXX6I.js.map +0 -1
  104. package/dist/agent-catalog-YHBFERYO.js +0 -11
  105. package/dist/agent-store-VSHNY5GT.js +0 -9
  106. package/dist/api-server-7G3ZUZRM.js +0 -8
  107. package/dist/api-server-CAYNPUF2.js +0 -11
  108. package/dist/chunk-2YCW3QDV.js.map +0 -1
  109. package/dist/chunk-3ASUU6WW.js +0 -124
  110. package/dist/chunk-3ASUU6WW.js.map +0 -1
  111. package/dist/chunk-AD3X6DGK.js.map +0 -1
  112. package/dist/chunk-BLQUXO7S.js.map +0 -1
  113. package/dist/chunk-KMMEFXIE.js.map +0 -1
  114. package/dist/chunk-LP45RCA4.js.map +0 -1
  115. package/dist/chunk-ODUM3D6X.js.map +0 -1
  116. package/dist/chunk-QVMEF6FB.js.map +0 -1
  117. package/dist/chunk-TRXBJEZ5.js +0 -447
  118. package/dist/chunk-TRXBJEZ5.js.map +0 -1
  119. package/dist/chunk-VUNV25KB.js +0 -16
  120. package/dist/chunk-WIIZNPCR.js.map +0 -1
  121. package/dist/chunk-WXVT3AOY.js.map +0 -1
  122. package/dist/chunk-XIBG7LSL.js.map +0 -1
  123. package/dist/config-editor-3IKBPZA7.js +0 -11
  124. package/dist/core-plugins-ROU4GPLT.js +0 -23
  125. package/dist/dist-UHQK5CXN.js +0 -21151
  126. package/dist/dist-UHQK5CXN.js.map +0 -1
  127. package/dist/doctor-QZQAP46W.js +0 -10
  128. package/dist/file-service-EUODJAIT.js +0 -9
  129. package/dist/main-UVTZ46WP.js.map +0 -1
  130. package/dist/notifications-D5BRDNSU.js +0 -9
  131. package/dist/plugin-installer-GQ2P3Q3E.js +0 -23
  132. package/dist/plugin-installer-GQ2P3Q3E.js.map +0 -1
  133. package/dist/setup-EYAFK2WI.js.map +0 -1
  134. package/dist/slack-37ZWBDUI.js +0 -8
  135. package/dist/speech-2GHQNRIO.js +0 -9
  136. package/dist/telegram-2ZCCCZIY.js +0 -8
  137. package/dist/tunnel-45HA72MB.js +0 -8
  138. package/dist/version-NQZBM5M7.js.map +0 -1
  139. /package/dist/{adapter-LC2QSDAS.js.map → adapter-HGJENQCN.js.map} +0 -0
  140. /package/dist/{agent-catalog-YHBFERYO.js.map → agent-catalog-SZQQERV7.js.map} +0 -0
  141. /package/dist/{agent-dependencies-WS7Z2DFW.js.map → agent-dependencies-ED2ZTUHG.js.map} +0 -0
  142. /package/dist/{agent-registry-5LZT7CUB.js.map → agent-registry-YOGP656W.js.map} +0 -0
  143. /package/dist/{agent-store-VSHNY5GT.js.map → agent-store-5UHZH2XI.js.map} +0 -0
  144. /package/dist/{api-client-AQPNKXI2.js.map → api-client-XTLRRFPX.js.map} +0 -0
  145. /package/dist/{api-server-7G3ZUZRM.js.map → api-server-DSUW637I.js.map} +0 -0
  146. /package/dist/{api-server-CAYNPUF2.js.map → api-server-WFB5K6FP.js.map} +0 -0
  147. /package/dist/{autostart-6JS565RY.js.map → autostart-CUPZMKKC.js.map} +0 -0
  148. /package/dist/{chunk-PPSMUECX.js.map → chunk-2R5XM3ES.js.map} +0 -0
  149. /package/dist/{chunk-SNPYTMPR.js.map → chunk-3EWTPOF7.js.map} +0 -0
  150. /package/dist/{chunk-QAQDGPB4.js.map → chunk-43JVXFYP.js.map} +0 -0
  151. /package/dist/{chunk-A6Y4GZM3.js.map → chunk-566W6INH.js.map} +0 -0
  152. /package/dist/{chunk-36YQ44D7.js.map → chunk-5TCXYDLR.js.map} +0 -0
  153. /package/dist/{chunk-RBYBSSGO.js.map → chunk-FCTC7KDT.js.map} +0 -0
  154. /package/dist/{chunk-4GMLGCF2.js.map → chunk-JUFN4XMB.js.map} +0 -0
  155. /package/dist/{chunk-UMT7RU77.js.map → chunk-QBEQJFGL.js.map} +0 -0
  156. /package/dist/{chunk-SHTGQGAU.js.map → chunk-V2YZWYXT.js.map} +0 -0
  157. /package/dist/{chunk-BQ6FR32N.js.map → chunk-VD3QSMVY.js.map} +0 -0
  158. /package/dist/{chunk-VUNV25KB.js.map → config-UCAFCS5W.js.map} +0 -0
  159. /package/dist/{config-I4FMCJGZ.js.map → config-editor-OU6PUY66.js.map} +0 -0
  160. /package/dist/{config-editor-3IKBPZA7.js.map → config-registry-ZXAIJNYB.js.map} +0 -0
  161. /package/dist/{config-registry-CUMNXFGK.js.map → context-7MPU7RL5.js.map} +0 -0
  162. /package/dist/{context-XM6E22LM.js.map → core-plugins-R2EVZAJV.js.map} +0 -0
  163. /package/dist/{core-plugins-ROU4GPLT.js.map → daemon-DTA6KYYY.js.map} +0 -0
  164. /package/dist/{daemon-PXO5QPCR.js.map → doctor-D723IB2I.js.map} +0 -0
  165. /package/dist/{doctor-QZQAP46W.js.map → file-service-HHB3JQIO.js.map} +0 -0
  166. /package/dist/{file-service-EUODJAIT.js.map → log-YZ243M5G.js.map} +0 -0
  167. /package/dist/{log-LZ7FTRKG.js.map → menu-ALFN37IR.js.map} +0 -0
  168. /package/dist/{menu-YDQ2LWAR.js.map → notifications-MO23S7S3.js.map} +0 -0
  169. /package/dist/{notifications-D5BRDNSU.js.map → plugin-installer-5XHORMLS.js.map} +0 -0
  170. /package/dist/{plugin-registry-WB3DR67H.js.map → plugin-registry-6J3YSFHF.js.map} +0 -0
  171. /package/dist/{read-text-file-IRZM3QLM.js.map → read-text-file-DJBTITIB.js.map} +0 -0
  172. /package/dist/{registry-client-AVGRE4CF.js.map → registry-client-GTBWLXYU.js.map} +0 -0
  173. /package/dist/{security-YNRBW6S7.js.map → security-2BA265LN.js.map} +0 -0
  174. /package/dist/{settings-manager-MD2U4ZV2.js.map → settings-manager-B4UN2LAC.js.map} +0 -0
  175. /package/dist/{slack-37ZWBDUI.js.map → speech-GB7PHVQZ.js.map} +0 -0
  176. /package/dist/{speech-2GHQNRIO.js.map → telegram-UVIAXADE.js.map} +0 -0
  177. /package/dist/{telegram-2ZCCCZIY.js.map → tunnel-4WNFC7GO.js.map} +0 -0
  178. /package/dist/{tunnel-45HA72MB.js.map → validators-GITLOFXC.js.map} +0 -0
  179. /package/dist/{validators-WSTBNKRW.js.map → version-AXXV6IV2.js.map} +0 -0
@@ -3,13 +3,12 @@ import {
3
3
  ConfigSchema,
4
4
  PLUGINS_DIR,
5
5
  expandHome
6
- } from "./chunk-QVMEF6FB.js";
7
- import "./chunk-XMMAGAT4.js";
8
- import "./chunk-VUNV25KB.js";
6
+ } from "./chunk-JOMDPFQ2.js";
7
+ import "./chunk-R6KZYF7D.js";
9
8
  export {
10
9
  ConfigManager,
11
10
  ConfigSchema,
12
11
  PLUGINS_DIR,
13
12
  expandHome
14
13
  };
15
- //# sourceMappingURL=config-I4FMCJGZ.js.map
14
+ //# sourceMappingURL=config-UCAFCS5W.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ runConfigEditor
3
+ } from "./chunk-QBEQJFGL.js";
4
+ import "./chunk-2R5XM3ES.js";
5
+ import "./chunk-JOMDPFQ2.js";
6
+ import "./chunk-R6KZYF7D.js";
7
+ export {
8
+ runConfigEditor
9
+ };
10
+ //# sourceMappingURL=config-editor-OU6PUY66.js.map
@@ -5,8 +5,7 @@ import {
5
5
  getSafeFields,
6
6
  isHotReloadable,
7
7
  resolveOptions
8
- } from "./chunk-ODUM3D6X.js";
9
- import "./chunk-VUNV25KB.js";
8
+ } from "./chunk-5HKQCYOI.js";
10
9
  export {
11
10
  CONFIG_REGISTRY,
12
11
  getConfigValue,
@@ -15,4 +14,4 @@ export {
15
14
  isHotReloadable,
16
15
  resolveOptions
17
16
  };
18
- //# sourceMappingURL=config-registry-CUMNXFGK.js.map
17
+ //# sourceMappingURL=config-registry-ZXAIJNYB.js.map
@@ -3,8 +3,7 @@ import {
3
3
  } from "./chunk-ZHGPZBS4.js";
4
4
  import "./chunk-QWP76EBW.js";
5
5
  import "./chunk-APS6UEFU.js";
6
- import "./chunk-VUNV25KB.js";
7
6
  export {
8
7
  context_default as default
9
8
  };
10
- //# sourceMappingURL=context-XM6E22LM.js.map
9
+ //# sourceMappingURL=context-7MPU7RL5.js.map
@@ -0,0 +1,22 @@
1
+ import {
2
+ corePlugins
3
+ } from "./chunk-E2SLHZAC.js";
4
+ import "./chunk-5TCXYDLR.js";
5
+ import "./chunk-3EWTPOF7.js";
6
+ import "./chunk-4B6PCWQP.js";
7
+ import "./chunk-JUFN4XMB.js";
8
+ import "./chunk-5OCGO27U.js";
9
+ import "./chunk-3NAFXVQM.js";
10
+ import "./chunk-ZHGPZBS4.js";
11
+ import "./chunk-NT6FYV27.js";
12
+ import "./chunk-I53NEV3S.js";
13
+ import "./chunk-7ZCQF6QM.js";
14
+ import "./chunk-LGFWH3AE.js";
15
+ import "./chunk-IZ5UEZF7.js";
16
+ import "./chunk-QWP76EBW.js";
17
+ import "./chunk-APS6UEFU.js";
18
+ import "./chunk-2KT6TROD.js";
19
+ export {
20
+ corePlugins
21
+ };
22
+ //# sourceMappingURL=core-plugins-R2EVZAJV.js.map
@@ -10,10 +10,9 @@ import {
10
10
  startDaemon,
11
11
  stopDaemon,
12
12
  writePidFile
13
- } from "./chunk-BQ6FR32N.js";
14
- import "./chunk-QVMEF6FB.js";
15
- import "./chunk-XMMAGAT4.js";
16
- import "./chunk-VUNV25KB.js";
13
+ } from "./chunk-VD3QSMVY.js";
14
+ import "./chunk-JOMDPFQ2.js";
15
+ import "./chunk-R6KZYF7D.js";
17
16
  export {
18
17
  clearRunning,
19
18
  getPidPath,
@@ -27,4 +26,4 @@ export {
27
26
  stopDaemon,
28
27
  writePidFile
29
28
  };
30
- //# sourceMappingURL=daemon-PXO5QPCR.js.map
29
+ //# sourceMappingURL=daemon-DTA6KYYY.js.map
@@ -1,5 +1,3 @@
1
- import "./chunk-VUNV25KB.js";
2
-
3
1
  // src/core/plugin/dev-loader.ts
4
2
  import fs from "fs";
5
3
  import path from "path";
@@ -36,4 +34,4 @@ var DevPluginLoader = class {
36
34
  export {
37
35
  DevPluginLoader
38
36
  };
39
- //# sourceMappingURL=dev-loader-DRU3R7ZM.js.map
37
+ //# sourceMappingURL=dev-loader-7P3HZCIA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/plugin/dev-loader.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OpenACPPlugin } from './types.js'\n\nlet loadCounter = 0\n\nexport class DevPluginLoader {\n private pluginPath: string\n\n constructor(pluginPath: string) {\n this.pluginPath = path.resolve(pluginPath)\n }\n\n async load(): Promise<OpenACPPlugin> {\n const distIndex = path.join(this.pluginPath, 'dist', 'index.js')\n const srcIndex = path.join(this.pluginPath, 'src', 'index.ts')\n\n if (!fs.existsSync(distIndex) && !fs.existsSync(srcIndex)) {\n throw new Error(`Plugin not found at ${this.pluginPath}. Expected dist/index.js or src/index.ts`)\n }\n\n if (!fs.existsSync(distIndex)) {\n throw new Error(`Built plugin not found at ${distIndex}. Run 'npm run build' first.`)\n }\n\n // Node.js caches ESM imports by URL. Use a unique query string to bust\n // the cache on each reload while keeping the file in its original directory\n // so that relative imports (e.g., './adapter.js') still resolve correctly.\n const cacheBuster = `v=${Date.now()}-${++loadCounter}`\n const mod = await import(`file://${distIndex}?${cacheBuster}`)\n const plugin = mod.default as OpenACPPlugin\n\n if (!plugin || !plugin.name || !plugin.setup) {\n throw new Error(`Invalid plugin at ${distIndex}. Must export default OpenACPPlugin with name and setup().`)\n }\n\n return plugin\n }\n\n getPluginPath(): string {\n return this.pluginPath\n }\n\n getDistPath(): string {\n return path.join(this.pluginPath, 'dist')\n }\n}\n"],"mappings":";;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAGjB,IAAI,cAAc;AAEX,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,YAAoB;AAC9B,SAAK,aAAa,KAAK,QAAQ,UAAU;AAAA,EAC3C;AAAA,EAEA,MAAM,OAA+B;AACnC,UAAM,YAAY,KAAK,KAAK,KAAK,YAAY,QAAQ,UAAU;AAC/D,UAAM,WAAW,KAAK,KAAK,KAAK,YAAY,OAAO,UAAU;AAE7D,QAAI,CAAC,GAAG,WAAW,SAAS,KAAK,CAAC,GAAG,WAAW,QAAQ,GAAG;AACzD,YAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,0CAA0C;AAAA,IAClG;AAEA,QAAI,CAAC,GAAG,WAAW,SAAS,GAAG;AAC7B,YAAM,IAAI,MAAM,6BAA6B,SAAS,8BAA8B;AAAA,IACtF;AAKA,UAAM,cAAc,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,WAAW;AACpD,UAAM,MAAM,MAAM,OAAO,UAAU,SAAS,IAAI,WAAW;AAC3D,UAAM,SAAS,IAAI;AAEnB,QAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,OAAO,OAAO;AAC5C,YAAM,IAAI,MAAM,qBAAqB,SAAS,4DAA4D;AAAA,IAC5G;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,gBAAwB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAsB;AACpB,WAAO,KAAK,KAAK,KAAK,YAAY,MAAM;AAAA,EAC1C;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/core/plugin/dev-loader.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport type { OpenACPPlugin } from './types.js'\n\nlet loadCounter = 0\n\nexport class DevPluginLoader {\n private pluginPath: string\n\n constructor(pluginPath: string) {\n this.pluginPath = path.resolve(pluginPath)\n }\n\n async load(): Promise<OpenACPPlugin> {\n const distIndex = path.join(this.pluginPath, 'dist', 'index.js')\n const srcIndex = path.join(this.pluginPath, 'src', 'index.ts')\n\n if (!fs.existsSync(distIndex) && !fs.existsSync(srcIndex)) {\n throw new Error(`Plugin not found at ${this.pluginPath}. Expected dist/index.js or src/index.ts`)\n }\n\n if (!fs.existsSync(distIndex)) {\n throw new Error(`Built plugin not found at ${distIndex}. Run 'npm run build' first.`)\n }\n\n // Node.js caches ESM imports by URL. Use a unique query string to bust\n // the cache on each reload while keeping the file in its original directory\n // so that relative imports (e.g., './adapter.js') still resolve correctly.\n const cacheBuster = `v=${Date.now()}-${++loadCounter}`\n const mod = await import(`file://${distIndex}?${cacheBuster}`)\n const plugin = mod.default as OpenACPPlugin\n\n if (!plugin || !plugin.name || !plugin.setup) {\n throw new Error(`Invalid plugin at ${distIndex}. Must export default OpenACPPlugin with name and setup().`)\n }\n\n return plugin\n }\n\n getPluginPath(): string {\n return this.pluginPath\n }\n\n getDistPath(): string {\n return path.join(this.pluginPath, 'dist')\n }\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAGjB,IAAI,cAAc;AAEX,IAAM,kBAAN,MAAsB;AAAA,EACnB;AAAA,EAER,YAAY,YAAoB;AAC9B,SAAK,aAAa,KAAK,QAAQ,UAAU;AAAA,EAC3C;AAAA,EAEA,MAAM,OAA+B;AACnC,UAAM,YAAY,KAAK,KAAK,KAAK,YAAY,QAAQ,UAAU;AAC/D,UAAM,WAAW,KAAK,KAAK,KAAK,YAAY,OAAO,UAAU;AAE7D,QAAI,CAAC,GAAG,WAAW,SAAS,KAAK,CAAC,GAAG,WAAW,QAAQ,GAAG;AACzD,YAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,0CAA0C;AAAA,IAClG;AAEA,QAAI,CAAC,GAAG,WAAW,SAAS,GAAG;AAC7B,YAAM,IAAI,MAAM,6BAA6B,SAAS,8BAA8B;AAAA,IACtF;AAKA,UAAM,cAAc,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,WAAW;AACpD,UAAM,MAAM,MAAM,OAAO,UAAU,SAAS,IAAI,WAAW;AAC3D,UAAM,SAAS,IAAI;AAEnB,QAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,OAAO,OAAO;AAC5C,YAAM,IAAI,MAAM,qBAAqB,SAAS,4DAA4D;AAAA,IAC5G;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,gBAAwB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAsB;AACpB,WAAO,KAAK,KAAK,KAAK,YAAY,MAAM;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,9 @@
1
+ import {
2
+ DoctorEngine
3
+ } from "./chunk-43JVXFYP.js";
4
+ import "./chunk-JOMDPFQ2.js";
5
+ import "./chunk-R6KZYF7D.js";
6
+ export {
7
+ DoctorEngine
8
+ };
9
+ //# sourceMappingURL=doctor-D723IB2I.js.map
@@ -0,0 +1,8 @@
1
+ import {
2
+ file_service_default
3
+ } from "./chunk-3NAFXVQM.js";
4
+ import "./chunk-IZ5UEZF7.js";
5
+ export {
6
+ file_service_default as default
7
+ };
8
+ //# sourceMappingURL=file-service-HHB3JQIO.js.map
package/dist/index.d.ts CHANGED
@@ -2,7 +2,6 @@ import pino from 'pino';
2
2
  import * as zod from 'zod';
3
3
  import { z, ZodSchema } from 'zod';
4
4
  import { EventEmitter } from 'node:events';
5
- import { Readable, Writable } from 'node:stream';
6
5
  import { SetSessionConfigOptionResponse, ListSessionsResponse, LoadSessionResponse, ForkSessionResponse, PromptResponse as PromptResponse$1 } from '@agentclientprotocol/sdk';
7
6
  import * as http from 'node:http';
8
7
 
@@ -140,6 +139,8 @@ type AgentEvent = {
140
139
  title?: string;
141
140
  description?: string;
142
141
  size?: number;
142
+ } | {
143
+ type: "tts_strip";
143
144
  };
144
145
  interface PlanEntry {
145
146
  content: string;
@@ -510,42 +511,7 @@ declare const UsageSchema: z.ZodDefault<z.ZodObject<{
510
511
  }>>;
511
512
  type UsageConfig = z.infer<typeof UsageSchema>;
512
513
  declare const ConfigSchema: z.ZodObject<{
513
- channels: z.ZodObject<{
514
- slack: z.ZodOptional<z.ZodObject<{
515
- enabled: z.ZodDefault<z.ZodBoolean>;
516
- adapter: z.ZodOptional<z.ZodLiteral<"slack">>;
517
- botToken: z.ZodOptional<z.ZodString>;
518
- appToken: z.ZodOptional<z.ZodString>;
519
- signingSecret: z.ZodOptional<z.ZodString>;
520
- notificationChannelId: z.ZodOptional<z.ZodString>;
521
- allowedUserIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
522
- channelPrefix: z.ZodDefault<z.ZodString>;
523
- autoCreateSession: z.ZodDefault<z.ZodBoolean>;
524
- startupChannelId: z.ZodOptional<z.ZodString>;
525
- }, "strip", z.ZodTypeAny, {
526
- enabled: boolean;
527
- allowedUserIds: string[];
528
- channelPrefix: string;
529
- autoCreateSession: boolean;
530
- adapter?: "slack" | undefined;
531
- botToken?: string | undefined;
532
- appToken?: string | undefined;
533
- signingSecret?: string | undefined;
534
- notificationChannelId?: string | undefined;
535
- startupChannelId?: string | undefined;
536
- }, {
537
- enabled?: boolean | undefined;
538
- adapter?: "slack" | undefined;
539
- botToken?: string | undefined;
540
- appToken?: string | undefined;
541
- signingSecret?: string | undefined;
542
- notificationChannelId?: string | undefined;
543
- allowedUserIds?: string[] | undefined;
544
- channelPrefix?: string | undefined;
545
- autoCreateSession?: boolean | undefined;
546
- startupChannelId?: string | undefined;
547
- }>>;
548
- }, "strip", z.ZodObject<{
514
+ channels: z.ZodObject<{}, "strip", z.ZodObject<{
549
515
  enabled: z.ZodDefault<z.ZodBoolean>;
550
516
  adapter: z.ZodOptional<z.ZodString>;
551
517
  displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
@@ -557,42 +523,7 @@ declare const ConfigSchema: z.ZodObject<{
557
523
  enabled: z.ZodDefault<z.ZodBoolean>;
558
524
  adapter: z.ZodOptional<z.ZodString>;
559
525
  displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
560
- }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
561
- slack: z.ZodOptional<z.ZodObject<{
562
- enabled: z.ZodDefault<z.ZodBoolean>;
563
- adapter: z.ZodOptional<z.ZodLiteral<"slack">>;
564
- botToken: z.ZodOptional<z.ZodString>;
565
- appToken: z.ZodOptional<z.ZodString>;
566
- signingSecret: z.ZodOptional<z.ZodString>;
567
- notificationChannelId: z.ZodOptional<z.ZodString>;
568
- allowedUserIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
569
- channelPrefix: z.ZodDefault<z.ZodString>;
570
- autoCreateSession: z.ZodDefault<z.ZodBoolean>;
571
- startupChannelId: z.ZodOptional<z.ZodString>;
572
- }, "strip", z.ZodTypeAny, {
573
- enabled: boolean;
574
- allowedUserIds: string[];
575
- channelPrefix: string;
576
- autoCreateSession: boolean;
577
- adapter?: "slack" | undefined;
578
- botToken?: string | undefined;
579
- appToken?: string | undefined;
580
- signingSecret?: string | undefined;
581
- notificationChannelId?: string | undefined;
582
- startupChannelId?: string | undefined;
583
- }, {
584
- enabled?: boolean | undefined;
585
- adapter?: "slack" | undefined;
586
- botToken?: string | undefined;
587
- appToken?: string | undefined;
588
- signingSecret?: string | undefined;
589
- notificationChannelId?: string | undefined;
590
- allowedUserIds?: string[] | undefined;
591
- channelPrefix?: string | undefined;
592
- autoCreateSession?: boolean | undefined;
593
- startupChannelId?: string | undefined;
594
- }>>;
595
- }, z.ZodObject<{
526
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{}, z.ZodObject<{
596
527
  enabled: z.ZodDefault<z.ZodBoolean>;
597
528
  adapter: z.ZodOptional<z.ZodString>;
598
529
  displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
@@ -604,42 +535,7 @@ declare const ConfigSchema: z.ZodObject<{
604
535
  enabled: z.ZodDefault<z.ZodBoolean>;
605
536
  adapter: z.ZodOptional<z.ZodString>;
606
537
  displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
607
- }, z.ZodTypeAny, "passthrough">>, "strip">, z.objectInputType<{
608
- slack: z.ZodOptional<z.ZodObject<{
609
- enabled: z.ZodDefault<z.ZodBoolean>;
610
- adapter: z.ZodOptional<z.ZodLiteral<"slack">>;
611
- botToken: z.ZodOptional<z.ZodString>;
612
- appToken: z.ZodOptional<z.ZodString>;
613
- signingSecret: z.ZodOptional<z.ZodString>;
614
- notificationChannelId: z.ZodOptional<z.ZodString>;
615
- allowedUserIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
616
- channelPrefix: z.ZodDefault<z.ZodString>;
617
- autoCreateSession: z.ZodDefault<z.ZodBoolean>;
618
- startupChannelId: z.ZodOptional<z.ZodString>;
619
- }, "strip", z.ZodTypeAny, {
620
- enabled: boolean;
621
- allowedUserIds: string[];
622
- channelPrefix: string;
623
- autoCreateSession: boolean;
624
- adapter?: "slack" | undefined;
625
- botToken?: string | undefined;
626
- appToken?: string | undefined;
627
- signingSecret?: string | undefined;
628
- notificationChannelId?: string | undefined;
629
- startupChannelId?: string | undefined;
630
- }, {
631
- enabled?: boolean | undefined;
632
- adapter?: "slack" | undefined;
633
- botToken?: string | undefined;
634
- appToken?: string | undefined;
635
- signingSecret?: string | undefined;
636
- notificationChannelId?: string | undefined;
637
- allowedUserIds?: string[] | undefined;
638
- channelPrefix?: string | undefined;
639
- autoCreateSession?: boolean | undefined;
640
- startupChannelId?: string | undefined;
641
- }>>;
642
- }, z.ZodObject<{
538
+ }, z.ZodTypeAny, "passthrough">>, "strip">, z.objectInputType<{}, z.ZodObject<{
643
539
  enabled: z.ZodDefault<z.ZodBoolean>;
644
540
  adapter: z.ZodOptional<z.ZodString>;
645
541
  displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
@@ -901,20 +797,7 @@ declare const ConfigSchema: z.ZodObject<{
901
797
  token?: string | undefined;
902
798
  };
903
799
  };
904
- channels: {
905
- slack?: {
906
- enabled: boolean;
907
- allowedUserIds: string[];
908
- channelPrefix: string;
909
- autoCreateSession: boolean;
910
- adapter?: "slack" | undefined;
911
- botToken?: string | undefined;
912
- appToken?: string | undefined;
913
- signingSecret?: string | undefined;
914
- notificationChannelId?: string | undefined;
915
- startupChannelId?: string | undefined;
916
- } | undefined;
917
- } & {
800
+ channels: {} & {
918
801
  [k: string]: z.objectOutputType<{
919
802
  enabled: z.ZodDefault<z.ZodBoolean>;
920
803
  adapter: z.ZodOptional<z.ZodString>;
@@ -970,20 +853,7 @@ declare const ConfigSchema: z.ZodObject<{
970
853
  };
971
854
  };
972
855
  }, {
973
- channels: {
974
- slack?: {
975
- enabled?: boolean | undefined;
976
- adapter?: "slack" | undefined;
977
- botToken?: string | undefined;
978
- appToken?: string | undefined;
979
- signingSecret?: string | undefined;
980
- notificationChannelId?: string | undefined;
981
- allowedUserIds?: string[] | undefined;
982
- channelPrefix?: string | undefined;
983
- autoCreateSession?: boolean | undefined;
984
- startupChannelId?: string | undefined;
985
- } | undefined;
986
- } & {
856
+ channels: {} & {
987
857
  [k: string]: z.objectInputType<{
988
858
  enabled: z.ZodDefault<z.ZodBoolean>;
989
859
  adapter: z.ZodOptional<z.ZodString>;
@@ -1121,7 +991,8 @@ interface IChannelAdapter {
1121
991
  createSessionThread(sessionId: string, name: string): Promise<string>;
1122
992
  renameSessionThread(sessionId: string, newName: string): Promise<void>;
1123
993
  deleteSessionThread?(sessionId: string): Promise<void>;
1124
- archiveSessionTopic?(sessionId: string): Promise<void>;
994
+ archiveSessionTopic?(sessionId: string): Promise<string>;
995
+ stripTTSBlock?(sessionId: string): Promise<void>;
1125
996
  sendSkillCommands?(sessionId: string, commands: AgentCommand[]): Promise<void>;
1126
997
  cleanupSkillCommands?(sessionId: string): Promise<void>;
1127
998
  }
@@ -1146,11 +1017,11 @@ declare abstract class ChannelAdapter<TCore = unknown> implements IChannelAdapte
1146
1017
  deleteSessionThread(_sessionId: string): Promise<void>;
1147
1018
  sendSkillCommands(_sessionId: string, _commands: AgentCommand[]): Promise<void>;
1148
1019
  cleanupSkillCommands(_sessionId: string): Promise<void>;
1149
- archiveSessionTopic(_sessionId: string): Promise<void>;
1020
+ archiveSessionTopic(_sessionId: string): Promise<string>;
1150
1021
  }
1151
1022
 
1152
- declare function nodeToWebWritable(nodeStream: Writable): WritableStream<Uint8Array>;
1153
- declare function nodeToWebReadable(nodeStream: Readable): ReadableStream<Uint8Array>;
1023
+ declare function nodeToWebWritable(nodeStream: NodeJS.WritableStream): WritableStream<Uint8Array>;
1024
+ declare function nodeToWebReadable(nodeStream: NodeJS.ReadableStream): ReadableStream<Uint8Array>;
1154
1025
 
1155
1026
  declare class StderrCapture {
1156
1027
  private maxLines;
@@ -1235,6 +1106,7 @@ declare class AgentInstance extends TypedEmitter<AgentInstanceEvents> {
1235
1106
  private stderrCapture;
1236
1107
  private terminalManager;
1237
1108
  private static mcpManager;
1109
+ private _destroying;
1238
1110
  sessionId: string;
1239
1111
  agentName: string;
1240
1112
  promptCapabilities?: {
@@ -1394,12 +1266,13 @@ declare class SpeechService {
1394
1266
  setProviderFactory(factory: ProviderFactory): void;
1395
1267
  registerSTTProvider(name: string, provider: STTProvider$1): void;
1396
1268
  registerTTSProvider(name: string, provider: TTSProvider$1): void;
1269
+ unregisterTTSProvider(name: string): void;
1397
1270
  isSTTAvailable(): boolean;
1398
1271
  isTTSAvailable(): boolean;
1399
1272
  transcribe(audioBuffer: Buffer, mimeType: string, options?: STTOptions): Promise<STTResult>;
1400
1273
  synthesize(text: string, options?: TTSOptions): Promise<TTSResult>;
1401
1274
  updateConfig(config: SpeechServiceConfig): void;
1402
- /** Re-create all providers from current config using the registered factory */
1275
+ /** Re-create factory-managed providers from config. Preserves externally-registered providers (e.g. from plugins). */
1403
1276
  refreshProviders(newConfig: SpeechServiceConfig): void;
1404
1277
  }
1405
1278
 
@@ -2043,6 +1916,15 @@ declare class SessionManager {
2043
1916
  statuses?: string[];
2044
1917
  }): SessionRecord[];
2045
1918
  removeRecord(sessionId: string): Promise<void>;
1919
+ /**
1920
+ * Graceful shutdown: persist session state without killing agent subprocesses.
1921
+ * Agent processes will exit naturally when the parent process terminates.
1922
+ */
1923
+ shutdownAll(): Promise<void>;
1924
+ /**
1925
+ * Forcefully destroy all sessions (kill agent subprocesses).
1926
+ * Use only when sessions must be fully torn down (e.g. archive).
1927
+ */
2046
1928
  destroyAll(): Promise<void>;
2047
1929
  }
2048
1930
 
@@ -2271,6 +2153,7 @@ declare class LifecycleManager {
2271
2153
  private _failed;
2272
2154
  get loadedPlugins(): string[];
2273
2155
  get failedPlugins(): string[];
2156
+ get registry(): PluginRegistry | undefined;
2274
2157
  constructor(opts?: LifecycleManagerOpts);
2275
2158
  private getPluginLogger;
2276
2159
  boot(plugins: OpenACPPlugin[]): Promise<void>;
@@ -2348,6 +2231,7 @@ declare class OpenACPCore {
2348
2231
  eventBus: EventBus;
2349
2232
  sessionFactory: SessionFactory;
2350
2233
  readonly lifecycleManager: LifecycleManager;
2234
+ private getService;
2351
2235
  get securityGuard(): SecurityGuard;
2352
2236
  get notificationManager(): NotificationManager;
2353
2237
  get fileService(): FileServiceInterface;
@@ -2361,6 +2245,7 @@ declare class OpenACPCore {
2361
2245
  stop(): Promise<void>;
2362
2246
  archiveSession(sessionId: string): Promise<{
2363
2247
  ok: true;
2248
+ newThreadId: string;
2364
2249
  } | {
2365
2250
  ok: false;
2366
2251
  error: string;
@@ -2374,6 +2259,7 @@ declare class OpenACPCore {
2374
2259
  existingSessionId?: string;
2375
2260
  createThread?: boolean;
2376
2261
  initialName?: string;
2262
+ threadId?: string;
2377
2263
  }): Promise<Session>;
2378
2264
  handleNewSession(channelId: string, agentName?: string, workspacePath?: string, options?: {
2379
2265
  createThread?: boolean;
@@ -2421,7 +2307,7 @@ interface RegisteredCommand extends CommandDef {
2421
2307
  * - System commands always own the short name.
2422
2308
  * - Among plugins, the first to register wins the short name.
2423
2309
  * - Every plugin command also gets a qualified name: `scope:name`.
2424
- * - Adapter plugins (@openacp/telegram, @openacp/discord, @openacp/slack)
2310
+ * - Adapter plugins (@openacp/telegram, @openacp/discord)
2425
2311
  * registering a command that already exists → stored as an override
2426
2312
  * keyed by `channelId:commandName`, used when channelId matches.
2427
2313
  */
@@ -2439,7 +2325,7 @@ declare class CommandRegistry {
2439
2325
  register(def: CommandDef, pluginName?: string): void;
2440
2326
  /** Retrieve a command by name (short or qualified). */
2441
2327
  get(name: string): RegisteredCommand | undefined;
2442
- /** Remove a command by short name. Also removes its qualified name entry. */
2328
+ /** Remove a command by name (short or qualified). Also removes its qualified name entry. */
2443
2329
  unregister(name: string): void;
2444
2330
  /** Remove all commands registered by a given plugin. */
2445
2331
  unregisterByPlugin(pluginName: string): void;
@@ -2546,6 +2432,11 @@ declare function isAutoStartInstalled(): boolean;
2546
2432
  declare class FileService {
2547
2433
  private baseDir;
2548
2434
  constructor(baseDir: string);
2435
+ /**
2436
+ * Remove session file directories older than maxAgeDays.
2437
+ * Called on startup to prevent unbounded disk growth.
2438
+ */
2439
+ cleanupOldFiles(maxAgeDays: number): Promise<number>;
2549
2440
  saveFile(sessionId: string, fileName: string, data: Buffer, mimeType: string): Promise<Attachment>;
2550
2441
  resolveFile(filePath: string): Promise<Attachment | null>;
2551
2442
  /**
@@ -2705,7 +2596,7 @@ interface ToolUpdateMeta extends ToolCallMeta {
2705
2596
 
2706
2597
  interface RenderedMessage<TComponents = unknown> {
2707
2598
  body: string;
2708
- format: 'html' | 'markdown' | 'plain' | 'structured';
2599
+ format: "html" | "markdown" | "plain" | "structured";
2709
2600
  attachments?: RenderedAttachment[];
2710
2601
  components?: TComponents;
2711
2602
  }
@@ -2718,7 +2609,7 @@ interface RenderedAction {
2718
2609
  isAllow?: boolean;
2719
2610
  }
2720
2611
  interface RenderedAttachment {
2721
- type: 'file' | 'image' | 'audio';
2612
+ type: "file" | "image" | "audio";
2722
2613
  data: Buffer | string;
2723
2614
  mimeType?: string;
2724
2615
  filename?: string;
@@ -2727,7 +2618,7 @@ interface IRenderer {
2727
2618
  renderText(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2728
2619
  renderToolCall(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2729
2620
  renderToolUpdate(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2730
- renderPlan(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2621
+ renderPlan(content: OutgoingMessage): RenderedMessage;
2731
2622
  renderUsage(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2732
2623
  renderPermission(request: PermissionRequest): RenderedPermission;
2733
2624
  renderError(content: OutgoingMessage): RenderedMessage;
@@ -2749,7 +2640,7 @@ declare class BaseRenderer implements IRenderer {
2749
2640
  renderText(content: OutgoingMessage): RenderedMessage;
2750
2641
  renderToolCall(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2751
2642
  renderToolUpdate(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2752
- renderPlan(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2643
+ renderPlan(content: OutgoingMessage): RenderedMessage;
2753
2644
  renderUsage(content: OutgoingMessage, verbosity: DisplayVerbosity): RenderedMessage;
2754
2645
  renderPermission(request: PermissionRequest): RenderedPermission;
2755
2646
  renderError(content: OutgoingMessage): RenderedMessage;
@@ -2970,7 +2861,6 @@ declare class TelegramAdapter extends MessagingAdapter {
2970
2861
  private assistantTopicId;
2971
2862
  private sendQueue;
2972
2863
  private _sessionThreadIds;
2973
- private toolTracker;
2974
2864
  private draftManager;
2975
2865
  private skillManager;
2976
2866
  private fileService;
@@ -3007,7 +2897,8 @@ declare class TelegramAdapter extends MessagingAdapter {
3007
2897
  private downloadTelegramFile;
3008
2898
  private handleIncomingMedia;
3009
2899
  cleanupSkillCommands(sessionId: string): Promise<void>;
3010
- archiveSessionTopic(sessionId: string): Promise<void>;
2900
+ stripTTSBlock(sessionId: string): Promise<void>;
2901
+ archiveSessionTopic(sessionId: string): Promise<string>;
3011
2902
  }
3012
2903
 
3013
2904
  export { ActivityTracker, type AdapterCapabilities, type AgentCapabilities, AgentCatalog, type AgentCommand, type AgentDefinition, type AgentDistribution, type AgentEvent, AgentInstance, type AgentListItem, AgentManager, AgentStore, type ApiConfig, ApiServer, type Attachment, type AuthMethod, type AuthenticateRequest, type AvailabilityResult, BaseRenderer, type BridgeDeps, CONFIG_REGISTRY, ChannelAdapter, type ChannelConfig, type CleanupResult, type CommandArgs, type CommandDef, CommandRegistry, type CommandResponse, type Config, type ConfigFieldDef, ConfigManager$1 as ConfigManager, type ConfigOption, type ConfigSelectChoice, type ConfigSelectGroup, type ContentBlock, ContextManager, type ContextOptions, type ContextProvider, type ContextQuery, type ContextResult, type ContextService, type SessionInfo as ContextSessionInfo, type DeleteTopicResult, type DisplayVerbosity, DoctorEngine, type DoctorReport, DraftManager, EntireProvider, EventBus, type EventBusEvents, FileService, type FileServiceInterface, GroqSTT, type IChannelAdapter, type IRenderer, type IncomingMessage, type InstallContext, type InstallProgress, type InstallResult, type InstalledAgent, KIND_ICONS, type ListItem, type Logger$1 as Logger, type LoggingConfig, type McpServerConfig, type MenuOption, MessageTransformer, MessagingAdapter, type MessagingAdapterConfig, type MigrateContext, type ModelInfo, type NewSessionResponse, NotificationManager, type NotificationMessage, type NotificationService, OpenACPCore, type OpenACPPlugin, type OutgoingMessage, PLUGINS_DIR, PRODUCT_GUIDE, type PendingFix, PermissionGate, type PermissionOption, type PermissionRequest, type PlanEntry, type PluginContext, type PluginPermission, type PluginStorage, PromptQueue, type PromptResponse, type RegistryAgent, type RegistryBinaryTarget, type RegistryDistribution, type RenderedMessage, SSEManager, STATUS_ICONS, type STTOptions, type STTProvider$1 as STTProvider, type STTResult, SecurityGuard, type SecurityService, SendQueue, Session, SessionBridge, type SessionCreateParams, type SessionEvents, SessionFactory, type SessionListItem, type SessionListResponse, type SessionListResult, SessionManager, type SessionMode, type SessionModeState, type SessionModelState, type SessionRecord, type SessionStatus, type SetConfigOptionValue, type SettingsAPI, type SideEffectDeps, type SpeechProviderConfig, SpeechService, type SpeechServiceConfig, type SpeechServiceInterface, StaticServer, StderrCapture, type StopReason, StreamAdapter, type TTSOptions, type TTSProvider$1 as TTSProvider, type TTSResult, TelegramAdapter, type TelegramPlatformData, type TerminalIO, type ToolCallMeta, ToolCallTracker, type ToolUpdateMeta, type TopicInfo, TopicManager, type TunnelServiceInterface, TypedEmitter, type UsageConfig, type UsageRecord, type UsageRecordEvent, type UsageService, type ViewerLinks, cleanupOldSessionLogs, createChildLogger, createSessionLogger, expandHome, extractContentText, formatTokens, formatToolSummary, formatToolTitle, getConfigValue, getFieldDef, getPidPath, getSafeFields, getStatus, initLogger, installAutoStart, isAutoStartInstalled, isAutoStartSupported, isHotReloadable, log, nodeToWebReadable, nodeToWebWritable, progressBar, resolveOptions, resolveToolIcon, runConfigEditor, setLogLevel, shutdownLogger, splitMessage, startDaemon, stopDaemon, stripCodeFences, truncateContent, uninstallAutoStart };