@openacp/cli 0.6.3 → 0.6.4

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 (98) hide show
  1. package/dist/{admin-3ZHEO5VP.js → admin-SCP25TN2.js} +3 -3
  2. package/dist/agent-catalog-SBZQRYOD.js +10 -0
  3. package/dist/agent-store-CGE4G6PA.js +8 -0
  4. package/dist/{agents-SXIY4IEF.js → agents-QJPHNWK2.js} +3 -3
  5. package/dist/{autostart-A7JRU4WJ.js → autostart-6M3FZAKW.js} +3 -3
  6. package/dist/{chunk-PMGNLNSH.js → chunk-2CJ46J3C.js} +2 -2
  7. package/dist/{chunk-5HGXUCMX.js → chunk-34M4OS5P.js} +2 -2
  8. package/dist/{chunk-TMCQZAXN.js → chunk-3CHBVO4T.js} +3 -3
  9. package/dist/{chunk-TTDSLV35.js → chunk-4CTX774K.js} +3 -3
  10. package/dist/{chunk-NXEQXRQR.js → chunk-774Y4RAK.js} +2 -2
  11. package/dist/{chunk-SM3G6UAX.js → chunk-BNLGTZ34.js} +2 -2
  12. package/dist/{chunk-AVCHZESZ.js → chunk-DJIXG62C.js} +49 -20
  13. package/dist/chunk-DJIXG62C.js.map +1 -0
  14. package/dist/{chunk-KO5RL7MZ.js → chunk-DOCFD5JR.js} +2 -2
  15. package/dist/{chunk-HP2IJYCA.js → chunk-E56PPPAE.js} +9 -9
  16. package/dist/chunk-E56PPPAE.js.map +1 -0
  17. package/dist/{chunk-ESOPMQAY.js → chunk-GAK6PIBW.js} +25 -2
  18. package/dist/chunk-GAK6PIBW.js.map +1 -0
  19. package/dist/{chunk-3KGRVAEV.js → chunk-J4SJTKIK.js} +2 -2
  20. package/dist/{chunk-FZ5BIWG5.js → chunk-JV6XQRAE.js} +4 -4
  21. package/dist/{chunk-EWYNCHUH.js → chunk-L5KZXYJD.js} +2 -2
  22. package/dist/{chunk-G3OHCXZG.js → chunk-N6E3HE42.js} +194 -133
  23. package/dist/chunk-N6E3HE42.js.map +1 -0
  24. package/dist/{chunk-EVFJW45N.js → chunk-S64CB6J3.js} +13 -13
  25. package/dist/{chunk-EVFJW45N.js.map → chunk-S64CB6J3.js.map} +1 -1
  26. package/dist/{chunk-6LSFRNHE.js → chunk-TNFXJQZP.js} +3 -3
  27. package/dist/{chunk-OHR6SBMC.js → chunk-TOQPQB5Q.js} +3 -3
  28. package/dist/{chunk-CKOK7JW6.js → chunk-UKT3G5IA.js} +3 -3
  29. package/dist/{chunk-PWFPTG5X.js → chunk-V5GZQEIY.js} +2 -2
  30. package/dist/{chunk-IER5UCY7.js → chunk-YQRF3IOR.js} +2 -2
  31. package/dist/cli.js +54 -44
  32. package/dist/cli.js.map +1 -1
  33. package/dist/{config-4YSJ4NCI.js → config-XDUOULXX.js} +3 -3
  34. package/dist/config-editor-3GGBY7NL.js +12 -0
  35. package/dist/{daemon-I6XMRQ6P.js → daemon-QY7WXHQ3.js} +4 -4
  36. package/dist/{discord-VHCBN3JJ.js → discord-4DE22BQC.js} +19 -19
  37. package/dist/doctor-D3YZ6VHJ.js +14 -0
  38. package/dist/doctor-SNSQ5SS2.js +9 -0
  39. package/dist/index.js +11 -11
  40. package/dist/{install-cloudflared-G2GUKCHA.js → install-cloudflared-FSILDS5J.js} +3 -3
  41. package/dist/{install-jq-7QTU7XYY.js → install-jq-P6RUBKPV.js} +3 -3
  42. package/dist/{log-SPS2S6FO.js → log-RCVBXLTN.js} +8 -4
  43. package/dist/{main-P4X6SAPZ.js → main-GVTLD7VI.js} +46 -26
  44. package/dist/main-GVTLD7VI.js.map +1 -0
  45. package/dist/{new-session-PUNUHGYP.js → new-session-K6UCWYOP.js} +5 -5
  46. package/dist/{post-upgrade-6N4JCV5S.js → post-upgrade-62LUHDJO.js} +5 -5
  47. package/dist/{session-ZMAM67AA.js → session-O6ZPLJIZ.js} +4 -4
  48. package/dist/{settings-OEQEZS5Y.js → settings-RRF77IC4.js} +3 -3
  49. package/dist/{setup-7YBFKRG7.js → setup-D6BU36ZL.js} +4 -4
  50. package/dist/{tunnel-service-BMIBHUBK.js → tunnel-service-NJJH4I26.js} +3 -3
  51. package/dist/{version-ALWGGVKM.js → version-AXXV6IV2.js} +2 -2
  52. package/package.json +3 -2
  53. package/dist/agent-catalog-IVU2KANH.js +0 -10
  54. package/dist/agent-store-ZBXGOFPH.js +0 -8
  55. package/dist/chunk-AVCHZESZ.js.map +0 -1
  56. package/dist/chunk-ESOPMQAY.js.map +0 -1
  57. package/dist/chunk-G3OHCXZG.js.map +0 -1
  58. package/dist/chunk-HP2IJYCA.js.map +0 -1
  59. package/dist/config-editor-F25HEMGL.js +0 -12
  60. package/dist/doctor-GPW5ECK6.js +0 -14
  61. package/dist/doctor-Y3SCSVPI.js +0 -9
  62. package/dist/main-P4X6SAPZ.js.map +0 -1
  63. /package/dist/{admin-3ZHEO5VP.js.map → admin-SCP25TN2.js.map} +0 -0
  64. /package/dist/{agent-catalog-IVU2KANH.js.map → agent-catalog-SBZQRYOD.js.map} +0 -0
  65. /package/dist/{agent-store-ZBXGOFPH.js.map → agent-store-CGE4G6PA.js.map} +0 -0
  66. /package/dist/{agents-SXIY4IEF.js.map → agents-QJPHNWK2.js.map} +0 -0
  67. /package/dist/{autostart-A7JRU4WJ.js.map → autostart-6M3FZAKW.js.map} +0 -0
  68. /package/dist/{chunk-PMGNLNSH.js.map → chunk-2CJ46J3C.js.map} +0 -0
  69. /package/dist/{chunk-5HGXUCMX.js.map → chunk-34M4OS5P.js.map} +0 -0
  70. /package/dist/{chunk-TMCQZAXN.js.map → chunk-3CHBVO4T.js.map} +0 -0
  71. /package/dist/{chunk-TTDSLV35.js.map → chunk-4CTX774K.js.map} +0 -0
  72. /package/dist/{chunk-NXEQXRQR.js.map → chunk-774Y4RAK.js.map} +0 -0
  73. /package/dist/{chunk-SM3G6UAX.js.map → chunk-BNLGTZ34.js.map} +0 -0
  74. /package/dist/{chunk-KO5RL7MZ.js.map → chunk-DOCFD5JR.js.map} +0 -0
  75. /package/dist/{chunk-3KGRVAEV.js.map → chunk-J4SJTKIK.js.map} +0 -0
  76. /package/dist/{chunk-FZ5BIWG5.js.map → chunk-JV6XQRAE.js.map} +0 -0
  77. /package/dist/{chunk-EWYNCHUH.js.map → chunk-L5KZXYJD.js.map} +0 -0
  78. /package/dist/{chunk-6LSFRNHE.js.map → chunk-TNFXJQZP.js.map} +0 -0
  79. /package/dist/{chunk-OHR6SBMC.js.map → chunk-TOQPQB5Q.js.map} +0 -0
  80. /package/dist/{chunk-CKOK7JW6.js.map → chunk-UKT3G5IA.js.map} +0 -0
  81. /package/dist/{chunk-PWFPTG5X.js.map → chunk-V5GZQEIY.js.map} +0 -0
  82. /package/dist/{chunk-IER5UCY7.js.map → chunk-YQRF3IOR.js.map} +0 -0
  83. /package/dist/{config-4YSJ4NCI.js.map → config-XDUOULXX.js.map} +0 -0
  84. /package/dist/{config-editor-F25HEMGL.js.map → config-editor-3GGBY7NL.js.map} +0 -0
  85. /package/dist/{daemon-I6XMRQ6P.js.map → daemon-QY7WXHQ3.js.map} +0 -0
  86. /package/dist/{discord-VHCBN3JJ.js.map → discord-4DE22BQC.js.map} +0 -0
  87. /package/dist/{doctor-GPW5ECK6.js.map → doctor-D3YZ6VHJ.js.map} +0 -0
  88. /package/dist/{doctor-Y3SCSVPI.js.map → doctor-SNSQ5SS2.js.map} +0 -0
  89. /package/dist/{install-cloudflared-G2GUKCHA.js.map → install-cloudflared-FSILDS5J.js.map} +0 -0
  90. /package/dist/{install-jq-7QTU7XYY.js.map → install-jq-P6RUBKPV.js.map} +0 -0
  91. /package/dist/{log-SPS2S6FO.js.map → log-RCVBXLTN.js.map} +0 -0
  92. /package/dist/{new-session-PUNUHGYP.js.map → new-session-K6UCWYOP.js.map} +0 -0
  93. /package/dist/{post-upgrade-6N4JCV5S.js.map → post-upgrade-62LUHDJO.js.map} +0 -0
  94. /package/dist/{session-ZMAM67AA.js.map → session-O6ZPLJIZ.js.map} +0 -0
  95. /package/dist/{settings-OEQEZS5Y.js.map → settings-RRF77IC4.js.map} +0 -0
  96. /package/dist/{setup-7YBFKRG7.js.map → setup-D6BU36ZL.js.map} +0 -0
  97. /package/dist/{tunnel-service-BMIBHUBK.js.map → tunnel-service-NJJH4I26.js.map} +0 -0
  98. /package/dist/{version-ALWGGVKM.js.map → version-AXXV6IV2.js.map} +0 -0
