@openacp/cli 2026.327.5 → 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 (178) 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-P2G275VD.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-S3ZGPPXY.js → chunk-E2SLHZAC.js} +8 -12
  29. package/dist/{chunk-S3ZGPPXY.js.map → chunk-E2SLHZAC.js.map} +1 -1
  30. package/dist/{chunk-RBYBSSGO.js → chunk-FCTC7KDT.js} +2 -2
  31. package/dist/{plugin-installer-QVJP6VKV.js → chunk-I53NEV3S.js} +6 -3
  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-HRKAXFWR.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-XWDW3XBE.js → chunk-RXMWJHWH.js} +687 -99
  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 +103 -97
  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 +37 -145
  62. package/dist/index.js +32 -28
  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-3GF3EQTE.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-A7VPW46C.js → setup-OI6A3OXW.js} +109 -82
  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-JQFQ3JAO.js +0 -15
  102. package/dist/adapter-UORRGHNH.js +0 -1030
  103. package/dist/adapter-UORRGHNH.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-32LVIEPW.js +0 -477
  110. package/dist/chunk-32LVIEPW.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-ODUM3D6X.js.map +0 -1
  115. package/dist/chunk-QVMEF6FB.js.map +0 -1
  116. package/dist/chunk-VUNV25KB.js +0 -16
  117. package/dist/chunk-WIIZNPCR.js.map +0 -1
  118. package/dist/chunk-WXVT3AOY.js.map +0 -1
  119. package/dist/chunk-XIBG7LSL.js.map +0 -1
  120. package/dist/chunk-XWDW3XBE.js.map +0 -1
  121. package/dist/chunk-ZNSO2QVC.js +0 -124
  122. package/dist/chunk-ZNSO2QVC.js.map +0 -1
  123. package/dist/config-editor-7PKW42GZ.js +0 -11
  124. package/dist/core-plugins-Y5US6RED.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-3GF3EQTE.js.map +0 -1
  130. package/dist/notifications-D5BRDNSU.js +0 -9
  131. package/dist/plugin-installer-QVJP6VKV.js.map +0 -1
  132. package/dist/setup-A7VPW46C.js.map +0 -1
  133. package/dist/slack-2XNWBOWH.js +0 -8
  134. package/dist/speech-2GHQNRIO.js +0 -9
  135. package/dist/telegram-E65IWFBW.js +0 -8
  136. package/dist/tunnel-45HA72MB.js +0 -8
  137. package/dist/version-NQZBM5M7.js.map +0 -1
  138. /package/dist/{adapter-JQFQ3JAO.js.map → adapter-HGJENQCN.js.map} +0 -0
  139. /package/dist/{agent-catalog-YHBFERYO.js.map → agent-catalog-SZQQERV7.js.map} +0 -0
  140. /package/dist/{agent-dependencies-WS7Z2DFW.js.map → agent-dependencies-ED2ZTUHG.js.map} +0 -0
  141. /package/dist/{agent-registry-5LZT7CUB.js.map → agent-registry-YOGP656W.js.map} +0 -0
  142. /package/dist/{agent-store-VSHNY5GT.js.map → agent-store-5UHZH2XI.js.map} +0 -0
  143. /package/dist/{api-client-AQPNKXI2.js.map → api-client-XTLRRFPX.js.map} +0 -0
  144. /package/dist/{api-server-7G3ZUZRM.js.map → api-server-DSUW637I.js.map} +0 -0
  145. /package/dist/{api-server-CAYNPUF2.js.map → api-server-WFB5K6FP.js.map} +0 -0
  146. /package/dist/{autostart-6JS565RY.js.map → autostart-CUPZMKKC.js.map} +0 -0
  147. /package/dist/{chunk-PPSMUECX.js.map → chunk-2R5XM3ES.js.map} +0 -0
  148. /package/dist/{chunk-SNPYTMPR.js.map → chunk-3EWTPOF7.js.map} +0 -0
  149. /package/dist/{chunk-QAQDGPB4.js.map → chunk-43JVXFYP.js.map} +0 -0
  150. /package/dist/{chunk-A6Y4GZM3.js.map → chunk-566W6INH.js.map} +0 -0
  151. /package/dist/{chunk-P2G275VD.js.map → chunk-5TCXYDLR.js.map} +0 -0
  152. /package/dist/{chunk-RBYBSSGO.js.map → chunk-FCTC7KDT.js.map} +0 -0
  153. /package/dist/{chunk-4GMLGCF2.js.map → chunk-JUFN4XMB.js.map} +0 -0
  154. /package/dist/{chunk-HRKAXFWR.js.map → chunk-QBEQJFGL.js.map} +0 -0
  155. /package/dist/{chunk-SHTGQGAU.js.map → chunk-V2YZWYXT.js.map} +0 -0
  156. /package/dist/{chunk-BQ6FR32N.js.map → chunk-VD3QSMVY.js.map} +0 -0
  157. /package/dist/{chunk-VUNV25KB.js.map → config-UCAFCS5W.js.map} +0 -0
  158. /package/dist/{config-I4FMCJGZ.js.map → config-editor-OU6PUY66.js.map} +0 -0
  159. /package/dist/{config-editor-7PKW42GZ.js.map → config-registry-ZXAIJNYB.js.map} +0 -0
  160. /package/dist/{config-registry-CUMNXFGK.js.map → context-7MPU7RL5.js.map} +0 -0
  161. /package/dist/{context-XM6E22LM.js.map → core-plugins-R2EVZAJV.js.map} +0 -0
  162. /package/dist/{core-plugins-Y5US6RED.js.map → daemon-DTA6KYYY.js.map} +0 -0
  163. /package/dist/{daemon-PXO5QPCR.js.map → doctor-D723IB2I.js.map} +0 -0
  164. /package/dist/{doctor-QZQAP46W.js.map → file-service-HHB3JQIO.js.map} +0 -0
  165. /package/dist/{file-service-EUODJAIT.js.map → log-YZ243M5G.js.map} +0 -0
  166. /package/dist/{log-LZ7FTRKG.js.map → menu-ALFN37IR.js.map} +0 -0
  167. /package/dist/{menu-YDQ2LWAR.js.map → notifications-MO23S7S3.js.map} +0 -0
  168. /package/dist/{notifications-D5BRDNSU.js.map → plugin-installer-5XHORMLS.js.map} +0 -0
  169. /package/dist/{plugin-registry-WB3DR67H.js.map → plugin-registry-6J3YSFHF.js.map} +0 -0
  170. /package/dist/{read-text-file-IRZM3QLM.js.map → read-text-file-DJBTITIB.js.map} +0 -0
  171. /package/dist/{registry-client-AVGRE4CF.js.map → registry-client-GTBWLXYU.js.map} +0 -0
  172. /package/dist/{security-YNRBW6S7.js.map → security-2BA265LN.js.map} +0 -0
  173. /package/dist/{settings-manager-MD2U4ZV2.js.map → settings-manager-B4UN2LAC.js.map} +0 -0
  174. /package/dist/{slack-2XNWBOWH.js.map → speech-GB7PHVQZ.js.map} +0 -0
  175. /package/dist/{speech-2GHQNRIO.js.map → telegram-UVIAXADE.js.map} +0 -0
  176. /package/dist/{telegram-E65IWFBW.js.map → tunnel-4WNFC7GO.js.map} +0 -0
  177. /package/dist/{tunnel-45HA72MB.js.map → validators-GITLOFXC.js.map} +0 -0
  178. /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
  /**
@@ -3006,7 +2897,8 @@ declare class TelegramAdapter extends MessagingAdapter {
3006
2897
  private downloadTelegramFile;
3007
2898
  private handleIncomingMedia;
3008
2899
  cleanupSkillCommands(sessionId: string): Promise<void>;
3009
- archiveSessionTopic(sessionId: string): Promise<void>;
2900
+ stripTTSBlock(sessionId: string): Promise<void>;
2901
+ archiveSessionTopic(sessionId: string): Promise<string>;
3010
2902
  }
3011
2903
 
3012
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 };
package/dist/index.js CHANGED
@@ -1,6 +1,3 @@
1
- import {
2
- runConfigEditor
3
- } from "./chunk-HRKAXFWR.js";
4
1
  import {
5
2
  AgentInstance,
6
3
  AgentManager,
@@ -18,39 +15,36 @@ import {
18
15
  TypedEmitter,
19
16
  nodeToWebReadable,
20
17
  nodeToWebWritable
21
- } from "./chunk-XIBG7LSL.js";
22
- import {
23
- AgentCatalog
24
- } from "./chunk-SHTGQGAU.js";
25
- import {
26
- AgentStore
27
- } from "./chunk-A6Y4GZM3.js";
18
+ } from "./chunk-6VR4GWOO.js";
28
19
  import {
29
20
  getPidPath,
30
21
  getStatus,
31
22
  startDaemon,
32
23
  stopDaemon
33
- } from "./chunk-BQ6FR32N.js";
24
+ } from "./chunk-VD3QSMVY.js";
25
+ import {
26
+ runConfigEditor
27
+ } from "./chunk-QBEQJFGL.js";
34
28
  import {
35
29
  installAutoStart,
36
30
  isAutoStartInstalled,
37
31
  isAutoStartSupported,
38
32
  uninstallAutoStart
39
- } from "./chunk-PPSMUECX.js";
33
+ } from "./chunk-2R5XM3ES.js";
40
34
  import {
41
- PRODUCT_GUIDE,
42
- SendQueue,
43
- TelegramAdapter
44
- } from "./chunk-XWDW3XBE.js";
45
- import "./chunk-AFKX424Q.js";
35
+ AgentCatalog
36
+ } from "./chunk-V2YZWYXT.js";
46
37
  import {
47
- DoctorEngine
48
- } from "./chunk-QAQDGPB4.js";
38
+ AgentStore
39
+ } from "./chunk-566W6INH.js";
49
40
  import {
50
41
  BaseRenderer,
51
42
  KIND_ICONS,
52
43
  MessagingAdapter,
44
+ PRODUCT_GUIDE,
53
45
  STATUS_ICONS,
46
+ SendQueue,
47
+ TelegramAdapter,
54
48
  extractContentText,
55
49
  formatTokens,
56
50
  formatToolSummary,
@@ -60,15 +54,19 @@ import {
60
54
  splitMessage,
61
55
  stripCodeFences,
62
56
  truncateContent
63
- } from "./chunk-32LVIEPW.js";
57
+ } from "./chunk-RXMWJHWH.js";
58
+ import "./chunk-AFKX424Q.js";
59
+ import {
60
+ DoctorEngine
61
+ } from "./chunk-43JVXFYP.js";
64
62
  import {
65
63
  NotificationManager
66
- } from "./chunk-WXVT3AOY.js";
64
+ } from "./chunk-7ZCQF6QM.js";
67
65
  import {
68
66
  ApiServer,
69
67
  SSEManager,
70
68
  StaticServer
71
- } from "./chunk-2YCW3QDV.js";
69
+ } from "./chunk-IXMIC4GQ.js";
72
70
  import "./chunk-FNRSWA2K.js";
73
71
  import "./chunk-ZSLHHQPQ.js";
74
72
  import {
@@ -77,7 +75,7 @@ import {
77
75
  import "./chunk-OYSAN7UX.js";
78
76
  import {
79
77
  FileService
80
- } from "./chunk-BLQUXO7S.js";
78
+ } from "./chunk-IZ5UEZF7.js";
81
79
  import {
82
80
  ContextManager,
83
81
  EntireProvider
@@ -86,7 +84,7 @@ import "./chunk-APS6UEFU.js";
86
84
  import {
87
85
  GroqSTT,
88
86
  SpeechService
89
- } from "./chunk-WIIZNPCR.js";
87
+ } from "./chunk-2KT6TROD.js";
90
88
  import {
91
89
  CONFIG_REGISTRY,
92
90
  getConfigValue,
@@ -94,12 +92,12 @@ import {
94
92
  getSafeFields,
95
93
  isHotReloadable,
96
94
  resolveOptions
97
- } from "./chunk-ODUM3D6X.js";
95
+ } from "./chunk-5HKQCYOI.js";
98
96
  import {
99
97
  ConfigManager,
100
98
  PLUGINS_DIR,
101
99
  expandHome
102
- } from "./chunk-QVMEF6FB.js";
100
+ } from "./chunk-JOMDPFQ2.js";
103
101
  import {
104
102
  cleanupOldSessionLogs,
105
103
  createChildLogger,
@@ -108,8 +106,7 @@ import {
108
106
  log,
109
107
  setLogLevel,
110
108
  shutdownLogger
111
- } from "./chunk-XMMAGAT4.js";
112
- import "./chunk-VUNV25KB.js";
109
+ } from "./chunk-R6KZYF7D.js";
113
110
 
114
111
  // src/core/channel.ts
115
112
  var ChannelAdapter = class {
@@ -132,6 +129,7 @@ var ChannelAdapter = class {
132
129
  async cleanupSkillCommands(_sessionId) {
133
130
  }
134
131
  async archiveSessionTopic(_sessionId) {
132
+ return "";
135
133
  }
136
134
  };
137
135
 
@@ -350,6 +348,7 @@ var DraftManager = class {
350
348
  const draft = this.drafts.get(sessionId);
351
349
  if (!draft) return;
352
350
  await draft.finalize();
351
+ this.drafts.delete(sessionId);
353
352
  }
354
353
  async finalizeAll() {
355
354
  await Promise.all([...this.drafts.values()].map((d) => d.finalize()));
@@ -442,6 +441,8 @@ var ActivityTracker = class {
442
441
  if (!state) return;
443
442
  state.dismissed = true;
444
443
  this.stopRefresh(state);
444
+ state.callbacks.removeThinkingIndicator().catch(() => {
445
+ });
445
446
  this.sessions.delete(sessionId);
446
447
  }
447
448
  startRefresh(sessionId, state) {
@@ -451,7 +452,10 @@ var ActivityTracker = class {
451
452
  return;
452
453
  }
453
454
  if (Date.now() - state.startTime >= this.config.maxThinkingDuration) {
455
+ state.dismissed = true;
454
456
  this.stopRefresh(state);
457
+ state.callbacks.removeThinkingIndicator().catch(() => {
458
+ });
455
459
  return;
456
460
  }
457
461
  state.callbacks.updateThinkingIndicator().catch(() => {