@openacp/cli 2026.327.5 → 2026.330.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 (188) hide show
  1. package/README.md +13 -13
  2. package/dist/adapter-4U6MC5ZS.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-5VNYFWJE.js +7 -0
  9. package/dist/api-server-JLBDKCU4.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-A6Y4GZM3.js → chunk-566W6INH.js} +2 -2
  18. package/dist/{chunk-ODUM3D6X.js → chunk-5HKQCYOI.js} +1 -39
  19. package/dist/chunk-5HKQCYOI.js.map +1 -0
  20. package/dist/{plugin-installer-QVJP6VKV.js → chunk-5WGVYX3C.js} +18 -5
  21. package/dist/chunk-5WGVYX3C.js.map +1 -0
  22. package/dist/{chunk-XWDW3XBE.js → chunk-5ZNBNIK3.js} +1331 -237
  23. package/dist/chunk-5ZNBNIK3.js.map +1 -0
  24. package/dist/{chunk-XIBG7LSL.js → chunk-7RKPIM3E.js} +482 -175
  25. package/dist/chunk-7RKPIM3E.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-2YCW3QDV.js → chunk-BTJHGSLM.js} +8 -7
  29. package/dist/chunk-BTJHGSLM.js.map +1 -0
  30. package/dist/{chunk-P2G275VD.js → chunk-CFUJGWOP.js} +3 -3
  31. package/dist/{chunk-RBYBSSGO.js → chunk-FCTC7KDT.js} +2 -2
  32. package/dist/{chunk-QAQDGPB4.js → chunk-GEOXPGCO.js} +3 -3
  33. package/dist/{chunk-BLQUXO7S.js → chunk-IZ5UEZF7.js} +27 -2
  34. package/dist/chunk-IZ5UEZF7.js.map +1 -0
  35. package/dist/{chunk-4GMLGCF2.js → chunk-KDU3ZEWT.js} +2 -2
  36. package/dist/{chunk-QWP76EBW.js → chunk-MITTQMGZ.js} +16 -9
  37. package/dist/chunk-MITTQMGZ.js.map +1 -0
  38. package/dist/{chunk-HRKAXFWR.js → chunk-MPGEHTGE.js} +9 -9
  39. package/dist/{chunk-KMMEFXIE.js → chunk-PA6MNBG4.js} +41 -9
  40. package/dist/chunk-PA6MNBG4.js.map +1 -0
  41. package/dist/{chunk-BQ6FR32N.js → chunk-QWVHCTCA.js} +2 -2
  42. package/dist/{chunk-XMMAGAT4.js → chunk-R6KZYF7D.js} +8 -1
  43. package/dist/{chunk-XMMAGAT4.js.map → chunk-R6KZYF7D.js.map} +1 -1
  44. package/dist/{chunk-AD3X6DGK.js → chunk-TMVTSWVH.js} +75 -13
  45. package/dist/chunk-TMVTSWVH.js.map +1 -0
  46. package/dist/chunk-UWH7KIAA.js +701 -0
  47. package/dist/chunk-UWH7KIAA.js.map +1 -0
  48. package/dist/{chunk-SHTGQGAU.js → chunk-V2YZWYXT.js} +3 -3
  49. package/dist/{chunk-QVMEF6FB.js → chunk-W4LK6WJP.js} +38 -27
  50. package/dist/chunk-W4LK6WJP.js.map +1 -0
  51. package/dist/{chunk-S3ZGPPXY.js → chunk-YIGBJFJL.js} +9 -13
  52. package/dist/{chunk-S3ZGPPXY.js.map → chunk-YIGBJFJL.js.map} +1 -1
  53. package/dist/cli.js +133 -132
  54. package/dist/cli.js.map +1 -1
  55. package/dist/config-KN6NKKPF.js +20 -0
  56. package/dist/config-editor-76RVZS4B.js +10 -0
  57. package/dist/{config-registry-CUMNXFGK.js → config-registry-ZXAIJNYB.js} +2 -3
  58. package/dist/context-NXXW62NJ.js +9 -0
  59. package/dist/core-plugins-OCHKGCIZ.js +22 -0
  60. package/dist/{daemon-PXO5QPCR.js → daemon-XFEMMJSZ.js} +4 -5
  61. package/dist/{dev-loader-DRU3R7ZM.js → dev-loader-7P3HZCIA.js} +1 -3
  62. package/dist/{dev-loader-DRU3R7ZM.js.map → dev-loader-7P3HZCIA.js.map} +1 -1
  63. package/dist/doctor-AV6AUO22.js +9 -0
  64. package/dist/file-service-HHB3JQIO.js +8 -0
  65. package/dist/index.d.ts +141 -187
  66. package/dist/index.js +33 -29
  67. package/dist/index.js.map +1 -1
  68. package/dist/{install-cloudflared-AN24L4DP.js → install-cloudflared-JRJ4BSOM.js} +3 -4
  69. package/dist/{install-cloudflared-AN24L4DP.js.map → install-cloudflared-JRJ4BSOM.js.map} +1 -1
  70. package/dist/{install-context-XPWTFT3J.js → install-context-EHYV5WRY.js} +2 -3
  71. package/dist/{install-context-XPWTFT3J.js.map → install-context-EHYV5WRY.js.map} +1 -1
  72. package/dist/{install-jq-CRVDJGF3.js → install-jq-ISTGT263.js} +3 -4
  73. package/dist/{install-jq-CRVDJGF3.js.map → install-jq-ISTGT263.js.map} +1 -1
  74. package/dist/{integrate-G6CVXTGT.js → integrate-JIEZYDOR.js} +1 -2
  75. package/dist/{integrate-G6CVXTGT.js.map → integrate-JIEZYDOR.js.map} +1 -1
  76. package/dist/{log-LZ7FTRKG.js → log-YZ243M5G.js} +4 -3
  77. package/dist/{main-3GF3EQTE.js → main-L2M4NTJY.js} +135 -50
  78. package/dist/main-L2M4NTJY.js.map +1 -0
  79. package/dist/{menu-YDQ2LWAR.js → menu-ALFN37IR.js} +1 -2
  80. package/dist/notifications-MO23S7S3.js +8 -0
  81. package/dist/{plugin-create-5HQRF2ID.js → plugin-create-EHL76ZZG.js} +1 -2
  82. package/dist/{plugin-create-5HQRF2ID.js.map → plugin-create-EHL76ZZG.js.map} +1 -1
  83. package/dist/plugin-installer-VSTYZSXC.js +9 -0
  84. package/dist/{plugin-registry-WB3DR67H.js → plugin-registry-6J3YSFHF.js} +1 -2
  85. package/dist/{plugin-search-HQ4WQKOF.js → plugin-search-MGKAL5JM.js} +1 -2
  86. package/dist/{plugin-search-HQ4WQKOF.js.map → plugin-search-MGKAL5JM.js.map} +1 -1
  87. package/dist/{post-upgrade-3ADZRMYJ.js → post-upgrade-Y26S2ZQ7.js} +6 -7
  88. package/dist/{post-upgrade-3ADZRMYJ.js.map → post-upgrade-Y26S2ZQ7.js.map} +1 -1
  89. package/dist/{read-text-file-IRZM3QLM.js → read-text-file-DJBTITIB.js} +1 -2
  90. package/dist/{registry-client-AVGRE4CF.js → registry-client-GTBWLXYU.js} +1 -2
  91. package/dist/{security-YNRBW6S7.js → security-2BA265LN.js} +1 -2
  92. package/dist/{settings-manager-MD2U4ZV2.js → settings-manager-B4UN2LAC.js} +1 -2
  93. package/dist/{setup-A7VPW46C.js → setup-E6BNEYCS.js} +109 -83
  94. package/dist/setup-E6BNEYCS.js.map +1 -0
  95. package/dist/speech-SG62JYIF.js +9 -0
  96. package/dist/{suggest-7D6B542M.js → suggest-RST5VOHB.js} +1 -3
  97. package/dist/{suggest-7D6B542M.js.map → suggest-RST5VOHB.js.map} +1 -1
  98. package/dist/telegram-EAVRDNFU.js +7 -0
  99. package/dist/tunnel-HWJ27WDH.js +7 -0
  100. package/dist/{tunnel-service-QJPUYEKU.js → tunnel-service-ZMO4THKE.js} +90 -11
  101. package/dist/tunnel-service-ZMO4THKE.js.map +1 -0
  102. package/dist/{validators-WSTBNKRW.js → validators-GITLOFXC.js} +1 -2
  103. package/dist/{version-NQZBM5M7.js → version-AXXV6IV2.js} +1 -2
  104. package/package.json +1 -3
  105. package/dist/adapter-JQFQ3JAO.js +0 -15
  106. package/dist/adapter-UORRGHNH.js +0 -1030
  107. package/dist/adapter-UORRGHNH.js.map +0 -1
  108. package/dist/agent-catalog-YHBFERYO.js +0 -11
  109. package/dist/agent-store-VSHNY5GT.js +0 -9
  110. package/dist/api-server-7G3ZUZRM.js +0 -8
  111. package/dist/api-server-CAYNPUF2.js +0 -11
  112. package/dist/chunk-2YCW3QDV.js.map +0 -1
  113. package/dist/chunk-32LVIEPW.js +0 -477
  114. package/dist/chunk-32LVIEPW.js.map +0 -1
  115. package/dist/chunk-AD3X6DGK.js.map +0 -1
  116. package/dist/chunk-BLQUXO7S.js.map +0 -1
  117. package/dist/chunk-KMMEFXIE.js.map +0 -1
  118. package/dist/chunk-ODUM3D6X.js.map +0 -1
  119. package/dist/chunk-QVMEF6FB.js.map +0 -1
  120. package/dist/chunk-QWP76EBW.js.map +0 -1
  121. package/dist/chunk-VUNV25KB.js +0 -16
  122. package/dist/chunk-WIIZNPCR.js.map +0 -1
  123. package/dist/chunk-WXVT3AOY.js.map +0 -1
  124. package/dist/chunk-XIBG7LSL.js.map +0 -1
  125. package/dist/chunk-XWDW3XBE.js.map +0 -1
  126. package/dist/chunk-ZHGPZBS4.js +0 -49
  127. package/dist/chunk-ZHGPZBS4.js.map +0 -1
  128. package/dist/chunk-ZNSO2QVC.js +0 -124
  129. package/dist/chunk-ZNSO2QVC.js.map +0 -1
  130. package/dist/config-I4FMCJGZ.js +0 -15
  131. package/dist/config-editor-7PKW42GZ.js +0 -11
  132. package/dist/context-XM6E22LM.js +0 -10
  133. package/dist/core-plugins-Y5US6RED.js +0 -23
  134. package/dist/dist-UHQK5CXN.js +0 -21151
  135. package/dist/dist-UHQK5CXN.js.map +0 -1
  136. package/dist/doctor-QZQAP46W.js +0 -10
  137. package/dist/file-service-EUODJAIT.js +0 -9
  138. package/dist/main-3GF3EQTE.js.map +0 -1
  139. package/dist/notifications-D5BRDNSU.js +0 -9
  140. package/dist/plugin-installer-QVJP6VKV.js.map +0 -1
  141. package/dist/setup-A7VPW46C.js.map +0 -1
  142. package/dist/slack-2XNWBOWH.js +0 -8
  143. package/dist/speech-2GHQNRIO.js +0 -9
  144. package/dist/telegram-E65IWFBW.js +0 -8
  145. package/dist/tunnel-45HA72MB.js +0 -8
  146. package/dist/tunnel-service-QJPUYEKU.js.map +0 -1
  147. package/dist/version-NQZBM5M7.js.map +0 -1
  148. /package/dist/{adapter-JQFQ3JAO.js.map → adapter-4U6MC5ZS.js.map} +0 -0
  149. /package/dist/{agent-catalog-YHBFERYO.js.map → agent-catalog-SZQQERV7.js.map} +0 -0
  150. /package/dist/{agent-dependencies-WS7Z2DFW.js.map → agent-dependencies-ED2ZTUHG.js.map} +0 -0
  151. /package/dist/{agent-registry-5LZT7CUB.js.map → agent-registry-YOGP656W.js.map} +0 -0
  152. /package/dist/{agent-store-VSHNY5GT.js.map → agent-store-5UHZH2XI.js.map} +0 -0
  153. /package/dist/{api-client-AQPNKXI2.js.map → api-client-XTLRRFPX.js.map} +0 -0
  154. /package/dist/{api-server-7G3ZUZRM.js.map → api-server-5VNYFWJE.js.map} +0 -0
  155. /package/dist/{api-server-CAYNPUF2.js.map → api-server-JLBDKCU4.js.map} +0 -0
  156. /package/dist/{autostart-6JS565RY.js.map → autostart-CUPZMKKC.js.map} +0 -0
  157. /package/dist/{chunk-PPSMUECX.js.map → chunk-2R5XM3ES.js.map} +0 -0
  158. /package/dist/{chunk-SNPYTMPR.js.map → chunk-3EWTPOF7.js.map} +0 -0
  159. /package/dist/{chunk-A6Y4GZM3.js.map → chunk-566W6INH.js.map} +0 -0
  160. /package/dist/{chunk-P2G275VD.js.map → chunk-CFUJGWOP.js.map} +0 -0
  161. /package/dist/{chunk-RBYBSSGO.js.map → chunk-FCTC7KDT.js.map} +0 -0
  162. /package/dist/{chunk-QAQDGPB4.js.map → chunk-GEOXPGCO.js.map} +0 -0
  163. /package/dist/{chunk-4GMLGCF2.js.map → chunk-KDU3ZEWT.js.map} +0 -0
  164. /package/dist/{chunk-HRKAXFWR.js.map → chunk-MPGEHTGE.js.map} +0 -0
  165. /package/dist/{chunk-BQ6FR32N.js.map → chunk-QWVHCTCA.js.map} +0 -0
  166. /package/dist/{chunk-SHTGQGAU.js.map → chunk-V2YZWYXT.js.map} +0 -0
  167. /package/dist/{chunk-VUNV25KB.js.map → config-KN6NKKPF.js.map} +0 -0
  168. /package/dist/{config-I4FMCJGZ.js.map → config-editor-76RVZS4B.js.map} +0 -0
  169. /package/dist/{config-editor-7PKW42GZ.js.map → config-registry-ZXAIJNYB.js.map} +0 -0
  170. /package/dist/{config-registry-CUMNXFGK.js.map → context-NXXW62NJ.js.map} +0 -0
  171. /package/dist/{context-XM6E22LM.js.map → core-plugins-OCHKGCIZ.js.map} +0 -0
  172. /package/dist/{core-plugins-Y5US6RED.js.map → daemon-XFEMMJSZ.js.map} +0 -0
  173. /package/dist/{daemon-PXO5QPCR.js.map → doctor-AV6AUO22.js.map} +0 -0
  174. /package/dist/{doctor-QZQAP46W.js.map → file-service-HHB3JQIO.js.map} +0 -0
  175. /package/dist/{file-service-EUODJAIT.js.map → log-YZ243M5G.js.map} +0 -0
  176. /package/dist/{log-LZ7FTRKG.js.map → menu-ALFN37IR.js.map} +0 -0
  177. /package/dist/{menu-YDQ2LWAR.js.map → notifications-MO23S7S3.js.map} +0 -0
  178. /package/dist/{notifications-D5BRDNSU.js.map → plugin-installer-VSTYZSXC.js.map} +0 -0
  179. /package/dist/{plugin-registry-WB3DR67H.js.map → plugin-registry-6J3YSFHF.js.map} +0 -0
  180. /package/dist/{read-text-file-IRZM3QLM.js.map → read-text-file-DJBTITIB.js.map} +0 -0
  181. /package/dist/{registry-client-AVGRE4CF.js.map → registry-client-GTBWLXYU.js.map} +0 -0
  182. /package/dist/{security-YNRBW6S7.js.map → security-2BA265LN.js.map} +0 -0
  183. /package/dist/{settings-manager-MD2U4ZV2.js.map → settings-manager-B4UN2LAC.js.map} +0 -0
  184. /package/dist/{slack-2XNWBOWH.js.map → speech-SG62JYIF.js.map} +0 -0
  185. /package/dist/{speech-2GHQNRIO.js.map → telegram-EAVRDNFU.js.map} +0 -0
  186. /package/dist/{telegram-E65IWFBW.js.map → tunnel-HWJ27WDH.js.map} +0 -0
  187. /package/dist/{tunnel-45HA72MB.js.map → validators-GITLOFXC.js.map} +0 -0
  188. /package/dist/{validators-WSTBNKRW.js.map → version-AXXV6IV2.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -2,10 +2,35 @@ 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
 
8
+ type OutputMode = "low" | "medium" | "high";
9
+ /** @deprecated Use OutputMode instead */
10
+ type DisplayVerbosity = OutputMode;
11
+ declare const STATUS_ICONS: Record<string, string>;
12
+ declare const KIND_ICONS: Record<string, string>;
13
+ interface ViewerLinks {
14
+ file?: string;
15
+ diff?: string;
16
+ }
17
+ interface ToolCallMeta {
18
+ id: string;
19
+ name: string;
20
+ kind?: string;
21
+ status?: string;
22
+ content?: unknown;
23
+ rawInput?: unknown;
24
+ viewerLinks?: ViewerLinks;
25
+ viewerFilePath?: string;
26
+ displaySummary?: string;
27
+ displayTitle?: string;
28
+ displayKind?: string;
29
+ }
30
+ interface ToolUpdateMeta extends ToolCallMeta {
31
+ status: string;
32
+ }
33
+
9
34
  interface Attachment {
10
35
  type: 'image' | 'audio' | 'file';
11
36
  filePath: string;
@@ -140,6 +165,8 @@ type AgentEvent = {
140
165
  title?: string;
141
166
  description?: string;
142
167
  size?: number;
168
+ } | {
169
+ type: "tts_strip";
143
170
  };
144
171
  interface PlanEntry {
145
172
  content: string;
@@ -243,6 +270,7 @@ interface SessionRecord<P = Record<string, unknown>> {
243
270
  lastActiveAt: string;
244
271
  name?: string;
245
272
  dangerousMode?: boolean;
273
+ outputMode?: OutputMode;
246
274
  platform: P;
247
275
  }
248
276
  interface TelegramPlatformData {
@@ -510,147 +538,51 @@ declare const UsageSchema: z.ZodDefault<z.ZodObject<{
510
538
  }>>;
511
539
  type UsageConfig = z.infer<typeof UsageSchema>;
512
540
  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<{
541
+ channels: z.ZodObject<{}, "strip", z.ZodObject<{
549
542
  enabled: z.ZodDefault<z.ZodBoolean>;
550
543
  adapter: z.ZodOptional<z.ZodString>;
551
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
544
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
545
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
552
546
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
553
547
  enabled: z.ZodDefault<z.ZodBoolean>;
554
548
  adapter: z.ZodOptional<z.ZodString>;
555
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
549
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
550
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
556
551
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
557
552
  enabled: z.ZodDefault<z.ZodBoolean>;
558
553
  adapter: z.ZodOptional<z.ZodString>;
559
- 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<{
554
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
555
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
556
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{}, z.ZodObject<{
596
557
  enabled: z.ZodDefault<z.ZodBoolean>;
597
558
  adapter: z.ZodOptional<z.ZodString>;
598
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
559
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
560
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
599
561
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
600
562
  enabled: z.ZodDefault<z.ZodBoolean>;
601
563
  adapter: z.ZodOptional<z.ZodString>;
602
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
564
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
565
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
603
566
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
604
567
  enabled: z.ZodDefault<z.ZodBoolean>;
605
568
  adapter: z.ZodOptional<z.ZodString>;
606
- 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<{
569
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
570
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
571
+ }, z.ZodTypeAny, "passthrough">>, "strip">, z.objectInputType<{}, z.ZodObject<{
643
572
  enabled: z.ZodDefault<z.ZodBoolean>;
644
573
  adapter: z.ZodOptional<z.ZodString>;
645
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
574
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
575
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
646
576
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
647
577
  enabled: z.ZodDefault<z.ZodBoolean>;
648
578
  adapter: z.ZodOptional<z.ZodString>;
649
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
579
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
580
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
650
581
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
651
582
  enabled: z.ZodDefault<z.ZodBoolean>;
652
583
  adapter: z.ZodOptional<z.ZodString>;
653
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
584
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
585
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
654
586
  }, z.ZodTypeAny, "passthrough">>, "strip">>;
655
587
  agents: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
656
588
  command: z.ZodString;
@@ -878,6 +810,7 @@ declare const ConfigSchema: z.ZodObject<{
878
810
  }, z.ZodTypeAny, "passthrough">> | undefined;
879
811
  } | undefined;
880
812
  }>>>;
813
+ outputMode: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
881
814
  }, "strip", z.ZodTypeAny, {
882
815
  api: {
883
816
  port: number;
@@ -901,24 +834,12 @@ declare const ConfigSchema: z.ZodObject<{
901
834
  token?: string | undefined;
902
835
  };
903
836
  };
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
- } & {
837
+ channels: {} & {
918
838
  [k: string]: z.objectOutputType<{
919
839
  enabled: z.ZodDefault<z.ZodBoolean>;
920
840
  adapter: z.ZodOptional<z.ZodString>;
921
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
841
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
842
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
922
843
  }, z.ZodTypeAny, "passthrough">;
923
844
  };
924
845
  defaultAgent: string;
@@ -969,25 +890,14 @@ declare const ConfigSchema: z.ZodObject<{
969
890
  }, z.ZodTypeAny, "passthrough">>;
970
891
  };
971
892
  };
893
+ outputMode?: "low" | "medium" | "high" | undefined;
972
894
  }, {
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
- } & {
895
+ channels: {} & {
987
896
  [k: string]: z.objectInputType<{
988
897
  enabled: z.ZodDefault<z.ZodBoolean>;
989
898
  adapter: z.ZodOptional<z.ZodString>;
990
- displayVerbosity: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
899
+ displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
900
+ outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
991
901
  }, z.ZodTypeAny, "passthrough">;
992
902
  };
993
903
  defaultAgent: string;
@@ -1013,6 +923,7 @@ declare const ConfigSchema: z.ZodObject<{
1013
923
  token?: string | undefined;
1014
924
  } | undefined;
1015
925
  } | undefined;
926
+ outputMode?: "low" | "medium" | "high" | undefined;
1016
927
  workspace?: {
1017
928
  baseDir?: string | undefined;
1018
929
  } | undefined;
@@ -1121,7 +1032,8 @@ interface IChannelAdapter {
1121
1032
  createSessionThread(sessionId: string, name: string): Promise<string>;
1122
1033
  renameSessionThread(sessionId: string, newName: string): Promise<void>;
1123
1034
  deleteSessionThread?(sessionId: string): Promise<void>;
1124
- archiveSessionTopic?(sessionId: string): Promise<void>;
1035
+ archiveSessionTopic?(sessionId: string): Promise<string>;
1036
+ stripTTSBlock?(sessionId: string): Promise<void>;
1125
1037
  sendSkillCommands?(sessionId: string, commands: AgentCommand[]): Promise<void>;
1126
1038
  cleanupSkillCommands?(sessionId: string): Promise<void>;
1127
1039
  }
@@ -1146,11 +1058,11 @@ declare abstract class ChannelAdapter<TCore = unknown> implements IChannelAdapte
1146
1058
  deleteSessionThread(_sessionId: string): Promise<void>;
1147
1059
  sendSkillCommands(_sessionId: string, _commands: AgentCommand[]): Promise<void>;
1148
1060
  cleanupSkillCommands(_sessionId: string): Promise<void>;
1149
- archiveSessionTopic(_sessionId: string): Promise<void>;
1061
+ archiveSessionTopic(_sessionId: string): Promise<string>;
1150
1062
  }
1151
1063
 
1152
- declare function nodeToWebWritable(nodeStream: Writable): WritableStream<Uint8Array>;
1153
- declare function nodeToWebReadable(nodeStream: Readable): ReadableStream<Uint8Array>;
1064
+ declare function nodeToWebWritable(nodeStream: NodeJS.WritableStream): WritableStream<Uint8Array>;
1065
+ declare function nodeToWebReadable(nodeStream: NodeJS.ReadableStream): ReadableStream<Uint8Array>;
1154
1066
 
1155
1067
  declare class StderrCapture {
1156
1068
  private maxLines;
@@ -1226,6 +1138,26 @@ declare class MiddlewareChain {
1226
1138
  setErrorTracker(tracker: ErrorTracker): void;
1227
1139
  }
1228
1140
 
1141
+ type TraceLayer = "acp" | "core" | "telegram";
1142
+ /**
1143
+ * Per-session debug trace logger. Writes JSONL files to <workingDirectory>/.log/.
1144
+ * Only active when OPENACP_DEBUG=true. Zero overhead when disabled.
1145
+ *
1146
+ * Note: Uses appendFileSync for simplicity. This blocks the event loop briefly per write,
1147
+ * which is acceptable for a debug-only tool. The DEBUG_ENABLED guard ensures zero overhead
1148
+ * in production.
1149
+ */
1150
+ declare class DebugTracer {
1151
+ private sessionId;
1152
+ private workingDirectory;
1153
+ private dirCreated;
1154
+ private logDir;
1155
+ constructor(sessionId: string, workingDirectory: string);
1156
+ log(layer: TraceLayer, data: Record<string, unknown>): void;
1157
+ /** No-op cleanup — establishes the pattern for future async implementations */
1158
+ destroy(): void;
1159
+ }
1160
+
1229
1161
  interface AgentInstanceEvents {
1230
1162
  agent_event: (event: AgentEvent) => void;
1231
1163
  }
@@ -1235,6 +1167,7 @@ declare class AgentInstance extends TypedEmitter<AgentInstanceEvents> {
1235
1167
  private stderrCapture;
1236
1168
  private terminalManager;
1237
1169
  private static mcpManager;
1170
+ private _destroying;
1238
1171
  sessionId: string;
1239
1172
  agentName: string;
1240
1173
  promptCapabilities?: {
@@ -1242,6 +1175,7 @@ declare class AgentInstance extends TypedEmitter<AgentInstanceEvents> {
1242
1175
  audio?: boolean;
1243
1176
  };
1244
1177
  middlewareChain?: MiddlewareChain;
1178
+ debugTracer: DebugTracer | null;
1245
1179
  onPermissionRequest: (request: PermissionRequest) => Promise<string>;
1246
1180
  private constructor();
1247
1181
  private static spawnSubprocess;
@@ -1394,12 +1328,13 @@ declare class SpeechService {
1394
1328
  setProviderFactory(factory: ProviderFactory): void;
1395
1329
  registerSTTProvider(name: string, provider: STTProvider$1): void;
1396
1330
  registerTTSProvider(name: string, provider: TTSProvider$1): void;
1331
+ unregisterTTSProvider(name: string): void;
1397
1332
  isSTTAvailable(): boolean;
1398
1333
  isTTSAvailable(): boolean;
1399
1334
  transcribe(audioBuffer: Buffer, mimeType: string, options?: STTOptions): Promise<STTResult>;
1400
1335
  synthesize(text: string, options?: TTSOptions): Promise<TTSResult>;
1401
1336
  updateConfig(config: SpeechServiceConfig): void;
1402
- /** Re-create all providers from current config using the registered factory */
1337
+ /** Re-create factory-managed providers from config. Preserves externally-registered providers (e.g. from plugins). */
1403
1338
  refreshProviders(newConfig: SpeechServiceConfig): void;
1404
1339
  }
1405
1340
 
@@ -1922,6 +1857,7 @@ interface ContextService {
1922
1857
  interface ViewerStoreInterface {
1923
1858
  storeFile(sessionId: string, filePath: string, content: string, workingDirectory: string): string | null;
1924
1859
  storeDiff(sessionId: string, filePath: string, oldContent: string, newContent: string, workingDirectory: string): string | null;
1860
+ storeOutput(sessionId: string, label: string, output: string): string | null;
1925
1861
  }
1926
1862
  interface TunnelServiceInterface {
1927
1863
  getPublicUrl(): string;
@@ -1930,15 +1866,22 @@ interface TunnelServiceInterface {
1930
1866
  getStore(): ViewerStoreInterface;
1931
1867
  fileUrl(entryId: string): string;
1932
1868
  diffUrl(entryId: string): string;
1869
+ outputUrl(entryId: string): string;
1933
1870
  }
1934
1871
 
1935
1872
  declare class MessageTransformer {
1936
- private tunnelService?;
1937
- constructor(tunnelService?: TunnelServiceInterface | undefined);
1873
+ tunnelService?: TunnelServiceInterface;
1874
+ /** Cache rawInput from tool_call so it's available in tool_update (which often lacks it) */
1875
+ private toolRawInputCache;
1876
+ /** Cache viewer links generated from intermediate updates so completion events carry them */
1877
+ private toolViewerCache;
1878
+ constructor(tunnelService?: TunnelServiceInterface);
1938
1879
  transform(event: AgentEvent, sessionContext?: {
1939
1880
  id: string;
1940
1881
  workingDirectory: string;
1941
1882
  }): OutgoingMessage;
1883
+ /** Check if rawInput is a non-empty object (not null, not {}) */
1884
+ private isNonEmptyInput;
1942
1885
  private enrichWithViewerLinks;
1943
1886
  }
1944
1887
 
@@ -2043,6 +1986,15 @@ declare class SessionManager {
2043
1986
  statuses?: string[];
2044
1987
  }): SessionRecord[];
2045
1988
  removeRecord(sessionId: string): Promise<void>;
1989
+ /**
1990
+ * Graceful shutdown: persist session state without killing agent subprocesses.
1991
+ * Agent processes will exit naturally when the parent process terminates.
1992
+ */
1993
+ shutdownAll(): Promise<void>;
1994
+ /**
1995
+ * Forcefully destroy all sessions (kill agent subprocesses).
1996
+ * Use only when sessions must be fully torn down (e.g. archive).
1997
+ */
2046
1998
  destroyAll(): Promise<void>;
2047
1999
  }
2048
2000
 
@@ -2071,6 +2023,7 @@ declare class SessionBridge {
2071
2023
  private statusChangeHandler?;
2072
2024
  private namedHandler?;
2073
2025
  constructor(session: Session, adapter: IChannelAdapter, deps: BridgeDeps);
2026
+ private get tracer();
2074
2027
  /** Send message to adapter, optionally running through message:outgoing middleware */
2075
2028
  private sendMessage;
2076
2029
  connect(): void;
@@ -2095,7 +2048,7 @@ interface TunnelEntry {
2095
2048
 
2096
2049
  interface ViewerEntry {
2097
2050
  id: string;
2098
- type: 'file' | 'diff';
2051
+ type: 'file' | 'diff' | 'output';
2099
2052
  filePath?: string;
2100
2053
  content: string;
2101
2054
  oldContent?: string;
@@ -2112,6 +2065,7 @@ declare class ViewerStore {
2112
2065
  constructor(ttlMinutes?: number);
2113
2066
  storeFile(sessionId: string, filePath: string, content: string, workingDirectory: string): string | null;
2114
2067
  storeDiff(sessionId: string, filePath: string, oldContent: string, newContent: string, workingDirectory: string): string | null;
2068
+ storeOutput(sessionId: string, label: string, output: string): string | null;
2115
2069
  get(id: string): ViewerEntry | undefined;
2116
2070
  private cleanup;
2117
2071
  private isPathAllowed;
@@ -2125,6 +2079,7 @@ declare class TunnelService {
2125
2079
  private server;
2126
2080
  private config;
2127
2081
  private systemPort;
2082
+ private startError;
2128
2083
  constructor(config: TunnelConfig);
2129
2084
  start(): Promise<string>;
2130
2085
  stop(): Promise<void>;
@@ -2138,9 +2093,11 @@ declare class TunnelService {
2138
2093
  listTunnels(): TunnelEntry[];
2139
2094
  getTunnel(port: number): TunnelEntry | null;
2140
2095
  getPublicUrl(): string;
2096
+ getStartError(): string | undefined;
2141
2097
  getStore(): ViewerStore;
2142
2098
  fileUrl(entryId: string): string;
2143
2099
  diffUrl(entryId: string): string;
2100
+ outputUrl(entryId: string): string;
2144
2101
  }
2145
2102
 
2146
2103
  interface SessionCreateParams {
@@ -2271,6 +2228,7 @@ declare class LifecycleManager {
2271
2228
  private _failed;
2272
2229
  get loadedPlugins(): string[];
2273
2230
  get failedPlugins(): string[];
2231
+ get registry(): PluginRegistry | undefined;
2274
2232
  constructor(opts?: LifecycleManagerOpts);
2275
2233
  private getPluginLogger;
2276
2234
  boot(plugins: OpenACPPlugin[]): Promise<void>;
@@ -2348,6 +2306,7 @@ declare class OpenACPCore {
2348
2306
  eventBus: EventBus;
2349
2307
  sessionFactory: SessionFactory;
2350
2308
  readonly lifecycleManager: LifecycleManager;
2309
+ private getService;
2351
2310
  get securityGuard(): SecurityGuard;
2352
2311
  get notificationManager(): NotificationManager;
2353
2312
  get fileService(): FileServiceInterface;
@@ -2361,6 +2320,7 @@ declare class OpenACPCore {
2361
2320
  stop(): Promise<void>;
2362
2321
  archiveSession(sessionId: string): Promise<{
2363
2322
  ok: true;
2323
+ newThreadId: string;
2364
2324
  } | {
2365
2325
  ok: false;
2366
2326
  error: string;
@@ -2374,6 +2334,7 @@ declare class OpenACPCore {
2374
2334
  existingSessionId?: string;
2375
2335
  createThread?: boolean;
2376
2336
  initialName?: string;
2337
+ threadId?: string;
2377
2338
  }): Promise<Session>;
2378
2339
  handleNewSession(channelId: string, agentName?: string, workspacePath?: string, options?: {
2379
2340
  createThread?: boolean;
@@ -2421,7 +2382,7 @@ interface RegisteredCommand extends CommandDef {
2421
2382
  * - System commands always own the short name.
2422
2383
  * - Among plugins, the first to register wins the short name.
2423
2384
  * - Every plugin command also gets a qualified name: `scope:name`.
2424
- * - Adapter plugins (@openacp/telegram, @openacp/discord, @openacp/slack)
2385
+ * - Adapter plugins (@openacp/telegram, @openacp/discord)
2425
2386
  * registering a command that already exists → stored as an override
2426
2387
  * keyed by `channelId:commandName`, used when channelId matches.
2427
2388
  */
@@ -2439,7 +2400,7 @@ declare class CommandRegistry {
2439
2400
  register(def: CommandDef, pluginName?: string): void;
2440
2401
  /** Retrieve a command by name (short or qualified). */
2441
2402
  get(name: string): RegisteredCommand | undefined;
2442
- /** Remove a command by short name. Also removes its qualified name entry. */
2403
+ /** Remove a command by name (short or qualified). Also removes its qualified name entry. */
2443
2404
  unregister(name: string): void;
2444
2405
  /** Remove all commands registered by a given plugin. */
2445
2406
  unregisterByPlugin(pluginName: string): void;
@@ -2546,6 +2507,11 @@ declare function isAutoStartInstalled(): boolean;
2546
2507
  declare class FileService {
2547
2508
  private baseDir;
2548
2509
  constructor(baseDir: string);
2510
+ /**
2511
+ * Remove session file directories older than maxAgeDays.
2512
+ * Called on startup to prevent unbounded disk growth.
2513
+ */
2514
+ cleanupOldFiles(maxAgeDays: number): Promise<number>;
2549
2515
  saveFile(sessionId: string, fileName: string, data: Buffer, mimeType: string): Promise<Attachment>;
2550
2516
  resolveFile(filePath: string): Promise<Attachment | null>;
2551
2517
  /**
@@ -2679,30 +2645,6 @@ declare class EntireProvider implements ContextProvider {
2679
2645
  private buildTitle;
2680
2646
  }
2681
2647
 
2682
- type DisplayVerbosity = "low" | "medium" | "high";
2683
- declare const STATUS_ICONS: Record<string, string>;
2684
- declare const KIND_ICONS: Record<string, string>;
2685
- interface ViewerLinks {
2686
- file?: string;
2687
- diff?: string;
2688
- }
2689
- interface ToolCallMeta {
2690
- id: string;
2691
- name: string;
2692
- kind?: string;
2693
- status?: string;
2694
- content?: unknown;
2695
- rawInput?: unknown;
2696
- viewerLinks?: ViewerLinks;
2697
- viewerFilePath?: string;
2698
- displaySummary?: string;
2699
- displayTitle?: string;
2700
- displayKind?: string;
2701
- }
2702
- interface ToolUpdateMeta extends ToolCallMeta {
2703
- status: string;
2704
- }
2705
-
2706
2648
  interface RenderedMessage<TComponents = unknown> {
2707
2649
  body: string;
2708
2650
  format: "html" | "markdown" | "plain" | "structured";
@@ -2970,6 +2912,7 @@ declare class TelegramAdapter extends MessagingAdapter {
2970
2912
  private assistantTopicId;
2971
2913
  private sendQueue;
2972
2914
  private _sessionThreadIds;
2915
+ private outputModeResolver;
2973
2916
  private draftManager;
2974
2917
  private skillManager;
2975
2918
  private fileService;
@@ -2985,12 +2928,22 @@ declare class TelegramAdapter extends MessagingAdapter {
2985
2928
  private toCallbackData;
2986
2929
  private fromCallbackData;
2987
2930
  private setupRoutes;
2931
+ /**
2932
+ * Per-session serial dispatch queues.
2933
+ * SessionBridge fires sendMessage() as fire-and-forget, so multiple events
2934
+ * (tool_call, tool_update, text) can arrive concurrently. Without serialization,
2935
+ * fast handlers (tool_update) overtake slow ones (tool_call with draftManager.finalize),
2936
+ * causing out-of-order processing where a tool's completion update is processed before
2937
+ * its creation event. This queue ensures events are processed in the order they arrive.
2938
+ */
2939
+ private _dispatchQueues;
2940
+ private getTracer;
2988
2941
  sendMessage(sessionId: string, content: OutgoingMessage): Promise<void>;
2989
- protected handleThought(sessionId: string, _content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
2942
+ protected handleThought(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
2990
2943
  protected handleText(sessionId: string, content: OutgoingMessage): Promise<void>;
2991
- protected handleToolCall(sessionId: string, content: OutgoingMessage, verbosity: DisplayVerbosity): Promise<void>;
2992
- protected handleToolUpdate(sessionId: string, content: OutgoingMessage, verbosity: DisplayVerbosity): Promise<void>;
2993
- protected handlePlan(sessionId: string, content: OutgoingMessage, verbosity: DisplayVerbosity): Promise<void>;
2944
+ protected handleToolCall(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
2945
+ protected handleToolUpdate(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
2946
+ protected handlePlan(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
2994
2947
  protected handleUsage(sessionId: string, content: OutgoingMessage, verbosity: DisplayVerbosity): Promise<void>;
2995
2948
  protected handleAttachment(sessionId: string, content: OutgoingMessage): Promise<void>;
2996
2949
  protected handleSessionEnd(sessionId: string, _content: OutgoingMessage): Promise<void>;
@@ -3006,7 +2959,8 @@ declare class TelegramAdapter extends MessagingAdapter {
3006
2959
  private downloadTelegramFile;
3007
2960
  private handleIncomingMedia;
3008
2961
  cleanupSkillCommands(sessionId: string): Promise<void>;
3009
- archiveSessionTopic(sessionId: string): Promise<void>;
2962
+ stripTTSBlock(sessionId: string): Promise<void>;
2963
+ archiveSessionTopic(sessionId: string): Promise<string>;
3010
2964
  }
3011
2965
 
3012
2966
  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 };