@openacp/cli 0.6.8 → 0.6.10

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 (99) hide show
  1. package/README.md +100 -154
  2. package/dist/{action-detect-6M5GCGAU.js → action-detect-P7ZE4NEM.js} +2 -1
  3. package/dist/{adapter-7GY3N4ZH.js → adapter-ZOANORGM.js} +8 -7
  4. package/dist/{adapter-7GY3N4ZH.js.map → adapter-ZOANORGM.js.map} +1 -1
  5. package/dist/{admin-2HAFXQBG.js → admin-6SYB6XCZ.js} +2 -1
  6. package/dist/{agent-catalog-SBZQRYOD.js → agent-catalog-FC3HGDEQ.js} +2 -1
  7. package/dist/{agent-dependencies-QY5QSULV.js → agent-dependencies-4OWBMZWZ.js} +2 -1
  8. package/dist/{agent-registry-KZFSIRSJ.js → agent-registry-WT4NXPYG.js} +2 -1
  9. package/dist/{agent-store-CGE4G6PA.js → agent-store-VZLFPTZU.js} +2 -1
  10. package/dist/{agents-QJPHNWK2.js → agents-QO7DKARJ.js} +2 -1
  11. package/dist/{api-client-BH2JFHQW.js → api-client-CFQT5U7D.js} +2 -1
  12. package/dist/{autostart-6M3FZAKW.js → autostart-X33OGMX6.js} +2 -1
  13. package/dist/{chunk-RHE2JSYE.js → chunk-2HMQOC7N.js} +2 -2
  14. package/dist/{chunk-SHHMBGB3.js → chunk-33RP6K2O.js} +2 -2
  15. package/dist/{chunk-5SXG7X5D.js → chunk-CS3KCJ5D.js} +103 -55
  16. package/dist/chunk-CS3KCJ5D.js.map +1 -0
  17. package/dist/{chunk-47B7GNOE.js → chunk-LCRLAV4G.js} +541 -191
  18. package/dist/chunk-LCRLAV4G.js.map +1 -0
  19. package/dist/{chunk-LO4Y5WQ7.js → chunk-LGP2YGRL.js} +7 -7
  20. package/dist/{chunk-LO4Y5WQ7.js.map → chunk-LGP2YGRL.js.map} +1 -1
  21. package/dist/{chunk-MZXWCDBU.js → chunk-MKHUZLII.js} +4 -4
  22. package/dist/chunk-MKHUZLII.js.map +1 -0
  23. package/dist/{chunk-YEOY2PBJ.js → chunk-NVPG6JCL.js} +3 -3
  24. package/dist/{chunk-JUYDFUSN.js → chunk-OWP7RZ62.js} +38 -14
  25. package/dist/chunk-OWP7RZ62.js.map +1 -0
  26. package/dist/{chunk-5OVPEDUB.js → chunk-VOIJ6OY4.js} +2 -2
  27. package/dist/chunk-VUNV25KB.js +16 -0
  28. package/dist/{chunk-2J2RBYWN.js → chunk-WTZDAYZX.js} +2 -2
  29. package/dist/cli.js +53 -47
  30. package/dist/cli.js.map +1 -1
  31. package/dist/{config-CQAS6YHR.js → config-6S355X75.js} +3 -2
  32. package/dist/config-editor-QQTZMWGD.js +13 -0
  33. package/dist/{config-registry-HDXFES2D.js → config-registry-AHYI4MYL.js} +2 -1
  34. package/dist/{daemon-K33ZPSEZ.js → daemon-4CS6HMB5.js} +4 -3
  35. package/dist/{discord-VOHXRTCH.js → discord-OMC52Y54.js} +251 -94
  36. package/dist/discord-OMC52Y54.js.map +1 -0
  37. package/dist/dist-UHQK5CXN.js +21151 -0
  38. package/dist/dist-UHQK5CXN.js.map +1 -0
  39. package/dist/doctor-HZZ5BSHB.js +10 -0
  40. package/dist/{doctor-HASEBMUD.js → doctor-OLYBO3V3.js} +5 -4
  41. package/dist/index.js +11 -10
  42. package/dist/{install-cloudflared-FSILDS5J.js → install-cloudflared-Z7VCGOVG.js} +2 -1
  43. package/dist/{install-cloudflared-FSILDS5J.js.map → install-cloudflared-Z7VCGOVG.js.map} +1 -1
  44. package/dist/{install-jq-P6RUBKPV.js → install-jq-HUYSQWKR.js} +2 -1
  45. package/dist/{install-jq-P6RUBKPV.js.map → install-jq-HUYSQWKR.js.map} +1 -1
  46. package/dist/{integrate-O4OCR4SN.js → integrate-PNEHRY2I.js} +2 -1
  47. package/dist/{integrate-O4OCR4SN.js.map → integrate-PNEHRY2I.js.map} +1 -1
  48. package/dist/{log-RCVBXLTN.js → log-NXABYJTT.js} +2 -1
  49. package/dist/{main-DUXVFTDD.js → main-XOZCLFUK.js} +21 -20
  50. package/dist/main-XOZCLFUK.js.map +1 -0
  51. package/dist/{menu-XR2GET2B.js → menu-YY5MKHEK.js} +2 -1
  52. package/dist/{new-session-NHK7TOEW.js → new-session-FEO4J4VU.js} +2 -1
  53. package/dist/{post-upgrade-62LUHDJO.js → post-upgrade-CJG5I7M2.js} +6 -5
  54. package/dist/{post-upgrade-62LUHDJO.js.map → post-upgrade-CJG5I7M2.js.map} +1 -1
  55. package/dist/{session-O6ZPLJIZ.js → session-IUSI7P5S.js} +2 -1
  56. package/dist/{settings-6TF4WIGJ.js → settings-RQPAM4KC.js} +2 -1
  57. package/dist/{setup-RJCEB6FS.js → setup-XHS4OMPM.js} +6 -3
  58. package/dist/{suggest-RST5VOHB.js → suggest-7D6B542M.js} +3 -1
  59. package/dist/{suggest-RST5VOHB.js.map → suggest-7D6B542M.js.map} +1 -1
  60. package/dist/{tunnel-service-NJJH4I26.js → tunnel-service-CJLUH6SZ.js} +3 -2
  61. package/dist/{tunnel-service-NJJH4I26.js.map → tunnel-service-CJLUH6SZ.js.map} +1 -1
  62. package/dist/{version-AXXV6IV2.js → version-NQZBM5M7.js} +2 -1
  63. package/dist/version-NQZBM5M7.js.map +1 -0
  64. package/package.json +15 -1
  65. package/dist/chunk-47B7GNOE.js.map +0 -1
  66. package/dist/chunk-5SXG7X5D.js.map +0 -1
  67. package/dist/chunk-JUYDFUSN.js.map +0 -1
  68. package/dist/chunk-MZXWCDBU.js.map +0 -1
  69. package/dist/config-editor-37BM56WF.js +0 -12
  70. package/dist/discord-VOHXRTCH.js.map +0 -1
  71. package/dist/doctor-W4VGLDVM.js +0 -9
  72. package/dist/main-DUXVFTDD.js.map +0 -1
  73. /package/dist/{action-detect-6M5GCGAU.js.map → action-detect-P7ZE4NEM.js.map} +0 -0
  74. /package/dist/{admin-2HAFXQBG.js.map → admin-6SYB6XCZ.js.map} +0 -0
  75. /package/dist/{agent-catalog-SBZQRYOD.js.map → agent-catalog-FC3HGDEQ.js.map} +0 -0
  76. /package/dist/{agent-dependencies-QY5QSULV.js.map → agent-dependencies-4OWBMZWZ.js.map} +0 -0
  77. /package/dist/{agent-registry-KZFSIRSJ.js.map → agent-registry-WT4NXPYG.js.map} +0 -0
  78. /package/dist/{agent-store-CGE4G6PA.js.map → agent-store-VZLFPTZU.js.map} +0 -0
  79. /package/dist/{agents-QJPHNWK2.js.map → agents-QO7DKARJ.js.map} +0 -0
  80. /package/dist/{api-client-BH2JFHQW.js.map → api-client-CFQT5U7D.js.map} +0 -0
  81. /package/dist/{autostart-6M3FZAKW.js.map → autostart-X33OGMX6.js.map} +0 -0
  82. /package/dist/{chunk-RHE2JSYE.js.map → chunk-2HMQOC7N.js.map} +0 -0
  83. /package/dist/{chunk-SHHMBGB3.js.map → chunk-33RP6K2O.js.map} +0 -0
  84. /package/dist/{chunk-YEOY2PBJ.js.map → chunk-NVPG6JCL.js.map} +0 -0
  85. /package/dist/{chunk-5OVPEDUB.js.map → chunk-VOIJ6OY4.js.map} +0 -0
  86. /package/dist/{config-CQAS6YHR.js.map → chunk-VUNV25KB.js.map} +0 -0
  87. /package/dist/{chunk-2J2RBYWN.js.map → chunk-WTZDAYZX.js.map} +0 -0
  88. /package/dist/{config-editor-37BM56WF.js.map → config-6S355X75.js.map} +0 -0
  89. /package/dist/{config-registry-HDXFES2D.js.map → config-editor-QQTZMWGD.js.map} +0 -0
  90. /package/dist/{daemon-K33ZPSEZ.js.map → config-registry-AHYI4MYL.js.map} +0 -0
  91. /package/dist/{doctor-HASEBMUD.js.map → daemon-4CS6HMB5.js.map} +0 -0
  92. /package/dist/{doctor-W4VGLDVM.js.map → doctor-HZZ5BSHB.js.map} +0 -0
  93. /package/dist/{log-RCVBXLTN.js.map → doctor-OLYBO3V3.js.map} +0 -0
  94. /package/dist/{menu-XR2GET2B.js.map → log-NXABYJTT.js.map} +0 -0
  95. /package/dist/{new-session-NHK7TOEW.js.map → menu-YY5MKHEK.js.map} +0 -0
  96. /package/dist/{session-O6ZPLJIZ.js.map → new-session-FEO4J4VU.js.map} +0 -0
  97. /package/dist/{settings-6TF4WIGJ.js.map → session-IUSI7P5S.js.map} +0 -0
  98. /package/dist/{setup-RJCEB6FS.js.map → settings-RQPAM4KC.js.map} +0 -0
  99. /package/dist/{version-AXXV6IV2.js.map → setup-XHS4OMPM.js.map} +0 -0
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  PRODUCT_GUIDE,
3
- STATUS_ICONS,
4
3
  dispatchMessage,