@@ -2,7 +2,7 @@ import {
2
2
  handleNew,
3
3
  handleNewChat,
4
4
  handleNewSessionButton
5
- } from "./chunk-FZ5BIWG5.js";
5
+ } from "./chunk-JV6XQRAE.js";
6
6
  import {
7
7
  handleDangerous,
8
8
  handleDangerousButton,
@@ -10,14 +10,14 @@ import {
10
10
  handleTTS,
11
11
  handleTTSButton,
12
12
  handleUpdate
13
- } from "./chunk-NXEQXRQR.js";
13
+ } from "./chunk-774Y4RAK.js";
14
14
  import {
15
15
  handleCancel,
16
16
  handleCleanupButton,
17
17
  handleHandoff,
18
18
  handleSessions,
19
19
  handleStatus
20
- } from "./chunk-TTDSLV35.js";
20
+ } from "./chunk-4CTX774K.js";
21
21
  import {
22
22
  buildDeepLink,
23
23
  createSessionThread,
@@ -25,20 +25,20 @@ import {
25
25
  ensureForums,
26
26
  ensureUnarchived,
27
27
  renameSessionThread
28
- } from "./chunk-SM3G6UAX.js";
28
+ } from "./chunk-BNLGTZ34.js";
29
29
  import {
30
30
  handleAgentButton,
31
31
  handleAgents,
32
32
  handleInstall
33
- } from "./chunk-3KGRVAEV.js";
33
+ } from "./chunk-J4SJTKIK.js";
34
34
  import {
35
35
  handleSettings,
36
36
  handleSettingsButton
37
- } from "./chunk-IER5UCY7.js";
37
+ } from "./chunk-YQRF3IOR.js";
38
38
  import {
39
39
  handleDoctor,
40
40
  handleDoctorButton
41
- } from "./chunk-6LSFRNHE.js";
41
+ } from "./chunk-TNFXJQZP.js";
42
42
  import {
43
43
  buildActionKeyboard,
44
44
  detectAction,
@@ -49,12 +49,12 @@ import {
49
49
  PRODUCT_GUIDE,
50
50
  dispatchMessage
51
51
  } from "./chunk-FMWSVLRM.js";
52
- import "./chunk-OHR6SBMC.js";
52
+ import "./chunk-TOQPQB5Q.js";
53
53
  import "./chunk-F3AICYO4.js";
54
- import "./chunk-EWYNCHUH.js";
54
+ import "./chunk-L5KZXYJD.js";
55
55
  import {
56
56
  log
57
- } from "./chunk-ESOPMQAY.js";
57
+ } from "./chunk-GAK6PIBW.js";
58
58
 
59
59
  // src/adapters/discord/adapter.ts
60
60
  import { Client, GatewayIntentBits, MessageFlags } from "discord.js";