5
4
  evaluateNoise,
6
5
  extractContentText,
@@ -8,13 +7,21 @@ import {
8
7
  formatToolSummary,
9
8
  formatToolTitle,
10
9
  progressBar,
10
+ resolveToolIcon,
11
11
  splitMessage,
12
12
  stripCodeFences,
13
13
  truncateContent
14
- } from "./chunk-JUYDFUSN.js";
14
+ } from "./chunk-OWP7RZ62.js";
15
+ import {
16
+ CheckpointReader,
17
+ DEFAULT_MAX_TOKENS
18
+ } from "./chunk-LGP2YGRL.js";
19
+ import {
20
+ ChannelAdapter
21
+ } from "./chunk-LBIKITQT.js";
15
22
  import {
16
23
  DoctorEngine
17
- } from "./chunk-YEOY2PBJ.js";
24
+ } from "./chunk-NVPG6JCL.js";
18
25
  import {
19
26
  buildMenuKeyboard,
20
27
  buildSkillMessages,
@@ -22,13 +29,6 @@ import {
22
29
  handleHelp,
23
30
  handleMenu
24
31
  } from "./chunk-7QJS2XBD.js";
25
- import {
26
- CheckpointReader,
27
- DEFAULT_MAX_TOKENS
28
- } from "./chunk-LO4Y5WQ7.js";
29
- import {
30
- ChannelAdapter
31
- } from "./chunk-LBIKITQT.js";
32
32
  import {
33
33
  getConfigValue,
34
34
  getSafeFields,
@@ -118,33 +118,43 @@ function markdownToTelegramHtml(md) {
118
118
  return text;
119
119
  }
120
120
  function formatToolCall(tool, verbosity = "medium") {
121
- const si = STATUS_ICONS[tool.status || ""] || "\u{1F527}";
121
+ const si = resolveToolIcon(tool);
122
122
  const name = tool.name || "Tool";
123
- const label = verbosity === "low" ? formatToolTitle(name, tool.rawInput) : formatToolSummary(name, tool.rawInput);
123
+ const label = verbosity === "low" ? formatToolTitle(name, tool.rawInput, tool.displayTitle) : formatToolSummary(name, tool.rawInput, tool.displaySummary);
124
124
  let text = `${si} <b>${escapeHtml(label)}</b>`;
125
125
  text += formatViewerLinks(tool.viewerLinks, tool.viewerFilePath);
126
- if (verbosity === "high" || verbosity === "medium" && !tool.viewerLinks) {
127
- const details = stripCodeFences(extractContentText(tool.content));
128
- if (details) {
129
- text += `
130
- <pre>${escapeHtml(truncateContent(details, 3800))}</pre>`;
131
- }
126
+ if (verbosity === "high") {
127
+ text += formatHighDetails(tool.rawInput, tool.content, 3800);
132
128
  }
133
129
  return text;
134
130
  }
135
131
  function formatToolUpdate(update, verbosity = "medium") {
136
- const si = STATUS_ICONS[update.status] || "\u{1F527}";
132
+ const si = resolveToolIcon(update);
137
133
  const name = update.name || "Tool";
138
- const label = verbosity === "low" ? formatToolTitle(name, update.rawInput) : formatToolSummary(name, update.rawInput);
134
+ const label = verbosity === "low" ? formatToolTitle(name, update.rawInput, update.displayTitle) : formatToolSummary(name, update.rawInput, update.displaySummary);
139
135
  let text = `${si} <b>${escapeHtml(label)}</b>`;
140
136
  text += formatViewerLinks(update.viewerLinks, update.viewerFilePath);
141
- if (verbosity === "high" || verbosity === "medium" && !update.viewerLinks) {
142
- const details = stripCodeFences(extractContentText(update.content));
143
- if (details) {
137
+ if (verbosity === "high") {
138
+ text += formatHighDetails(update.rawInput, update.content, 3800);
139
+ }
140
+ return text;
141
+ }
142
+ function formatHighDetails(rawInput, content, maxLen) {
143
+ let text = "";
144
+ if (rawInput) {
145
+ const inputStr = typeof rawInput === "string" ? rawInput : JSON.stringify(rawInput, null, 2);
146
+ if (inputStr && inputStr !== "{}") {
144
147
  text += `
145
- <pre>${escapeHtml(truncateContent(details, 3800))}</pre>`;
148
+ <b>Input:</b>
149
+ <pre>${escapeHtml(truncateContent(inputStr, maxLen))}</pre>`;
146
150
  }
147
151
  }
152
+ const details = stripCodeFences(extractContentText(content));
153
+ if (details) {
154
+ text += `
155
+ <b>Output:</b>
156
+ <pre>${escapeHtml(truncateContent(details, maxLen))}</pre>`;
157
+ }
148
158
  return text;
149
159
  }
150
160
  function formatViewerLinks(links, filePath) {
@@ -159,16 +169,23 @@ function formatViewerLinks(links, filePath) {
159
169
  \u{1F4DD} <a href="${escapeHtml(links.diff)}">View diff${fileName ? ` \u2014 ${escapeHtml(fileName)}` : ""}</a>`;
160
170
  return text;
161
171
  }
162
- function formatUsage(usage) {
163
- const { tokensUsed, contextSize } = usage;
172
+ function formatUsage(usage, verbosity = "medium") {
173
+ const { tokensUsed, contextSize, cost } = usage;
164
174
  if (tokensUsed == null) return "\u{1F4CA} Usage data unavailable";
175
+ if (verbosity === "medium") {
176
+ const costStr = cost != null ? ` \xB7 $${cost.toFixed(2)}` : "";
177
+ return `\u{1F4CA} ${formatTokens(tokensUsed)} tokens${costStr}`;
178
+ }
165
179
  if (contextSize == null) return `\u{1F4CA} ${formatTokens(tokensUsed)} tokens`;
166
180
  const ratio = tokensUsed / contextSize;
167
181
  const pct = Math.round(ratio * 100);
168
182
  const bar = progressBar(ratio);
169
183
  const emoji = pct >= 85 ? "\u26A0\uFE0F" : "\u{1F4CA}";
170
- return `${emoji} ${formatTokens(tokensUsed)} / ${formatTokens(contextSize)} tokens
184
+ let text = `${emoji} ${formatTokens(tokensUsed)} / ${formatTokens(contextSize)} tokens
171
185
  ${bar} ${pct}%`;
186
+ if (cost != null) text += `
187
+ \u{1F4B0} $${cost.toFixed(2)}`;
188
+ return text;
172
189
  }
173
190
  var PERIOD_LABEL = {
174
191
  today: "Today",
@@ -503,7 +520,7 @@ async function handleUpdate(ctx, core) {
503
520
  );
504
521
  return;
505
522
  }
506
- const { getCurrentVersion, getLatestVersion, compareVersions, runUpdate } = await import("./version-AXXV6IV2.js");
523
+ const { getCurrentVersion, getLatestVersion, compareVersions, runUpdate } = await import("./version-NQZBM5M7.js");
507
524
  const current = getCurrentVersion();
508
525
  const statusMsg = await ctx.reply(
509
526
  `\u{1F50D} Checking for updates... (current: v${escapeHtml(current)})`,
@@ -1581,10 +1598,10 @@ Downloading... ${bar} ${percent}%`, { parse_mode: "HTML" });
1581
1598
  };
1582
1599
  const result = await catalog.install(nameOrId, progress);
1583
1600
  if (result.ok) {
1584
- const { getAgentCapabilities } = await import("./agent-dependencies-QY5QSULV.js");
1601
+ const { getAgentCapabilities } = await import("./agent-dependencies-4OWBMZWZ.js");
1585
1602
  const caps = getAgentCapabilities(result.agentKey);
1586
1603
  if (caps.integration) {
1587
- const { installIntegration } = await import("./integrate-O4OCR4SN.js");
1604
+ const { installIntegration } = await import("./integrate-PNEHRY2I.js");
1588
1605
  const intResult = await installIntegration(result.agentKey, caps.integration);
1589
1606
  if (intResult.success) {
1590
1607
  try {
@@ -1654,7 +1671,7 @@ function buildProgressBar(percent) {
1654
1671
  // src/adapters/telegram/commands/integrate.ts
1655
1672
  import { InlineKeyboard as InlineKeyboard5 } from "grammy";
1656
1673
  async function handleIntegrate(ctx, _core) {
1657
- const { listIntegrations } = await import("./integrate-O4OCR4SN.js");
1674
+ const { listIntegrations } = await import("./integrate-PNEHRY2I.js");
1658
1675
  const agents = listIntegrations();
1659
1676
  const keyboard = new InlineKeyboard5();
1660
1677
  for (const agent of agents) {
@@ -1687,7 +1704,7 @@ function setupIntegrateCallbacks(bot, core) {
1687
1704
  } catch {
1688
1705
  }
1689
1706
  if (data === "i:back") {
1690
- const { listIntegrations } = await import("./integrate-O4OCR4SN.js");
1707
+ const { listIntegrations } = await import("./integrate-PNEHRY2I.js");
1691
1708
  const agents = listIntegrations();
1692
1709
  const keyboard2 = new InlineKeyboard5();
1693
1710
  for (const agent of agents) {
@@ -1707,7 +1724,7 @@ Select an agent to manage its integrations.`,
1707
1724
  const agentMatch = data.match(/^i:agent:(.+)$/);
1708
1725
  if (agentMatch) {
1709
1726
  const agentName2 = agentMatch[1];
1710
- const { getIntegration: getIntegration2 } = await import("./integrate-O4OCR4SN.js");
1727
+ const { getIntegration: getIntegration2 } = await import("./integrate-PNEHRY2I.js");
1711
1728
  const integration2 = getIntegration2(agentName2);
1712
1729
  if (!integration2) {
1713
1730
  await ctx.reply(`\u274C No integration available for '${escapeHtml(agentName2)}'.`, { parse_mode: "HTML" });
@@ -1734,7 +1751,7 @@ ${integration2.items.map((i) => `\u2022 <b>${escapeHtml(i.name)}</b> \u2014 ${es
1734
1751
  const action = actionMatch[1];
1735
1752
  const agentName = actionMatch[2];
1736
1753
  const itemId = actionMatch[3];
1737
- const { getIntegration } = await import("./integrate-O4OCR4SN.js");
1754
+ const { getIntegration } = await import("./integrate-PNEHRY2I.js");
1738
1755
  const integration = getIntegration(agentName);
1739
1756
  if (!integration) return;
1740
1757
  const item = integration.items.find((i) => i.id === itemId);
@@ -2218,7 +2235,7 @@ Tap to change:`, {
2218
2235
  await ctx.answerCallbackQuery();
2219
2236
  } catch {
2220
2237
  }
2221
- const { buildMenuKeyboard: buildMenuKeyboard3 } = await import("./menu-XR2GET2B.js");
2238
+ const { buildMenuKeyboard: buildMenuKeyboard3 } = await import("./menu-YY5MKHEK.js");
2222
2239
  try {
2223
2240
  await ctx.editMessageText(`<b>OpenACP Menu</b>
2224
2241
  Choose an action:`, {
@@ -2975,11 +2992,15 @@ var ThinkingIndicator = class {
2975
2992
  const elapsed = Math.round((Date.now() - this.showTime) / 1e3);
2976
2993
  this.sendQueue.enqueue(() => {
2977
2994
  if (this.dismissed) return Promise.resolve(void 0);
2978
- return this.api.sendMessage(this.chatId, `\u{1F4AD} <i>Still thinking... (${elapsed}s)</i>`, {
2979
- message_thread_id: this.threadId,
2980
- parse_mode: "HTML",
2981
- disable_notification: true
2982
- });
2995
+ return this.api.sendMessage(
2996
+ this.chatId,
2997
+ `\u{1F4AD} <i>Still thinking... (${elapsed}s)</i>`,
2998
+ {
2999
+ message_thread_id: this.threadId,
3000
+ parse_mode: "HTML",
3001
+ disable_notification: true
3002
+ }
3003
+ );
2983
3004
  }).then((result) => {
2984
3005
  if (result && !this.dismissed) {
2985
3006
  this.msgId = result.message_id;
@@ -3003,8 +3024,8 @@ var UsageMessage = class {
3003
3024
  this.sendQueue = sendQueue;
3004
3025
  }
3005
3026
  msgId;
3006
- async send(usage) {
3007
- const text = formatUsage(usage);
3027
+ async send(usage, verbosity = "medium") {
3028
+ const text = formatUsage(usage, verbosity);
3008
3029
  try {
3009
3030
  if (this.msgId) {
3010
3031
  await this.sendQueue.enqueue(
@@ -3034,13 +3055,19 @@ var UsageMessage = class {
3034
3055
  const id = this.msgId;
3035
3056
  this.msgId = void 0;
3036
3057
  try {
3037
- await this.sendQueue.enqueue(() => this.api.deleteMessage(this.chatId, id));
3058
+ await this.sendQueue.enqueue(
3059
+ () => this.api.deleteMessage(this.chatId, id)
3060
+ );
3038
3061
  } catch (err) {
3039
3062
  log10.warn({ err }, "UsageMessage.delete() failed");
3040
3063
  }
3041
3064
  }
3042
3065
  };
3043
- function formatPlanCard(entries) {
3066
+ function formatPlanCard(entries, verbosity = "medium") {
3067
+ if (verbosity === "medium") {
3068
+ const done2 = entries.filter((e) => e.status === "completed").length;
3069
+ return `\u{1F4CB} <b>Plan:</b> ${done2}/${entries.length} steps completed`;
3070
+ }
3044
3071
  const statusIcon = {
3045
3072
  completed: "\u2705",
3046
3073
  in_progress: "\u{1F504}",
@@ -3073,6 +3100,10 @@ var PlanCard = class {
3073
3100
  latestEntries;
3074
3101
  lastSentText;
3075
3102
  flushTimer;
3103
+ verbosity = "medium";
3104
+ setVerbosity(v) {
3105
+ this.verbosity = v;
3106
+ }
3076
3107
  update(entries) {
3077
3108
  this.latestEntries = entries;
3078
3109
  if (this.flushTimer) clearTimeout(this.flushTimer);
@@ -3101,7 +3132,7 @@ var PlanCard = class {
3101
3132
  }
3102
3133
  async _flush() {
3103
3134
  if (!this.latestEntries) return;
3104
- const text = formatPlanCard(this.latestEntries);
3135
+ const text = formatPlanCard(this.latestEntries, this.verbosity);
3105
3136
  if (this.msgId && text === this.lastSentText) return;
3106
3137
  this.lastSentText = text;
3107
3138
  try {
@@ -3151,10 +3182,11 @@ var ActivityTracker = class {
3151
3182
  await this._firstEventGuard();
3152
3183
  await this.thinking.show();
3153
3184
  }
3154
- async onPlan(entries) {
3185
+ async onPlan(entries, verbosity) {
3155
3186
  await this._firstEventGuard();
3156
3187
  this.thinking.dismiss();
3157
3188
  this.hasPlanCard = true;
3189
+ if (verbosity) this.planCard.setVerbosity(verbosity);
3158
3190
  this.planCard.update(entries);
3159
3191
  }
3160
3192
  async onToolCall() {
@@ -3166,8 +3198,8 @@ var ActivityTracker = class {
3166
3198
  await this._firstEventGuard();
3167
3199
  this.thinking.dismiss();
3168
3200
  }
3169
- async sendUsage(data) {
3170
- await this.usage.send(data);
3201
+ async sendUsage(data, verbosity = "medium") {
3202
+ await this.usage.send(data, verbosity);
3171
3203
  }
3172
3204
  getUsageMsgId() {
3173
3205
  return this.usage.getMsgId();
@@ -4092,7 +4124,7 @@ var TelegramAdapter = class extends ChannelAdapter {
4092
4124
  });
4093
4125
  return;
4094
4126
  }
4095
- const { getAgentCapabilities } = await import("./agent-registry-KZFSIRSJ.js");
4127
+ const { getAgentCapabilities } = await import("./agent-registry-WT4NXPYG.js");
4096
4128
  const caps = getAgentCapabilities(agentName);
4097
4129
  if (!caps.supportsResume || !caps.resumeCommand) {
4098
4130
  await ctx.reply("This agent does not support session transfer.", {
@@ -4355,7 +4387,10 @@ var TelegramAdapter = class extends ChannelAdapter {
4355
4387
  content: meta.content,
4356
4388
  rawInput: meta.rawInput,
4357
4389
  viewerLinks: meta.viewerLinks,
4358
- viewerFilePath: meta.viewerFilePath
4390
+ viewerFilePath: meta.viewerFilePath,
4391
+ displaySummary: meta.displaySummary,
4392
+ displayTitle: meta.displayTitle,
4393
+ displayKind: meta.displayKind
4359
4394
  },
4360
4395
  this.verbosity
4361
4396
  );
@@ -4372,7 +4407,10 @@ var TelegramAdapter = class extends ChannelAdapter {
4372
4407
  content: meta.content,
4373
4408
  rawInput: meta.rawInput,
4374
4409
  viewerLinks: meta.viewerLinks,
4375
- viewerFilePath: meta.viewerFilePath
4410
+ viewerFilePath: meta.viewerFilePath,
4411
+ displaySummary: meta.displaySummary,
4412
+ displayTitle: meta.displayTitle,
4413
+ displayKind: meta.displayKind
4376
4414
  },
4377
4415
  this.verbosity
4378
4416
  );
@@ -4386,7 +4424,8 @@ var TelegramAdapter = class extends ChannelAdapter {
4386
4424
  content: e.content,
4387
4425
  status: e.status,
4388
4426
  priority: e.priority ?? "medium"
4389
- }))
4427
+ })),
4428
+ this.verbosity
4390
4429
  );
4391
4430
  },
4392
4431
  onUsage: async (ctx, content) => {
@@ -4396,7 +4435,7 @@ var TelegramAdapter = class extends ChannelAdapter {
4396
4435
  this.assistantSession?.id
4397
4436
  );
4398
4437
  const tracker = this.getOrCreateTracker(ctx.sessionId, ctx.threadId);
4399
- await tracker.sendUsage(meta ?? {});
4438
+ await tracker.sendUsage(meta ?? {}, this.verbosity);
4400
4439
  if (this.notificationTopicId && ctx.sessionId !== this.assistantSession?.id) {
4401
4440
  const sess = this.core.sessionManager.getSession(ctx.sessionId);
4402
4441
  const sessionName = sess?.name || "Session";
@@ -4592,7 +4631,16 @@ Task completed.
4592
4631
 
4593
4632
  <a href="${deepLink}">\u2192 Go to topic</a>`;
4594
4633
  }
4595
- const replyMarkup = notification.type === "completed" ? { inline_keyboard: [[{ text: "\u{1F4CB} Summary", callback_data: `sm:summary:${notification.sessionId}` }]] } : void 0;
4634
+ const replyMarkup = notification.type === "completed" ? {
4635
+ inline_keyboard: [
4636
+ [
4637
+ {
4638
+ text: "\u{1F4CB} Summary",
4639
+ callback_data: `sm:summary:${notification.sessionId}`
4640
+ }
4641
+ ]
4642
+ ]
4643
+ } : void 0;
4596
4644
  await this.sendQueue.enqueue(
4597
4645
  () => this.bot.api.sendMessage(this.telegramConfig.chatId, text, {
4598
4646
  message_thread_id: this.notificationTopicId,
@@ -4737,4 +4785,4 @@ Task completed.
4737
4785
  export {
4738
4786
  TelegramAdapter
4739
4787
  };
4740
- //# sourceMappingURL=chunk-5SXG7X5D.js.map
4788
+ //# sourceMappingURL=chunk-CS3KCJ5D.js.map