@@ -1027,12 +1027,12 @@ async function handleMenuButton(interaction, adapter) {
1027
1027
  try {
1028
1028
  switch (customId) {
1029
1029
  case "m:new": {
1030
- const { handleNew: handleNew2 } = await import("./new-session-PUNUHGYP.js");
1030
+ const { handleNew: handleNew2 } = await import("./new-session-K6UCWYOP.js");
1031
1031
  await interaction.followUp({ content: "Use `/new` to create a new session.", ephemeral: true });
1032
1032
  break;
1033
1033
  }
1034
1034
  case "m:sessions": {
1035
- const { handleSessions: handleSessions2 } = await import("./session-ZMAM67AA.js");
1035
+ const { handleSessions: handleSessions2 } = await import("./session-O6ZPLJIZ.js");
1036
1036
  await showSessionsList(interaction, adapter);
1037
1037
  break;
1038
1038
  }
@@ -1041,12 +1041,12 @@ async function handleMenuButton(interaction, adapter) {
1041
1041
  break;
1042
1042
  }
1043
1043
  case "m:agents": {
1044
- const { showAgentsList } = await import("./agents-SXIY4IEF.js");
1044
+ const { showAgentsList } = await import("./agents-QJPHNWK2.js");
1045
1045
  await showAgentsList(interaction, adapter);
1046
1046
  break;
1047
1047
  }
1048
1048
  case "m:settings": {
1049
- const { showSettingsInfo } = await import("./settings-OEQEZS5Y.js");
1049
+ const { showSettingsInfo } = await import("./settings-RRF77IC4.js");
1050
1050
  await showSettingsInfo(interaction, adapter);
1051
1051
  break;
1052
1052
  }
@@ -1055,7 +1055,7 @@ async function handleMenuButton(interaction, adapter) {
1055
1055
  break;
1056
1056
  }
1057
1057
  case "m:restart": {
1058
- const { handleRestart: handleRestart2 } = await import("./admin-3ZHEO5VP.js");
1058
+ const { handleRestart: handleRestart2 } = await import("./admin-SCP25TN2.js");
1059
1059
  if (!adapter.core.requestRestart) {
1060
1060
  await interaction.followUp({ content: "\u26A0\uFE0F Restart not available.", ephemeral: true });
1061
1061
  } else {
@@ -1074,7 +1074,7 @@ async function handleMenuButton(interaction, adapter) {
1074
1074
  break;
1075
1075
  }
1076
1076
  case "m:doctor": {
1077
- const { runDoctorInline } = await import("./doctor-GPW5ECK6.js");
1077
+ const { runDoctorInline } = await import("./doctor-D3YZ6VHJ.js");
1078
1078
  await runDoctorInline(interaction, adapter);
1079
1079
  break;
1080
1080
  }
@@ -1333,11 +1333,11 @@ async function setupButtonCallbacks(interaction, adapter) {
1333
1333
  }
1334
1334
  }
1335
1335
  async function executeNewSession(interaction, adapter, agentName, workspace) {
1336
- const { executeNewSession: doExecute } = await import("./new-session-PUNUHGYP.js");
1336
+ const { executeNewSession: doExecute } = await import("./new-session-K6UCWYOP.js");
1337
1337
  await doExecute(interaction, adapter, agentName, workspace);
1338
1338
  }
1339
1339
  async function executeCancelSession(interaction, adapter) {
1340
- const { executeCancelSession: doCancel } = await import("./session-ZMAM67AA.js");
1340
+ const { executeCancelSession: doCancel } = await import("./session-O6ZPLJIZ.js");
1341
1341
  await doCancel(interaction, adapter);
1342
1342
  }
1343
1343
 
@@ -2095,4 +2095,4 @@ ${notification.deepLink}`;
2095
2095
  export {
2096
2096
  DiscordAdapter
2097
2097
  };
2098
- //# sourceMappingURL=discord-VHCBN3JJ.js.map
2098
+ //# sourceMappingURL=discord-4DE22BQC.js.map
@@ -0,0 +1,14 @@
1
+ import {
2
+ handleDoctor,
3
+ handleDoctorButton,
4
+ runDoctorInline
5
+ } from "./chunk-TNFXJQZP.js";
6
+ import "./chunk-TOQPQB5Q.js";
7
+ import "./chunk-L5KZXYJD.js";
8
+ import "./chunk-GAK6PIBW.js";
9
+ export {
10
+ handleDoctor,
11
+ handleDoctorButton,
12
+ runDoctorInline
13
+ };
14
+ //# sourceMappingURL=doctor-D3YZ6VHJ.js.map
@@ -0,0 +1,9 @@
1
+ import {
2
+ DoctorEngine
3
+ } from "./chunk-TOQPQB5Q.js";
4
+ import "./chunk-L5KZXYJD.js";
5
+ import "./chunk-GAK6PIBW.js";
6
+ export {
7
+ DoctorEngine
8
+ };
9
+ //# sourceMappingURL=doctor-SNSQ5SS2.js.map
package/dist/index.js CHANGED
@@ -26,11 +26,11 @@ import {
26
26
  UsageStore,
27
27
  nodeToWebReadable,
28
28
  nodeToWebWritable
29
- } from "./chunk-HP2IJYCA.js";
29
+ } from "./chunk-E56PPPAE.js";
30
30
  import {
31
31
  ChannelAdapter
32
32
  } from "./chunk-FMWSVLRM.js";
33
- import "./chunk-OHR6SBMC.js";
33
+ import "./chunk-TOQPQB5Q.js";
34
34
  import "./chunk-NAMYZIS5.js";
35
35
  import "./chunk-7QJS2XBD.js";
36
36
  import {
@@ -38,30 +38,30 @@ import {
38
38
  getStatus,
39
39
  startDaemon,
40
40
  stopDaemon
41
- } from "./chunk-KO5RL7MZ.js";
41
+ } from "./chunk-DOCFD5JR.js";
42
42
  import {
43
43
  AgentCatalog
44
- } from "./chunk-CKOK7JW6.js";
44
+ } from "./chunk-UKT3G5IA.js";
45
45
  import {
46
46
  AgentStore
47
- } from "./chunk-5HGXUCMX.js";
47
+ } from "./chunk-34M4OS5P.js";
48
48
  import {
49
49
  runConfigEditor
50
- } from "./chunk-AVCHZESZ.js";
50
+ } from "./chunk-DJIXG62C.js";
51
51
  import {
52
52
  installAutoStart,
53
53
  isAutoStartInstalled,
54
54
  isAutoStartSupported,
55
55
  uninstallAutoStart
56
- } from "./chunk-PMGNLNSH.js";
57
- import "./chunk-G3OHCXZG.js";
56
+ } from "./chunk-2CJ46J3C.js";
57
+ import "./chunk-N6E3HE42.js";
58
58
  import "./chunk-JKBFUAJK.js";
59
59
  import {
60
60
  installPlugin,
61
61
  listPlugins,
62
62
  loadAdapterFactory,
63
63
  uninstallPlugin
64
- } from "./chunk-TMCQZAXN.js";
64
+ } from "./chunk-3CHBVO4T.js";
65
65
  import {
66
66
  CONFIG_REGISTRY,
67
67
  getConfigValue,
@@ -74,7 +74,7 @@ import {
74
74
  ConfigManager,
75
75
  PLUGINS_DIR,
76
76
  expandHome
77
- } from "./chunk-EWYNCHUH.js";
77
+ } from "./chunk-L5KZXYJD.js";
78
78
  import {
79
79
  cleanupOldSessionLogs,
80
80
  createChildLogger,
@@ -83,7 +83,7 @@ import {
83
83
  log,
84
84
  setLogLevel,
85
85
  shutdownLogger
86
- } from "./chunk-ESOPMQAY.js";
86
+ } from "./chunk-GAK6PIBW.js";
87
87
  export {
88
88
  AgentCatalog,
89
89
  AgentInstance,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ensureBinary
3
- } from "./chunk-PWFPTG5X.js";
3
+ } from "./chunk-V5GZQEIY.js";
4
4
  import "./chunk-JKBFUAJK.js";
5
- import "./chunk-ESOPMQAY.js";
5
+ import "./chunk-GAK6PIBW.js";
6
6
 
7
7
  // src/tunnel/providers/install-cloudflared.ts
8
8
  var CLOUDFLARED_SPEC = {
@@ -29,4 +29,4 @@ async function ensureCloudflared() {
29
29
  export {
30
30
  ensureCloudflared
31
31
  };
32
- //# sourceMappingURL=install-cloudflared-G2GUKCHA.js.map
32
+ //# sourceMappingURL=install-cloudflared-FSILDS5J.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ensureBinary
3
- } from "./chunk-PWFPTG5X.js";
3
+ } from "./chunk-V5GZQEIY.js";
4
4
  import "./chunk-JKBFUAJK.js";
5
- import "./chunk-ESOPMQAY.js";
5
+ import "./chunk-GAK6PIBW.js";
6
6
 
7
7
  // src/core/install-jq.ts
8
8
  var JQ_SPEC = {
@@ -28,4 +28,4 @@ async function ensureJq() {
28
28
  export {
29
29
  ensureJq
30
30
  };
31
- //# sourceMappingURL=install-jq-7QTU7XYY.js.map
31
+ //# sourceMappingURL=install-jq-P6RUBKPV.js.map
@@ -4,16 +4,20 @@ import {
4
4
  createSessionLogger,
5
5
  initLogger,
6
6
  log,
7
+ muteLogger,
7
8
  setLogLevel,
8
- shutdownLogger
9
- } from "./chunk-ESOPMQAY.js";
9
+ shutdownLogger,
10
+ unmuteLogger
11
+ } from "./chunk-GAK6PIBW.js";
10
12
  export {
11
13
  cleanupOldSessionLogs,
12
14
  createChildLogger,
13
15
  createSessionLogger,
14
16
  initLogger,
15
17
  log,
18
+ muteLogger,
16
19
  setLogLevel,
17
- shutdownLogger
20
+ shutdownLogger,
21
+ unmuteLogger
18
22
  };
19
- //# sourceMappingURL=log-SPS2S6FO.js.map
23
+ //# sourceMappingURL=log-RCVBXLTN.js.map
@@ -4,38 +4,40 @@ import {
4
4
  OpenACPCore,
5
5
  TelegramAdapter,
6
6
  TopicManager
7
- } from "./chunk-HP2IJYCA.js";
7
+ } from "./chunk-E56PPPAE.js";
8
8
  import "./chunk-FMWSVLRM.js";
9
- import "./chunk-OHR6SBMC.js";
9
+ import "./chunk-TOQPQB5Q.js";
10
10
  import "./chunk-NAMYZIS5.js";
11
11
  import "./chunk-7QJS2XBD.js";
12
- import "./chunk-KO5RL7MZ.js";
13
- import "./chunk-CKOK7JW6.js";
14
- import "./chunk-5HGXUCMX.js";
15
- import "./chunk-AVCHZESZ.js";
16
- import "./chunk-PMGNLNSH.js";
17
- import "./chunk-G3OHCXZG.js";
12
+ import "./chunk-DOCFD5JR.js";
13
+ import "./chunk-UKT3G5IA.js";
14
+ import "./chunk-34M4OS5P.js";
15
+ import "./chunk-DJIXG62C.js";
16
+ import "./chunk-2CJ46J3C.js";
17
+ import "./chunk-N6E3HE42.js";
18
18
  import "./chunk-JKBFUAJK.js";
19
19
  import {
20
20
  loadAdapterFactory
21
- } from "./chunk-TMCQZAXN.js";
21
+ } from "./chunk-3CHBVO4T.js";
22
22
  import "./chunk-F3AICYO4.js";
23
23
  import {
24
24
  ConfigManager
25
- } from "./chunk-EWYNCHUH.js";
25
+ } from "./chunk-L5KZXYJD.js";
26
26
  import {
27
27
  cleanupOldSessionLogs,
28
28
  initLogger,
29
29
  log,
30
- shutdownLogger
31
- } from "./chunk-ESOPMQAY.js";
30
+ muteLogger,
31
+ shutdownLogger,
32
+ unmuteLogger
33
+ } from "./chunk-GAK6PIBW.js";
32
34
 
33
35
  // src/main.ts
34
36
  var RESTART_EXIT_CODE = 75;
35
37
  var shuttingDown = false;
36
38
  async function startServer() {
37
39
  if (process.argv.includes("--daemon-child")) {
38
- const { writePidFile, readPidFile, getPidPath, shouldAutoStart } = await import("./daemon-I6XMRQ6P.js");
40
+ const { writePidFile, readPidFile, getPidPath, shouldAutoStart } = await import("./daemon-QY7WXHQ3.js");
39
41
  if (!shouldAutoStart()) {
40
42
  process.exit(0);
41
43
  }
@@ -54,20 +56,27 @@ async function startServer() {
54
56
  const configManager = new ConfigManager();
55
57
  const configExists = await configManager.exists();
56
58
  if (!configExists) {
57
- const { runSetup } = await import("./setup-7YBFKRG7.js");
59
+ const { runSetup } = await import("./setup-D6BU36ZL.js");
58
60
  const shouldStart = await runSetup(configManager);
59
61
  if (!shouldStart) process.exit(0);
60
62
  }
61
63
  await configManager.load();
62
64
  const config = configManager.get();
63
65
  initLogger(config.logging);
64
- log.info({ configPath: configManager.getConfigPath() }, "Config loaded");
65
- if (process.stdout.isTTY && !process.env.NO_COLOR && config.runMode !== "daemon") {
66
- const { printStartBanner } = await import("./setup-7YBFKRG7.js");
66
+ log.debug({ configPath: configManager.getConfigPath() }, "Config loaded");
67
+ const isForegroundTTY = !!(process.stdout.isTTY && !process.env.NO_COLOR && config.runMode !== "daemon");
68
+ if (isForegroundTTY) {
69
+ const { printStartBanner } = await import("./setup-D6BU36ZL.js");
67
70
  await printStartBanner();
68
71
  }
72
+ let spinner;
73
+ if (isForegroundTTY) {
74
+ muteLogger();
75
+ const ora = (await import("ora")).default;
76
+ spinner = ora({ text: "Starting OpenACP...", spinner: "dots" }).start();
77
+ }
69
78
  try {
70
- const { runPostUpgradeChecks } = await import("./post-upgrade-6N4JCV5S.js");
79
+ const { runPostUpgradeChecks } = await import("./post-upgrade-62LUHDJO.js");
71
80
  await runPostUpgradeChecks(config);
72
81
  } catch (err) {
73
82
  log.warn({ err }, "Post-upgrade check failed");
@@ -78,7 +87,7 @@ async function startServer() {
78
87
  const core = new OpenACPCore(configManager);
79
88
  let tunnelService;
80
89
  if (config.tunnel.enabled) {
81
- const { TunnelService } = await import("./tunnel-service-BMIBHUBK.js");
90
+ const { TunnelService } = await import("./tunnel-service-NJJH4I26.js");
82
91
  tunnelService = new TunnelService(config.tunnel);
83
92
  const publicUrl = await tunnelService.start();
84
93
  core.tunnelService = tunnelService;
@@ -90,7 +99,7 @@ async function startServer() {
90
99
  core.registerAdapter("telegram", new TelegramAdapter(core, channelConfig));
91
100
  log.info({ adapter: "telegram" }, "Adapter registered");
92
101
  } else if (channelName === "discord") {
93
- const { DiscordAdapter } = await import("./discord-VHCBN3JJ.js");
102
+ const { DiscordAdapter } = await import("./discord-4DE22BQC.js");
94
103
  const discordConfig = channelConfig;
95
104
  core.registerAdapter("discord", new DiscordAdapter(core, discordConfig));
96
105
  log.info({ adapter: "discord" }, "Adapter registered");
@@ -127,13 +136,13 @@ async function startServer() {
127
136
  }
128
137
  const isDaemon = process.argv.includes("--daemon-child");
129
138
  if (isDaemon) {
130
- const { removePidFile, getPidPath } = await import("./daemon-I6XMRQ6P.js");
139
+ const { removePidFile, getPidPath } = await import("./daemon-QY7WXHQ3.js");
131
140
  removePidFile(getPidPath());
132
141
  }
133
142
  if (exitCode === RESTART_EXIT_CODE) {
134
143
  if (isDaemon) {
135
144
  const { spawn: spawnChild } = await import("child_process");
136
- const { expandHome } = await import("./config-4YSJ4NCI.js");
145
+ const { expandHome } = await import("./config-XDUOULXX.js");
137
146
  const fs = await import("fs");
138
147
  const pathMod = await import("path");
139
148
  const cliPath = pathMod.resolve(process.argv[1]);
@@ -191,9 +200,20 @@ async function startServer() {
191
200
  }
192
201
  apiServer = new ApiServer(core, config.api, void 0, topicManager);
193
202
  await apiServer.start();
194
- const agents = Object.keys(config.agents);
195
- log.info({ agents }, "OpenACP started");
196
- log.info("Press Ctrl+C to stop");
203
+ if (isForegroundTTY) {
204
+ if (spinner) spinner.stop();
205
+ const ok = (msg) => console.log(`\x1B[32m\u2713\x1B[0m ${msg}`);
206
+ ok("Config loaded");
207
+ ok("Dependencies checked");
208
+ if (tunnelService) ok(`Tunnel ready \u2192 ${tunnelService.getPublicUrl()}`);
209
+ for (const [name] of core.adapters) ok(`${name.charAt(0).toUpperCase() + name.slice(1)} connected`);
210
+ if (apiServer) ok(`API server on port ${config.api.port}`);
211
+ console.log(`
212
+ OpenACP is running. Press Ctrl+C to stop.
213
+ `);
214
+ unmuteLogger();
215
+ }
216
+ log.debug({ agents: Object.keys(config.agents) }, "OpenACP started");
197
217
  }
198
218
  var isDirectExecution = process.argv[1]?.endsWith("main.js");
199
219
  if (isDirectExecution) {
@@ -206,4 +226,4 @@ export {
206
226
  RESTART_EXIT_CODE,
207
227
  startServer
208
228
  };
209
- //# sourceMappingURL=main-P4X6SAPZ.js.map
229
+ //# sourceMappingURL=main-GVTLD7VI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { ConfigManager } from './core/config.js'\nimport { OpenACPCore } from './core/core.js'\nimport { loadAdapterFactory } from './core/plugin-manager.js'\nimport { initLogger, shutdownLogger, cleanupOldSessionLogs, log, muteLogger, unmuteLogger } from './core/log.js'\nimport { TelegramAdapter } from './adapters/telegram/index.js'\nimport type { TelegramChannelConfig } from './adapters/telegram/index.js'\nimport { ApiServer } from './core/api-server.js'\nimport { TopicManager } from './core/topic-manager.js'\n\nexport const RESTART_EXIT_CODE = 75\nlet shuttingDown = false\n\nexport async function startServer() {\n // 0. If running as daemon child, check state and write PID file\n if (process.argv.includes('--daemon-child')) {\n const { writePidFile, readPidFile, getPidPath, shouldAutoStart } = await import('./core/daemon.js')\n\n // Only auto-start if the daemon was previously running (user started it)\n if (!shouldAutoStart()) {\n process.exit(0)\n }\n\n const pidPath = getPidPath()\n const existingPid = readPidFile(pidPath)\n if (existingPid !== null && existingPid !== process.pid) {\n try {\n process.kill(existingPid, 0)\n console.error(`Another OpenACP instance is already running (PID ${existingPid}). Exiting.`)\n process.exit(1)\n } catch {\n // Stale PID file — safe to overwrite\n }\n }\n writePidFile(pidPath, process.pid)\n }\n\n // 1. Check config exists, run setup if not\n const configManager = new ConfigManager()\n const configExists = await configManager.exists()\n\n if (!configExists) {\n const { runSetup } = await import('./core/setup.js')\n const shouldStart = await runSetup(configManager)\n if (!shouldStart) process.exit(0)\n }\n\n // 2. Load config (validates with Zod)\n await configManager.load()\n const config = configManager.get()\n initLogger(config.logging)\n log.debug({ configPath: configManager.getConfigPath() }, 'Config loaded')\n\n // Show banner in foreground TTY mode (not daemon, not piped)\n const isForegroundTTY = !!(process.stdout.isTTY && !process.env.NO_COLOR && config.runMode !== 'daemon')\n if (isForegroundTTY) {\n const { printStartBanner } = await import('./core/setup.js')\n await printStartBanner()\n }\n\n // Mute pino during startup, show spinner instead\n let spinner: ReturnType<typeof import('ora').default> | undefined\n if (isForegroundTTY) {\n muteLogger()\n const ora = (await import('ora')).default\n spinner = ora({ text: 'Starting OpenACP...', spinner: 'dots' }).start()\n }\n\n // Post-upgrade dependency check (blocking — must complete before server start)\n try {\n const { runPostUpgradeChecks } = await import('./core/post-upgrade.js')\n await runPostUpgradeChecks(config)\n } catch (err) {\n log.warn({ err }, 'Post-upgrade check failed')\n }\n\n // Async cleanup of old session logs (non-blocking)\n cleanupOldSessionLogs(config.logging.sessionLogRetentionDays).catch(err =>\n log.warn({ err }, 'Session log cleanup failed')\n )\n\n // 3. Create core\n const core = new OpenACPCore(configManager)\n\n // 3.5 Start tunnel if configured\n let tunnelService: import('./tunnel/tunnel-service.js').TunnelService | undefined\n if (config.tunnel.enabled) {\n const { TunnelService } = await import('./tunnel/tunnel-service.js')\n tunnelService = new TunnelService(config.tunnel)\n const publicUrl = await tunnelService.start()\n core.tunnelService = tunnelService\n log.info({ publicUrl }, 'Tunnel started')\n }\n\n // 4. Register adapters from config\n for (const [channelName, channelConfig] of Object.entries(config.channels)) {\n if (!channelConfig.enabled) continue\n\n if (channelName === 'telegram') {\n core.registerAdapter('telegram', new TelegramAdapter(core, channelConfig as TelegramChannelConfig))\n log.info({ adapter: 'telegram' }, 'Adapter registered')\n } else if (channelName === 'discord') {\n const { DiscordAdapter } = await import('./adapters/discord/index.js')\n const discordConfig = channelConfig as import('./adapters/discord/types.js').DiscordChannelConfig\n core.registerAdapter('discord', new DiscordAdapter(core, discordConfig))\n log.info({ adapter: 'discord' }, 'Adapter registered')\n } else if (channelConfig.adapter) {\n // Plugin adapter\n const factory = await loadAdapterFactory(channelConfig.adapter)\n if (factory) {\n const adapter = factory.createAdapter(core, channelConfig)\n core.registerAdapter(channelName, adapter)\n log.info({ adapter: channelName, plugin: channelConfig.adapter }, 'Adapter registered')\n } else {\n const name = channelName\n const err = channelConfig.adapter\n log.error({ adapter: name, err }, 'Failed to load adapter')\n }\n } else {\n log.error({ adapter: channelName }, 'Channel has no built-in adapter; set \"adapter\" field to a plugin package')\n }\n }\n\n if (core.adapters.size === 0) {\n log.error('No channels enabled. Enable at least one channel in config.')\n process.exit(1)\n }\n\n // 5. Start\n let apiServer: ApiServer | undefined\n\n const shutdown = async (signal: string, exitCode = 0) => {\n if (shuttingDown) return\n shuttingDown = true\n log.info({ signal, exitCode }, 'Signal received, shutting down')\n\n try {\n if (apiServer) await apiServer.stop()\n await core.stop()\n if (tunnelService) await tunnelService.stop()\n } catch (err) {\n log.error({ err }, 'Error during shutdown')\n }\n\n const isDaemon = process.argv.includes('--daemon-child')\n\n // Clean up PID file if running as daemon\n if (isDaemon) {\n const { removePidFile, getPidPath } = await import('./core/daemon.js')\n removePidFile(getPidPath())\n }\n\n // Self-respawn on restart\n if (exitCode === RESTART_EXIT_CODE) {\n if (isDaemon) {\n // Daemon mode: spawn detached child writing to log file\n const { spawn: spawnChild } = await import('node:child_process')\n const { expandHome } = await import('./core/config.js')\n const fs = await import('node:fs')\n const pathMod = await import('node:path')\n\n const cliPath = pathMod.resolve(process.argv[1])\n const resolvedLogDir = expandHome(config.logging.logDir)\n fs.mkdirSync(resolvedLogDir, { recursive: true })\n const logFile = pathMod.join(resolvedLogDir, 'openacp.log')\n const out = fs.openSync(logFile, 'a')\n const err = fs.openSync(logFile, 'a')\n\n const child = spawnChild(process.execPath, [cliPath, '--daemon-child'], {\n detached: true,\n stdio: ['ignore', out, err],\n env: { ...process.env, OPENACP_SKIP_UPDATE_CHECK: '1' },\n })\n fs.closeSync(out)\n fs.closeSync(err)\n child.unref()\n log.info({ newPid: child.pid }, 'Respawned daemon for restart')\n } else if (!process.env.OPENACP_DEV_LOOP) {\n // Foreground production mode: spawn replacement process with inherited stdio\n const { spawn: spawnChild } = await import('node:child_process')\n const child = spawnChild(process.execPath, process.argv.slice(1), {\n stdio: 'inherit',\n env: { ...process.env, OPENACP_SKIP_UPDATE_CHECK: '1' },\n })\n await shutdownLogger()\n child.on('exit', (code) => process.exit(code ?? 0))\n return\n }\n }\n\n await shutdownLogger()\n process.exit(exitCode)\n }\n\n // Expose restart trigger for adapters (e.g. /restart command)\n core.requestRestart = () => shutdown('restart', RESTART_EXIT_CODE)\n\n process.on('SIGINT', () => shutdown('SIGINT'))\n process.on('SIGTERM', () => shutdown('SIGTERM'))\n\n process.on('uncaughtException', (err) => {\n log.error({ err }, 'Uncaught exception')\n })\n\n process.on('unhandledRejection', (err) => {\n log.error({ err }, 'Unhandled rejection')\n })\n\n await core.start()\n\n const updatedConfig = core.configManager.get()\n const telegramAdapter = core.adapters.get('telegram') ?? null\n let topicManager: TopicManager | undefined\n if (telegramAdapter) {\n const telegramCfg = updatedConfig.channels?.telegram as TelegramChannelConfig | undefined\n topicManager = new TopicManager(\n core.sessionManager,\n telegramAdapter,\n {\n notificationTopicId: telegramCfg?.notificationTopicId ?? null,\n assistantTopicId: telegramCfg?.assistantTopicId ?? null,\n },\n )\n }\n\n apiServer = new ApiServer(core, config.api, undefined, topicManager)\n await apiServer.start()\n\n // 6. Log ready\n if (isForegroundTTY) {\n if (spinner) spinner.stop()\n const ok = (msg: string) => console.log(`\\x1b[32m✓\\x1b[0m ${msg}`)\n ok('Config loaded')\n ok('Dependencies checked')\n if (tunnelService) ok(`Tunnel ready → ${tunnelService.getPublicUrl()}`)\n for (const [name] of core.adapters) ok(`${name.charAt(0).toUpperCase() + name.slice(1)} connected`)\n if (apiServer) ok(`API server on port ${config.api.port}`)\n console.log(`\\nOpenACP is running. Press Ctrl+C to stop.\\n`)\n unmuteLogger()\n }\n log.debug({ agents: Object.keys(config.agents) }, 'OpenACP started')\n}\n\n// Direct execution for dev (node dist/main.js)\nconst isDirectExecution = process.argv[1]?.endsWith('main.js')\nif (isDirectExecution) {\n startServer().catch((err) => {\n log.error({ err }, 'Fatal error')\n process.exit(1)\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,IAAM,oBAAoB;AACjC,IAAI,eAAe;AAEnB,eAAsB,cAAc;AAElC,MAAI,QAAQ,KAAK,SAAS,gBAAgB,GAAG;AAC3C,UAAM,EAAE,cAAc,aAAa,YAAY,gBAAgB,IAAI,MAAM,OAAO,sBAAkB;AAGlG,QAAI,CAAC,gBAAgB,GAAG;AACtB,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM,UAAU,WAAW;AAC3B,UAAM,cAAc,YAAY,OAAO;AACvC,QAAI,gBAAgB,QAAQ,gBAAgB,QAAQ,KAAK;AACvD,UAAI;AACF,gBAAQ,KAAK,aAAa,CAAC;AAC3B,gBAAQ,MAAM,oDAAoD,WAAW,aAAa;AAC1F,gBAAQ,KAAK,CAAC;AAAA,MAChB,QAAQ;AAAA,MAER;AAAA,IACF;AACA,iBAAa,SAAS,QAAQ,GAAG;AAAA,EACnC;AAGA,QAAM,gBAAgB,IAAI,cAAc;AACxC,QAAM,eAAe,MAAM,cAAc,OAAO;AAEhD,MAAI,CAAC,cAAc;AACjB,UAAM,EAAE,SAAS,IAAI,MAAM,OAAO,qBAAiB;AACnD,UAAM,cAAc,MAAM,SAAS,aAAa;AAChD,QAAI,CAAC,YAAa,SAAQ,KAAK,CAAC;AAAA,EAClC;AAGA,QAAM,cAAc,KAAK;AACzB,QAAM,SAAS,cAAc,IAAI;AACjC,aAAW,OAAO,OAAO;AACzB,MAAI,MAAM,EAAE,YAAY,cAAc,cAAc,EAAE,GAAG,eAAe;AAGxE,QAAM,kBAAkB,CAAC,EAAE,QAAQ,OAAO,SAAS,CAAC,QAAQ,IAAI,YAAY,OAAO,YAAY;AAC/F,MAAI,iBAAiB;AACnB,UAAM,EAAE,iBAAiB,IAAI,MAAM,OAAO,qBAAiB;AAC3D,UAAM,iBAAiB;AAAA,EACzB;AAGA,MAAI;AACJ,MAAI,iBAAiB;AACnB,eAAW;AACX,UAAM,OAAO,MAAM,OAAO,KAAK,GAAG;AAClC,cAAU,IAAI,EAAE,MAAM,uBAAuB,SAAS,OAAO,CAAC,EAAE,MAAM;AAAA,EACxE;AAGA,MAAI;AACF,UAAM,EAAE,qBAAqB,IAAI,MAAM,OAAO,4BAAwB;AACtE,UAAM,qBAAqB,MAAM;AAAA,EACnC,SAAS,KAAK;AACZ,QAAI,KAAK,EAAE,IAAI,GAAG,2BAA2B;AAAA,EAC/C;AAGA,wBAAsB,OAAO,QAAQ,uBAAuB,EAAE;AAAA,IAAM,SAClE,IAAI,KAAK,EAAE,IAAI,GAAG,4BAA4B;AAAA,EAChD;AAGA,QAAM,OAAO,IAAI,YAAY,aAAa;AAG1C,MAAI;AACJ,MAAI,OAAO,OAAO,SAAS;AACzB,UAAM,EAAE,cAAc,IAAI,MAAM,OAAO,8BAA4B;AACnE,oBAAgB,IAAI,cAAc,OAAO,MAAM;AAC/C,UAAM,YAAY,MAAM,cAAc,MAAM;AAC5C,SAAK,gBAAgB;AACrB,QAAI,KAAK,EAAE,UAAU,GAAG,gBAAgB;AAAA,EAC1C;AAGA,aAAW,CAAC,aAAa,aAAa,KAAK,OAAO,QAAQ,OAAO,QAAQ,GAAG;AAC1E,QAAI,CAAC,cAAc,QAAS;AAE5B,QAAI,gBAAgB,YAAY;AAC9B,WAAK,gBAAgB,YAAY,IAAI,gBAAgB,MAAM,aAAsC,CAAC;AAClG,UAAI,KAAK,EAAE,SAAS,WAAW,GAAG,oBAAoB;AAAA,IACxD,WAAW,gBAAgB,WAAW;AACpC,YAAM,EAAE,eAAe,IAAI,MAAM,OAAO,uBAA6B;AACrE,YAAM,gBAAgB;AACtB,WAAK,gBAAgB,WAAW,IAAI,eAAe,MAAM,aAAa,CAAC;AACvE,UAAI,KAAK,EAAE,SAAS,UAAU,GAAG,oBAAoB;AAAA,IACvD,WAAW,cAAc,SAAS;AAEhC,YAAM,UAAU,MAAM,mBAAmB,cAAc,OAAO;AAC9D,UAAI,SAAS;AACX,cAAM,UAAU,QAAQ,cAAc,MAAM,aAAa;AACzD,aAAK,gBAAgB,aAAa,OAAO;AACzC,YAAI,KAAK,EAAE,SAAS,aAAa,QAAQ,cAAc,QAAQ,GAAG,oBAAoB;AAAA,MACxF,OAAO;AACL,cAAM,OAAO;AACb,cAAM,MAAM,cAAc;AAC1B,YAAI,MAAM,EAAE,SAAS,MAAM,IAAI,GAAG,wBAAwB;AAAA,MAC5D;AAAA,IACF,OAAO;AACL,UAAI,MAAM,EAAE,SAAS,YAAY,GAAG,0EAA0E;AAAA,IAChH;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,QAAI,MAAM,6DAA6D;AACvE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,MAAI;AAEJ,QAAM,WAAW,OAAO,QAAgB,WAAW,MAAM;AACvD,QAAI,aAAc;AAClB,mBAAe;AACf,QAAI,KAAK,EAAE,QAAQ,SAAS,GAAG,gCAAgC;AAE/D,QAAI;AACF,UAAI,UAAW,OAAM,UAAU,KAAK;AACpC,YAAM,KAAK,KAAK;AAChB,UAAI,cAAe,OAAM,cAAc,KAAK;AAAA,IAC9C,SAAS,KAAK;AACZ,UAAI,MAAM,EAAE,IAAI,GAAG,uBAAuB;AAAA,IAC5C;AAEA,UAAM,WAAW,QAAQ,KAAK,SAAS,gBAAgB;AAGvD,QAAI,UAAU;AACZ,YAAM,EAAE,eAAe,WAAW,IAAI,MAAM,OAAO,sBAAkB;AACrE,oBAAc,WAAW,CAAC;AAAA,IAC5B;AAGA,QAAI,aAAa,mBAAmB;AAClC,UAAI,UAAU;AAEZ,cAAM,EAAE,OAAO,WAAW,IAAI,MAAM,OAAO,eAAoB;AAC/D,cAAM,EAAE,WAAW,IAAI,MAAM,OAAO,sBAAkB;AACtD,cAAM,KAAK,MAAM,OAAO,IAAS;AACjC,cAAM,UAAU,MAAM,OAAO,MAAW;AAExC,cAAM,UAAU,QAAQ,QAAQ,QAAQ,KAAK,CAAC,CAAC;AAC/C,cAAM,iBAAiB,WAAW,OAAO,QAAQ,MAAM;AACvD,WAAG,UAAU,gBAAgB,EAAE,WAAW,KAAK,CAAC;AAChD,cAAM,UAAU,QAAQ,KAAK,gBAAgB,aAAa;AAC1D,cAAM,MAAM,GAAG,SAAS,SAAS,GAAG;AACpC,cAAM,MAAM,GAAG,SAAS,SAAS,GAAG;AAEpC,cAAM,QAAQ,WAAW,QAAQ,UAAU,CAAC,SAAS,gBAAgB,GAAG;AAAA,UACtE,UAAU;AAAA,UACV,OAAO,CAAC,UAAU,KAAK,GAAG;AAAA,UAC1B,KAAK,EAAE,GAAG,QAAQ,KAAK,2BAA2B,IAAI;AAAA,QACxD,CAAC;AACD,WAAG,UAAU,GAAG;AAChB,WAAG,UAAU,GAAG;AAChB,cAAM,MAAM;AACZ,YAAI,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,8BAA8B;AAAA,MAChE,WAAW,CAAC,QAAQ,IAAI,kBAAkB;AAExC,cAAM,EAAE,OAAO,WAAW,IAAI,MAAM,OAAO,eAAoB;AAC/D,cAAM,QAAQ,WAAW,QAAQ,UAAU,QAAQ,KAAK,MAAM,CAAC,GAAG;AAAA,UAChE,OAAO;AAAA,UACP,KAAK,EAAE,GAAG,QAAQ,KAAK,2BAA2B,IAAI;AAAA,QACxD,CAAC;AACD,cAAM,eAAe;AACrB,cAAM,GAAG,QAAQ,CAAC,SAAS,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAClD;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eAAe;AACrB,YAAQ,KAAK,QAAQ;AAAA,EACvB;AAGA,OAAK,iBAAiB,MAAM,SAAS,WAAW,iBAAiB;AAEjE,UAAQ,GAAG,UAAU,MAAM,SAAS,QAAQ,CAAC;AAC7C,UAAQ,GAAG,WAAW,MAAM,SAAS,SAAS,CAAC;AAE/C,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,QAAI,MAAM,EAAE,IAAI,GAAG,oBAAoB;AAAA,EACzC,CAAC;AAED,UAAQ,GAAG,sBAAsB,CAAC,QAAQ;AACxC,QAAI,MAAM,EAAE,IAAI,GAAG,qBAAqB;AAAA,EAC1C,CAAC;AAED,QAAM,KAAK,MAAM;AAEjB,QAAM,gBAAgB,KAAK,cAAc,IAAI;AAC7C,QAAM,kBAAkB,KAAK,SAAS,IAAI,UAAU,KAAK;AACzD,MAAI;AACJ,MAAI,iBAAiB;AACnB,UAAM,cAAc,cAAc,UAAU;AAC5C,mBAAe,IAAI;AAAA,MACjB,KAAK;AAAA,MACL;AAAA,MACA;AAAA,QACE,qBAAqB,aAAa,uBAAuB;AAAA,QACzD,kBAAkB,aAAa,oBAAoB;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAEA,cAAY,IAAI,UAAU,MAAM,OAAO,KAAK,QAAW,YAAY;AACnE,QAAM,UAAU,MAAM;AAGtB,MAAI,iBAAiB;AACnB,QAAI,QAAS,SAAQ,KAAK;AAC1B,UAAM,KAAK,CAAC,QAAgB,QAAQ,IAAI,yBAAoB,GAAG,EAAE;AACjE,OAAG,eAAe;AAClB,OAAG,sBAAsB;AACzB,QAAI,cAAe,IAAG,uBAAkB,cAAc,aAAa,CAAC,EAAE;AACtE,eAAW,CAAC,IAAI,KAAK,KAAK,SAAU,IAAG,GAAG,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,YAAY;AAClG,QAAI,UAAW,IAAG,sBAAsB,OAAO,IAAI,IAAI,EAAE;AACzD,YAAQ,IAAI;AAAA;AAAA,CAA+C;AAC3D,iBAAa;AAAA,EACf;AACA,MAAI,MAAM,EAAE,QAAQ,OAAO,KAAK,OAAO,MAAM,EAAE,GAAG,iBAAiB;AACrE;AAGA,IAAM,oBAAoB,QAAQ,KAAK,CAAC,GAAG,SAAS,SAAS;AAC7D,IAAI,mBAAmB;AACrB,cAAY,EAAE,MAAM,CAAC,QAAQ;AAC3B,QAAI,MAAM,EAAE,IAAI,GAAG,aAAa;AAChC,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AACH;","names":[]}
@@ -3,14 +3,14 @@ import {
3
3
  handleNew,
4
4
  handleNewChat,
5
5
  handleNewSessionButton
6
- } from "./chunk-FZ5BIWG5.js";
7
- import "./chunk-NXEQXRQR.js";
8
- import "./chunk-SM3G6UAX.js";
9
- import "./chunk-ESOPMQAY.js";
6
+ } from "./chunk-JV6XQRAE.js";
7
+ import "./chunk-774Y4RAK.js";
8
+ import "./chunk-BNLGTZ34.js";
9
+ import "./chunk-GAK6PIBW.js";
10
10
  export {
11
11
  executeNewSession,
12
12
  handleNew,
13
13
  handleNewChat,
14
14
  handleNewSessionButton
15
15
  };
16
- //# sourceMappingURL=new-session-PUNUHGYP.js.map
16
+ //# sourceMappingURL=new-session-K6UCWYOP.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-JKBFUAJK.js";
4
4
  import {
5
5
  createChildLogger
6
- } from "./chunk-ESOPMQAY.js";
6
+ } from "./chunk-GAK6PIBW.js";
7
7
 
8
8
  // src/core/post-upgrade.ts
9
9
  var log = createChildLogger({ module: "post-upgrade" });
@@ -11,7 +11,7 @@ async function runPostUpgradeChecks(config) {
11
11
  if (config.tunnel.enabled) {
12
12
  if (config.tunnel.provider === "cloudflare") {
13
13
  try {
14
- const { ensureCloudflared } = await import("./install-cloudflared-G2GUKCHA.js");
14
+ const { ensureCloudflared } = await import("./install-cloudflared-FSILDS5J.js");
15
15
  await ensureCloudflared();
16
16
  } catch (err) {
17
17
  log.warn(
@@ -40,7 +40,7 @@ async function runPostUpgradeChecks(config) {
40
40
  const handoff = integration.items.find((i) => i.id === "handoff");
41
41
  if (handoff?.isInstalled() && !commandExists("jq")) {
42
42
  try {
43
- const { ensureJq } = await import("./install-jq-7QTU7XYY.js");
43
+ const { ensureJq } = await import("./install-jq-P6RUBKPV.js");
44
44
  await ensureJq();
45
45
  } catch (err) {
46
46
  log.warn(
@@ -58,7 +58,7 @@ async function runPostUpgradeChecks(config) {
58
58
  );
59
59
  }
60
60
  try {
61
- const { AgentStore } = await import("./agent-store-ZBXGOFPH.js");
61
+ const { AgentStore } = await import("./agent-store-CGE4G6PA.js");
62
62
  const store = new AgentStore();
63
63
  store.load();
64
64
  const entries = store.getInstalled();
@@ -76,4 +76,4 @@ async function runPostUpgradeChecks(config) {
76
76
  export {
77
77
  runPostUpgradeChecks
78
78
  };
79
- //# sourceMappingURL=post-upgrade-6N4JCV5S.js.map
79
+ //# sourceMappingURL=post-upgrade-62LUHDJO.js.map
@@ -5,9 +5,9 @@ import {
5
5
  handleHandoff,
6
6
  handleSessions,
7
7
  handleStatus
8
- } from "./chunk-TTDSLV35.js";
9
- import "./chunk-SM3G6UAX.js";
10
- import "./chunk-ESOPMQAY.js";
8
+ } from "./chunk-4CTX774K.js";
9
+ import "./chunk-BNLGTZ34.js";
10
+ import "./chunk-GAK6PIBW.js";
11
11
  export {
12
12
  executeCancelSession,
13
13
  handleCancel,
@@ -16,4 +16,4 @@ export {
16
16
  handleSessions,
17
17
  handleStatus
18
18
  };
19
- //# sourceMappingURL=session-ZMAM67AA.js.map
19
+ //# sourceMappingURL=session-O6ZPLJIZ.js.map
@@ -2,12 +2,12 @@ import {
2
2
  handleSettings,
3
3
  handleSettingsButton,
4
4
  showSettingsInfo
5
- } from "./chunk-IER5UCY7.js";
5
+ } from "./chunk-YQRF3IOR.js";
6
6
  import "./chunk-F3AICYO4.js";
7
- import "./chunk-ESOPMQAY.js";
7
+ import "./chunk-GAK6PIBW.js";
8
8
  export {
9
9
  handleSettings,
10
10
  handleSettingsButton,
11
11
  showSettingsInfo
12
12
  };
13
- //# sourceMappingURL=settings-OEQEZS5Y.js.map
13
+ //# sourceMappingURL=settings-RRF77IC4.js.map
@@ -12,10 +12,10 @@ import {
12
12
  validateBotToken,
13
13
  validateChatId,
14
14
  validateDiscordToken
15
- } from "./chunk-G3OHCXZG.js";
15
+ } from "./chunk-N6E3HE42.js";
16
16
  import "./chunk-JKBFUAJK.js";
17
- import "./chunk-EWYNCHUH.js";
18
- import "./chunk-ESOPMQAY.js";
17
+ import "./chunk-L5KZXYJD.js";
18
+ import "./chunk-GAK6PIBW.js";
19
19
  export {
20
20
  detectAgents,
21
21
  printStartBanner,
@@ -31,4 +31,4 @@ export {
31
31
  validateChatId,
32
32
  validateDiscordToken
33
33
  };
34
- //# sourceMappingURL=setup-7YBFKRG7.js.map
34
+ //# sourceMappingURL=setup-D6BU36ZL.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-JKBFUAJK.js";
4
4
  import {
5
5
  createChildLogger
6
- } from "./chunk-ESOPMQAY.js";
6
+ } from "./chunk-GAK6PIBW.js";
7
7
 
8
8
  // src/tunnel/tunnel-service.ts
9
9
  import { serve } from "@hono/node-server";
@@ -31,7 +31,7 @@ var CloudflareTunnelProvider = class {
31
31
  if (!binaryPath) {
32
32
  log.warn("cloudflared not found locally, attempting auto-install as fallback...");
33
33
  try {
34
- const { ensureCloudflared } = await import("./install-cloudflared-G2GUKCHA.js");
34
+ const { ensureCloudflared } = await import("./install-cloudflared-FSILDS5J.js");
35
35
  binaryPath = await ensureCloudflared();
36
36
  } catch (err) {
37
37
  throw new Error(`cloudflared is not installed and auto-install failed: ${err.message}`);
@@ -1170,4 +1170,4 @@ var TunnelService = class {
1170
1170
  export {
1171
1171
  TunnelService
1172
1172
  };
1173
- //# sourceMappingURL=tunnel-service-BMIBHUBK.js.map
1173
+ //# sourceMappingURL=tunnel-service-NJJH4I26.js.map
@@ -4,7 +4,7 @@ import {
4
4
  getCurrentVersion,
5
5
  getLatestVersion,
6
6
  runUpdate
7
- } from "./chunk-EVFJW45N.js";
7
+ } from "./chunk-S64CB6J3.js";
8
8
  export {
9
9
  checkAndPromptUpdate,
10
10
  compareVersions,
@@ -12,4 +12,4 @@ export {
12
12
  getLatestVersion,
13
13
  runUpdate
14
14
  };
15
- //# sourceMappingURL=version-ALWGGVKM.js.map
15
+ //# sourceMappingURL=version-AXXV6IV2.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openacp/cli",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "Self-hosted bridge for AI coding agents via ACP protocol",
5
5
  "type": "module",
6
6
  "bin": {
@@ -23,8 +23,8 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@agentclientprotocol/sdk": "^0.16.0",
26
+ "@clack/prompts": "^1.1.0",
26
27
  "@hono/node-server": "^1.19.11",
27
- "@inquirer/prompts": "^8.3.2",
28
28
  "@zed-industries/claude-agent-acp": "^0.22.2",
29
29
  "diff": "^8.0.3",
30
30
  "discord.js": "^14.25.1",
@@ -35,6 +35,7 @@
35
35
  "nanoid": "^5.0.0",
36
36
  "node-wav": "^0.0.2",
37
37
  "ogg-opus-decoder": "^1.7.3",
38
+ "ora": "^9.3.0",
38
39
  "pino": "^10.3.1",
39
40
  "pino-pretty": "^13.1.3",
40
41
  "pino-roll": "^4.0.0",