@songsid/agend 2.1.1-beta.2 → 2.1.1-beta.21

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 (156) hide show
  1. package/README.md +1 -0
  2. package/README.zh-TW.md +1 -0
  3. package/dist/access-path.js +15 -6
  4. package/dist/access-path.js.map +1 -1
  5. package/dist/agent-cli-instructions.md +9 -0
  6. package/dist/backend/antigravity.d.ts +4 -1
  7. package/dist/backend/antigravity.js +24 -13
  8. package/dist/backend/antigravity.js.map +1 -1
  9. package/dist/backend/claude-code.d.ts +37 -0
  10. package/dist/backend/claude-code.js +47 -8
  11. package/dist/backend/claude-code.js.map +1 -1
  12. package/dist/backend/codex.d.ts +17 -0
  13. package/dist/backend/codex.js +279 -62
  14. package/dist/backend/codex.js.map +1 -1
  15. package/dist/backend/gemini-cli.js +4 -7
  16. package/dist/backend/gemini-cli.js.map +1 -1
  17. package/dist/backend/grok.d.ts +24 -0
  18. package/dist/backend/grok.js +57 -8
  19. package/dist/backend/grok.js.map +1 -1
  20. package/dist/backend/kiro.d.ts +27 -0
  21. package/dist/backend/kiro.js +96 -15
  22. package/dist/backend/kiro.js.map +1 -1
  23. package/dist/backend/opencode.js +4 -7
  24. package/dist/backend/opencode.js.map +1 -1
  25. package/dist/backend/types.d.ts +44 -0
  26. package/dist/backend/types.js +3 -3
  27. package/dist/backend/types.js.map +1 -1
  28. package/dist/channel/adapters/discord.d.ts +15 -0
  29. package/dist/channel/adapters/discord.js +94 -6
  30. package/dist/channel/adapters/discord.js.map +1 -1
  31. package/dist/channel/adapters/telegram.d.ts +21 -0
  32. package/dist/channel/adapters/telegram.js +132 -15
  33. package/dist/channel/adapters/telegram.js.map +1 -1
  34. package/dist/channel/ipc-bridge.d.ts +17 -1
  35. package/dist/channel/ipc-bridge.js +53 -17
  36. package/dist/channel/ipc-bridge.js.map +1 -1
  37. package/dist/channel/ipc-timeouts.d.ts +40 -0
  38. package/dist/channel/ipc-timeouts.js +58 -0
  39. package/dist/channel/ipc-timeouts.js.map +1 -0
  40. package/dist/channel/mcp-server.js +30 -14
  41. package/dist/channel/mcp-server.js.map +1 -1
  42. package/dist/channel/mcp-tools.js +28 -1
  43. package/dist/channel/mcp-tools.js.map +1 -1
  44. package/dist/channel/message-queue.d.ts +1 -0
  45. package/dist/channel/message-queue.js +49 -17
  46. package/dist/channel/message-queue.js.map +1 -1
  47. package/dist/channel/reconnect-backoff.d.ts +17 -0
  48. package/dist/channel/reconnect-backoff.js +21 -0
  49. package/dist/channel/reconnect-backoff.js.map +1 -0
  50. package/dist/channel/types.d.ts +29 -0
  51. package/dist/classic-channel-manager.js +1 -5
  52. package/dist/classic-channel-manager.js.map +1 -1
  53. package/dist/cli.js +148 -60
  54. package/dist/cli.js.map +1 -1
  55. package/dist/completion.d.ts +27 -0
  56. package/dist/completion.js +121 -0
  57. package/dist/completion.js.map +1 -0
  58. package/dist/config-validator.js +27 -0
  59. package/dist/config-validator.js.map +1 -1
  60. package/dist/config.js +6 -0
  61. package/dist/config.js.map +1 -1
  62. package/dist/cost-guard.d.ts +3 -1
  63. package/dist/cost-guard.js +3 -1
  64. package/dist/cost-guard.js.map +1 -1
  65. package/dist/daemon.d.ts +230 -13
  66. package/dist/daemon.js +975 -335
  67. package/dist/daemon.js.map +1 -1
  68. package/dist/event-log.d.ts +31 -0
  69. package/dist/event-log.js +96 -0
  70. package/dist/event-log.js.map +1 -1
  71. package/dist/fleet-context.d.ts +2 -0
  72. package/dist/fleet-manager.d.ts +209 -4
  73. package/dist/fleet-manager.js +813 -84
  74. package/dist/fleet-manager.js.map +1 -1
  75. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +22 -0
  76. package/dist/general-knowledge/skills/model-discovery/SKILL.md +14 -23
  77. package/dist/general-knowledge/skills/session-management/SKILL.md +15 -34
  78. package/dist/hang-detector.d.ts +19 -13
  79. package/dist/hang-detector.js +19 -49
  80. package/dist/hang-detector.js.map +1 -1
  81. package/dist/instance-lifecycle.d.ts +21 -1
  82. package/dist/instance-lifecycle.js +141 -7
  83. package/dist/instance-lifecycle.js.map +1 -1
  84. package/dist/instructions.d.ts +5 -0
  85. package/dist/instructions.js +10 -5
  86. package/dist/instructions.js.map +1 -1
  87. package/dist/locale.js +3 -0
  88. package/dist/locale.js.map +1 -1
  89. package/dist/logger.js +14 -0
  90. package/dist/logger.js.map +1 -1
  91. package/dist/mcp-liveness.d.ts +21 -0
  92. package/dist/mcp-liveness.js +27 -0
  93. package/dist/mcp-liveness.js.map +1 -0
  94. package/dist/outbound-handlers.d.ts +16 -0
  95. package/dist/outbound-handlers.js +121 -27
  96. package/dist/outbound-handlers.js.map +1 -1
  97. package/dist/outbound-schemas.d.ts +7 -2
  98. package/dist/outbound-schemas.js +13 -2
  99. package/dist/outbound-schemas.js.map +1 -1
  100. package/dist/pane-write-lock.d.ts +48 -0
  101. package/dist/pane-write-lock.js +73 -0
  102. package/dist/pane-write-lock.js.map +1 -0
  103. package/dist/process-memory.d.ts +31 -0
  104. package/dist/process-memory.js +79 -0
  105. package/dist/process-memory.js.map +1 -0
  106. package/dist/quickstart.js +17 -16
  107. package/dist/quickstart.js.map +1 -1
  108. package/dist/scheduler/db.js +3 -0
  109. package/dist/scheduler/db.js.map +1 -1
  110. package/dist/sd-notify.d.ts +45 -0
  111. package/dist/sd-notify.js +74 -3
  112. package/dist/sd-notify.js.map +1 -1
  113. package/dist/secret-file.d.ts +33 -0
  114. package/dist/secret-file.js +36 -0
  115. package/dist/secret-file.js.map +1 -0
  116. package/dist/setup-wizard.js +9 -7
  117. package/dist/setup-wizard.js.map +1 -1
  118. package/dist/tmux-control.d.ts +58 -5
  119. package/dist/tmux-control.js +107 -13
  120. package/dist/tmux-control.js.map +1 -1
  121. package/dist/tmux-manager.d.ts +47 -2
  122. package/dist/tmux-manager.js +103 -8
  123. package/dist/tmux-manager.js.map +1 -1
  124. package/dist/topic-commands.d.ts +43 -1
  125. package/dist/topic-commands.js +196 -66
  126. package/dist/topic-commands.js.map +1 -1
  127. package/dist/tui-glyphs.d.ts +25 -0
  128. package/dist/tui-glyphs.js +26 -0
  129. package/dist/tui-glyphs.js.map +1 -0
  130. package/dist/types.d.ts +19 -0
  131. package/dist/ui/view.html +291 -33
  132. package/dist/update-check.d.ts +22 -0
  133. package/dist/update-check.js +44 -0
  134. package/dist/update-check.js.map +1 -0
  135. package/dist/usage/providers.d.ts +50 -0
  136. package/dist/usage/providers.js +611 -0
  137. package/dist/usage/providers.js.map +1 -0
  138. package/dist/usage/usage-api.d.ts +50 -0
  139. package/dist/usage/usage-api.js +111 -0
  140. package/dist/usage/usage-api.js.map +1 -0
  141. package/dist/view-api.d.ts +10 -0
  142. package/dist/view-api.js +67 -14
  143. package/dist/view-api.js.map +1 -1
  144. package/dist/web-api.js +5 -2
  145. package/dist/web-api.js.map +1 -1
  146. package/package.json +4 -1
  147. package/templates/systemd.service.ejs +9 -1
  148. package/dist/channel/tool-tracker.d.ts +0 -13
  149. package/dist/channel/tool-tracker.js +0 -58
  150. package/dist/channel/tool-tracker.js.map +0 -1
  151. package/dist/daemon-entry.d.ts +0 -1
  152. package/dist/daemon-entry.js +0 -30
  153. package/dist/daemon-entry.js.map +0 -1
  154. package/dist/fleet-system-prompt.d.ts +0 -11
  155. package/dist/fleet-system-prompt.js +0 -61
  156. package/dist/fleet-system-prompt.js.map +0 -1
@@ -1,13 +1,14 @@
1
1
  import { readFileSync, existsSync } from "node:fs";
2
- import { exec } from "node:child_process";
2
+ import { exec, execFileSync } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import { join, basename } from "node:path";
5
5
  import { createRequire } from "node:module";
6
6
  const execAsync = promisify(exec);
7
7
  import { DEFAULT_INSTANCE_CONFIG } from "./config.js";
8
8
  import { formatCents } from "./cost-guard.js";
9
- import { getAgendHome } from "./paths.js";
9
+ import { getAgendHome, getTmuxSocketName, getTmuxSessionName } from "./paths.js";
10
10
  import { t } from "./locale.js";
11
+ import { PIE_PERCENT_RE } from "./tui-glyphs.js";
11
12
  /** Sanitize a directory name into a valid instance name. Keeps Unicode letters (incl. CJK). */
12
13
  export function sanitizeInstanceName(name) {
13
14
  const sanitized = name.toLowerCase().replace(/[^\p{L}\d-]/gu, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
@@ -91,7 +92,7 @@ export function parseContextPercent(pane) {
91
92
  if (ratio)
92
93
  return ratio.percentage;
93
94
  const m = line.match(/(\d+)%.*[!❯>]/)
94
- || line.match(/◔\s*(\d+)%/)
95
+ || line.match(PIE_PERCENT_RE)
95
96
  || line.match(/\[(\d+)%\]/)
96
97
  || line.match(/Context\s+(\d+)%\s+used/i) // codex "context-used" variant
97
98
  || line.match(/\d+(?:\.\d+)?[KM]?\s*\((\d+)%\)/); // opencode "1.2K (6%)"
@@ -100,6 +101,115 @@ export function parseContextPercent(pane) {
100
101
  }
101
102
  return null;
102
103
  }
104
+ /** Claude Code statusline.json context used % (null if missing / unreadable). */
105
+ export function readStatuslineContextPct(dataDir, instanceName) {
106
+ try {
107
+ const statusFile = join(dataDir, "instances", instanceName, "statusline.json");
108
+ if (!existsSync(statusFile))
109
+ return null;
110
+ const data = JSON.parse(readFileSync(statusFile, "utf-8"));
111
+ const pct = data.context_window?.used_percentage;
112
+ return typeof pct === "number" && Number.isFinite(pct) ? pct : null;
113
+ }
114
+ catch {
115
+ return null;
116
+ }
117
+ }
118
+ /** Live-pane scrape used by /ctx, /status Ctx, and /view sidebar. */
119
+ export function scrapePaneContext(instanceName, backend) {
120
+ try {
121
+ const socketName = getTmuxSocketName();
122
+ // Scrollback (-S -60) so a recent footer/statusline is kept even mid-output.
123
+ const baseArgs = ["capture-pane", "-t", `${getTmuxSessionName()}:${instanceName}`, "-p", "-S", "-60"];
124
+ const tmuxArgs = socketName ? ["-L", socketName, ...baseArgs] : baseArgs;
125
+ const pane = execFileSync("tmux", tmuxArgs, {
126
+ encoding: "utf-8",
127
+ timeout: 2000,
128
+ stdio: ["pipe", "pipe", "pipe"],
129
+ });
130
+ const tokenRatio = backend === "grok" ? parseTokenContextRatio(pane) : null;
131
+ const context = tokenRatio?.percentage ?? parseContextPercent(pane);
132
+ return { context, tokenRatio };
133
+ }
134
+ catch {
135
+ return { context: null, tokenRatio: null };
136
+ }
137
+ }
138
+ const paneContextCache = new Map();
139
+ // Below the dashboard's 10s SSE tick on purpose: at the previous 12s the cache was
140
+ // guaranteed to be stale on roughly every other tick, which is what made the
141
+ // blocking scrape fire so often. Now a tick either hits the cache or triggers a
142
+ // background refresh, never a synchronous capture.
143
+ const PANE_CONTEXT_CACHE_MS = 8_000;
144
+ /** Instances with a background scrape in flight, so polls don't pile up captures. */
145
+ const paneScrapeInFlight = new Set();
146
+ /** Async twin of scrapePaneContext — same parsers, no blocking. */
147
+ async function scrapePaneContextAsync(instanceName, backend) {
148
+ try {
149
+ const socketName = getTmuxSocketName();
150
+ const baseArgs = ["capture-pane", "-t", `${getTmuxSessionName()}:${instanceName}`, "-p", "-S", "-60"];
151
+ const tmuxArgs = socketName ? ["-L", socketName, ...baseArgs] : baseArgs;
152
+ const { promisify } = await import("node:util");
153
+ const { execFile } = await import("node:child_process");
154
+ const { stdout } = await promisify(execFile)("tmux", tmuxArgs, { encoding: "utf-8", timeout: 2000 });
155
+ const pane = stdout.toString();
156
+ const tokenRatio = backend === "grok" ? parseTokenContextRatio(pane) : null;
157
+ return { context: tokenRatio?.percentage ?? parseContextPercent(pane), tokenRatio };
158
+ }
159
+ catch {
160
+ return { context: null, tokenRatio: null };
161
+ }
162
+ }
163
+ /** Refresh one instance's cached context in the background (deduped per instance). */
164
+ function refreshPaneContext(instanceName, backend) {
165
+ if (paneScrapeInFlight.has(instanceName))
166
+ return;
167
+ paneScrapeInFlight.add(instanceName);
168
+ void scrapePaneContextAsync(instanceName, backend)
169
+ .then(scraped => { paneContextCache.set(instanceName, { at: Date.now(), ...scraped }); })
170
+ .finally(() => { paneScrapeInFlight.delete(instanceName); });
171
+ }
172
+ /** Forget a deleted instance's cached context so the map can't grow forever. */
173
+ export function forgetInstanceContext(instanceName) {
174
+ paneContextCache.delete(instanceName);
175
+ }
176
+ /**
177
+ * Single source of truth for instance context % across /ctx, /status, and View.
178
+ * Claude-code prefers statusline.json (authoritative, no TUI scrape); everyone
179
+ * else scrapes the live pane with the same parsers /ctx uses.
180
+ *
181
+ * Non-blocking by default (stale-while-revalidate): a fresh cache entry is
182
+ * returned as-is; a stale or missing one is returned immediately anyway while a
183
+ * background refresh runs. This used to scrape synchronously with `execFileSync`
184
+ * (2s timeout) on a cache miss, and the 12s TTL is LONGER than the dashboard's
185
+ * 10s poll — so roughly every other tick did N blocking captures. With ten
186
+ * non-claude-code instances and a slow tmux that froze the entire fleet event
187
+ * loop for up to 20s per tick: no IPC, no message delivery, no watchdog ping.
188
+ * Three open browser tabs ran three independent polls.
189
+ *
190
+ * Pass `bypassCache` for a synchronous, authoritative read — used by `/ctx`,
191
+ * where a user is asking right now and 2s of blocking is the correct trade.
192
+ */
193
+ export function resolveInstanceContext(dataDir, instanceName, backend, opts) {
194
+ if (backend === "claude-code") {
195
+ const fromFile = readStatuslineContextPct(dataDir, instanceName);
196
+ if (fromFile != null)
197
+ return { context: fromFile, tokenRatio: null };
198
+ }
199
+ if (opts?.bypassCache) {
200
+ const scraped = scrapePaneContext(instanceName, backend);
201
+ paneContextCache.set(instanceName, { at: Date.now(), ...scraped });
202
+ return scraped;
203
+ }
204
+ const hit = paneContextCache.get(instanceName);
205
+ if (hit && Date.now() - hit.at < PANE_CONTEXT_CACHE_MS) {
206
+ return { context: hit.context, tokenRatio: hit.tokenRatio };
207
+ }
208
+ // Stale or absent: kick off the refresh and answer with what we have. A brand-new
209
+ // instance reads as "no data" for one tick rather than blocking the fleet.
210
+ refreshPaneContext(instanceName, backend);
211
+ return hit ? { context: hit.context, tokenRatio: hit.tokenRatio } : { context: null, tokenRatio: null };
212
+ }
103
213
  export class TopicCommands {
104
214
  ctx;
105
215
  constructor(ctx) {
@@ -134,6 +244,10 @@ export class TopicCommands {
134
244
  await this.handleDoctorCommand(msg);
135
245
  return true;
136
246
  }
247
+ if (text === "/usage" || text.startsWith("/usage@")) {
248
+ await this.handleUsageCommand(msg);
249
+ return true;
250
+ }
137
251
  if (text === "/update" || text.startsWith("/update@")) {
138
252
  await this.handleUpdateCommand(msg);
139
253
  return true;
@@ -306,60 +420,40 @@ export class TopicCommands {
306
420
  return t(`${action}.failed`, instanceName, err.message);
307
421
  }
308
422
  }
309
- /** Get context usage text for an instance (shared by TG + DC) */
310
- async getCtxText(instanceName) {
311
- // Classic instances live in classicBot.yaml, not fleet.yaml → consult the
312
- // classic channel manager for those so we don't mis-report defaults.backend.
313
- // getBackendByInstance always returns a string (its own fallback), so only
314
- // use it when the instance is ACTUALLY classic — otherwise a fleet instance
315
- // that inherits its backend would wrongly pick up the classic default.
423
+ /** Resolve the effective backend name for fleet or classic instances. */
424
+ effectiveBackend(instanceName) {
316
425
  const classicBackend = this.ctx.classicChannels?.getChannelIdByInstance(instanceName)
317
- ? this.ctx.classicChannels.getBackendByInstance(instanceName)
426
+ ? this.ctx.classicChannels.getBackendByInstance(instanceName, this.ctx.fleetConfig?.defaults?.backend)
318
427
  : undefined;
319
- const backend = this.ctx.fleetConfig?.instances[instanceName]?.backend
428
+ return this.ctx.fleetConfig?.instances[instanceName]?.backend
320
429
  ?? classicBackend
321
430
  ?? this.ctx.fleetConfig?.defaults?.backend ?? "claude-code";
322
- let context = null;
323
- let tokenRatio = null;
324
- // Only claude-code writes statusline.json. Reading it for other backends
325
- // risks a stale value left over from a previous backend (e.g. after
326
- // switching claude-code kiro-cli), so those go straight to capture-pane.
327
- if (backend === "claude-code") {
328
- try {
329
- const statusFile = join(this.ctx.dataDir, "instances", instanceName, "statusline.json");
330
- if (existsSync(statusFile)) {
331
- const d = JSON.parse(readFileSync(statusFile, "utf-8"));
332
- context = d.context_window?.used_percentage ?? null;
333
- }
334
- }
335
- catch { /* ignore */ }
336
- }
337
- if (context == null) {
338
- try {
339
- const { execFileSync } = await import("node:child_process");
340
- const { getTmuxSocketName, getTmuxSessionName } = await import("./paths.js");
341
- const socketName = getTmuxSocketName();
342
- // Include scrollback (-S -60) so a recent prompt is captured even when
343
- // the CLI is mid-output and the bottom of the visible pane has no prompt.
344
- const baseArgs = ["capture-pane", "-t", `${getTmuxSessionName()}:${instanceName}`, "-p", "-S", "-60"];
345
- const tmuxArgs = socketName ? ["-L", socketName, ...baseArgs] : baseArgs;
346
- const pane = execFileSync("tmux", tmuxArgs, { encoding: "utf-8", timeout: 2000, stdio: ["pipe", "pipe", "pipe"] });
347
- if (backend === "grok")
348
- tokenRatio = parseTokenContextRatio(pane);
349
- context = tokenRatio?.percentage ?? parseContextPercent(pane);
350
- }
351
- catch { /* ignore */ }
352
- }
431
+ }
432
+ /** Get context usage text for an instance (shared by TG + DC) */
433
+ async getCtxText(instanceName) {
434
+ // Classic instances live in classicBot.yaml, not fleet.yaml consult the
435
+ // classic channel manager for those so we don't mis-report defaults.backend.
436
+ const backend = this.effectiveBackend(instanceName);
437
+ // Fresh scrape for /ctx (user is asking right now) — bypass short cache.
438
+ const { context, tokenRatio } = resolveInstanceContext(this.ctx.dataDir, instanceName, backend, { bypassCache: true });
353
439
  const contextLine = context == null ? null : formatContextUsageLine(context, tokenRatio);
440
+ // Effective model (resolves per-instance → fleet default → classic channel →
441
+ // the CLI's own default) via the shared resolver, so /ctx and /model agree.
442
+ const modelDisplay = this.ctx.modelDisplayForInstance?.(instanceName);
443
+ const modelLine = modelDisplay ? `\n${t("ctx.model", modelDisplay)}` : "";
354
444
  return context != null
355
- ? `${contextLine}\n${t("ctx.backend", backend)}\n${t("ctx.instance", instanceName)}`
356
- : `${t("ctx.unavailable")}\n${t("ctx.backend", backend)}\n${t("ctx.instance", instanceName)}`;
445
+ ? `${contextLine}\n${t("ctx.backend", backend)}${modelLine}\n${t("ctx.instance", instanceName)}`
446
+ : `${t("ctx.unavailable")}\n${t("ctx.backend", backend)}${modelLine}\n${t("ctx.instance", instanceName)}`;
357
447
  }
358
448
  /** Send the backend-appropriate compact command to an instance's tmux pane */
359
449
  async sendCompact(instanceName) {
360
450
  const ipc = this.ctx.instanceIpcClients.get(instanceName);
361
451
  if (ipc?.connected) {
452
+ const classicBackend = this.ctx.classicChannels?.getChannelIdByInstance(instanceName)
453
+ ? this.ctx.classicChannels.getBackendByInstance(instanceName, this.ctx.fleetConfig?.defaults?.backend)
454
+ : undefined;
362
455
  const backend = this.ctx.fleetConfig?.instances[instanceName]?.backend
456
+ ?? classicBackend
363
457
  ?? this.ctx.fleetConfig?.defaults?.backend ?? "claude-code";
364
458
  const cmd = compactCommandForBackend(backend);
365
459
  ipc.send({ type: "raw_paste", content: cmd });
@@ -369,7 +463,11 @@ export class TopicCommands {
369
463
  }
370
464
  /** Send a backend-appropriate session-save command to a fleet-topic instance. */
371
465
  async sendSave(instanceName, filename) {
466
+ const classicBackend = this.ctx.classicChannels?.getChannelIdByInstance(instanceName)
467
+ ? this.ctx.classicChannels.getBackendByInstance(instanceName, this.ctx.fleetConfig?.defaults?.backend)
468
+ : undefined;
372
469
  const backend = this.ctx.fleetConfig?.instances[instanceName]?.backend
470
+ ?? classicBackend
373
471
  ?? this.ctx.fleetConfig?.defaults?.backend ?? "claude-code";
374
472
  const cmd = saveCommandForBackend(backend, filename);
375
473
  if (!cmd)
@@ -395,6 +493,30 @@ export class TopicCommands {
395
493
  await adapter.sendText(chatId, t("restart.graceful"), { threadId });
396
494
  process.kill(process.pid, "SIGUSR2");
397
495
  }
496
+ /**
497
+ * `/usage` — AI subscription usage for every CLI backend logged in on this
498
+ * machine, one compact message. Admin-only like /model: the metrics describe
499
+ * the operator's accounts (plans, spend caps), not the fleet, and vendors
500
+ * rate-limit the endpoints behind them, so open access would let any group
501
+ * member both read billing detail and burn the shared cache window.
502
+ */
503
+ async handleUsageCommand(msg) {
504
+ const adapter = this.getReplyAdapter(msg);
505
+ if (!adapter)
506
+ return;
507
+ if (!this.ctx.isFleetAdmin(msg.userId, msg.adapterId)) {
508
+ await adapter.sendText(msg.chatId, t("permission.denied"), { threadId: msg.threadId });
509
+ return;
510
+ }
511
+ try {
512
+ const { getUsageSnapshot, formatUsageSummary } = await import("./usage/usage-api.js");
513
+ const summary = formatUsageSummary(await getUsageSnapshot());
514
+ await adapter.sendText(msg.chatId, summary, { threadId: msg.threadId });
515
+ }
516
+ catch (err) {
517
+ await adapter.sendText(msg.chatId, `⚠️ Usage fetch failed: ${err.message}`, { threadId: msg.threadId });
518
+ }
519
+ }
398
520
  async handleStatusCommand(msg) {
399
521
  const adapter = this.getReplyAdapter(msg);
400
522
  if (!adapter || !this.ctx.fleetConfig)
@@ -433,18 +555,16 @@ export class TopicCommands {
433
555
  const costPaused = this.ctx.costGuard?.isLimited(name);
434
556
  if (status === "paused")
435
557
  pausedCount++;
436
- let contextStr = "-";
437
- try {
438
- const data = JSON.parse(readFileSync(join(this.ctx.dataDir, "instances", name, "statusline.json"), "utf-8"));
439
- if (data.context_window?.used_percentage != null) {
440
- contextStr = `${Math.round(data.context_window.used_percentage)}%`;
441
- }
442
- }
443
- catch { /* file may not exist yet */ }
444
- const costCents = this.ctx.costGuard?.getDailyCostCents(name) ?? 0;
445
558
  const backend = classic
446
559
  ? this.ctx.classicChannels?.getBackendByInstance(name, this.ctx.fleetConfig.defaults?.backend) ?? "-"
447
560
  : this.ctx.fleetConfig.instances[name]?.backend ?? this.ctx.fleetConfig.defaults?.backend ?? "-";
561
+ // Same source as /ctx (statusline for claude-code, pane scrape otherwise).
562
+ // Without this, kiro/grok/codex always showed "-" in the Ctx column.
563
+ const { context } = backend === "-"
564
+ ? { context: null }
565
+ : resolveInstanceContext(this.ctx.dataDir, name, backend);
566
+ const contextStr = context == null ? "-" : `${Math.round(context)}%`;
567
+ const costCents = this.ctx.costGuard?.getDailyCostCents(name) ?? 0;
448
568
  let icon;
449
569
  if (costPaused || status === "paused")
450
570
  icon = "⏸";
@@ -506,6 +626,8 @@ export class TopicCommands {
506
626
  const upMins = Math.floor((info.uptime_seconds % 3600) / 60);
507
627
  const require = createRequire(import.meta.url);
508
628
  const agendVersion = require("../package.json").version ?? "unknown";
629
+ // Rate (claude-code 5h statusline quota) was dropped: on kiro/grok/codex
630
+ // fleets it was permanently "-", so the column just added noise.
509
631
  const lines = [
510
632
  "## System Info",
511
633
  "",
@@ -518,8 +640,8 @@ export class TopicCommands {
518
640
  "",
519
641
  "## Instances",
520
642
  "",
521
- "| Name | State | IPC | Cost | Rate |",
522
- "|------|-------|-----|------|------|",
643
+ "| Name | State | IPC | Cost |",
644
+ "|------|-------|-----|------|",
523
645
  ];
524
646
  const fleetNames = new Set(info.instances.map(inst => inst.name));
525
647
  const classicInstances = (this.ctx.classicChannels?.getAll() ?? [])
@@ -530,7 +652,6 @@ export class TopicCommands {
530
652
  state: this.ctx.getInstanceExecutionState?.(ch.instanceName) ?? null,
531
653
  ipc: this.ctx.instanceIpcClients.has(ch.instanceName),
532
654
  costCents: this.ctx.costGuard?.getDailyCostCents(ch.instanceName) ?? 0,
533
- rateLimits: null,
534
655
  classic: true,
535
656
  }));
536
657
  const instances = [
@@ -548,9 +669,8 @@ export class TopicCommands {
548
669
  : displayState === "paused" ? "⏸"
549
670
  : displayState === "stopped" ? "⚪" : "🟢";
550
671
  const ipc = inst.ipc ? "✓" : "✗";
551
- const rate = inst.rateLimits ? `5h:${inst.rateLimits.five_hour_pct}%` : "-";
552
672
  const displayName = this.shortInstanceName(inst.name);
553
- lines.push(`| ${icon} ${displayName} | ${displayState} | ${ipc} | ${formatCents(inst.costCents)} | ${rate} |`);
673
+ lines.push(`| ${icon} ${displayName} | ${displayState} | ${ipc} | ${formatCents(inst.costCents)} |`);
554
674
  }
555
675
  if (info.fleet_cost_limit_cents > 0) {
556
676
  lines.push("", `Fleet cost: ${formatCents(info.fleet_cost_cents)} / ${formatCents(info.fleet_cost_limit_cents)} daily`);
@@ -592,17 +712,26 @@ export class TopicCommands {
592
712
  return;
593
713
  }
594
714
  await adapter.sendText(chatId, t("doctor.running"), { threadId });
715
+ // Async, and execFile rather than a shell string: as execSync this froze the
716
+ // whole fleet event loop for up to 30s — no IPC, no delivery, no WATCHDOG
717
+ // ping — and any allowlisted user could trigger it with /doctor.
718
+ const stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
719
+ const backend = this.ctx.fleetConfig?.defaults?.backend || "claude-code";
720
+ let output;
595
721
  try {
596
- const { execSync } = await import("node:child_process");
597
- const backend = this.ctx.fleetConfig?.defaults?.backend || "claude-code";
598
- const result = execSync(`agend backend doctor ${backend}`, { timeout: 30_000, encoding: "utf-8" });
599
- const clean = result.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
600
- await adapter.sendText(chatId, clean || "No output", { threadId });
722
+ const { execFile } = await import("node:child_process");
723
+ const { promisify } = await import("node:util");
724
+ const { stdout } = await promisify(execFile)("agend", ["backend", "doctor", backend], {
725
+ timeout: 30_000,
726
+ encoding: "utf-8",
727
+ });
728
+ output = stripAnsi(stdout) || "No output";
601
729
  }
602
730
  catch (err) {
603
- const output = (err.stdout ?? err.message ?? "Doctor failed").replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
604
- await adapter.sendText(chatId, output, { threadId });
731
+ const e = err;
732
+ output = stripAnsi(e.stdout ?? e.message ?? "Doctor failed");
605
733
  }
734
+ await adapter.sendText(chatId, output, { threadId });
606
735
  }
607
736
  /** Reply with redirect when message arrives in an unbound topic */
608
737
  async handleUnboundTopic(msg) {
@@ -733,6 +862,7 @@ export class TopicCommands {
733
862
  { command: "collab", description: "🔒 Toggle bot/webhook mode" },
734
863
  { command: "update", description: "🔒 Update AgEnD to latest" },
735
864
  { command: "doctor", description: "🔒 Run health diagnostics" },
865
+ { command: "usage", description: "🔒 AI subscription usage" },
736
866
  ],
737
867
  scope: { type: "chat", chat_id: ch.group_id },
738
868
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"topic-commands.js","sourceRoot":"","sources":["../src/topic-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topic-commands.js","sourceRoot":"","sources":["../src/topic-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Glyphs used by TUI status lines, shared so a single list can't drift.
3
+ *
4
+ * Kiro CLI (and Antigravity) render context usage as a filling pie, stepping
5
+ * through these as the window fills:
6
+ *
7
+ * ◔ U+25D4 low ◒ U+25D2 mid-high
8
+ * ◐ U+25D0 low-mid ◓ U+25D3 high
9
+ * ◑ U+25D1 mid ◕ U+25D5 very high
10
+ * ● U+25CF nearly full
11
+ *
12
+ * Matching only `◔` meant every reading above the lowest bracket was invisible
13
+ * to `/ctx` and to the ready pattern — and the same character class had been
14
+ * copied to four places, so two of them were missed when the bug was first
15
+ * reported. Import this instead of writing the class out again.
16
+ */
17
+ export declare const PIE_GLYPHS = "\u25D4\u25D0\u25D1\u25D2\u25D3\u25D5\u25CF";
18
+ /** Character class for the pie glyphs, e.g. `new RegExp(`${PIE_CLASS}\\s*(\\d+)%`)`. */
19
+ export declare const PIE_CLASS = "[\u25D4\u25D0\u25D1\u25D2\u25D3\u25D5\u25CF]";
20
+ /**
21
+ * Matches a TUI context reading such as `◑ 27%` or `kiro · ◑ 27% · λ`; group 1
22
+ * is the percentage. Requires the pie at line-start or after a status separator
23
+ * (`·` / box glyph), and not free prose like "● 45% 完成" mid-sentence.
24
+ */
25
+ export declare const PIE_PERCENT_RE: RegExp;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Glyphs used by TUI status lines, shared so a single list can't drift.
3
+ *
4
+ * Kiro CLI (and Antigravity) render context usage as a filling pie, stepping
5
+ * through these as the window fills:
6
+ *
7
+ * ◔ U+25D4 low ◒ U+25D2 mid-high
8
+ * ◐ U+25D0 low-mid ◓ U+25D3 high
9
+ * ◑ U+25D1 mid ◕ U+25D5 very high
10
+ * ● U+25CF nearly full
11
+ *
12
+ * Matching only `◔` meant every reading above the lowest bracket was invisible
13
+ * to `/ctx` and to the ready pattern — and the same character class had been
14
+ * copied to four places, so two of them were missed when the bug was first
15
+ * reported. Import this instead of writing the class out again.
16
+ */
17
+ export const PIE_GLYPHS = "◔◐◑◒◓◕●";
18
+ /** Character class for the pie glyphs, e.g. `new RegExp(`${PIE_CLASS}\\s*(\\d+)%`)`. */
19
+ export const PIE_CLASS = `[${PIE_GLYPHS}]`;
20
+ /**
21
+ * Matches a TUI context reading such as `◑ 27%` or `kiro · ◑ 27% · λ`; group 1
22
+ * is the percentage. Requires the pie at line-start or after a status separator
23
+ * (`·` / box glyph), and not free prose like "● 45% 完成" mid-sentence.
24
+ */
25
+ export const PIE_PERCENT_RE = new RegExp(`(?:^|[·│┃])\\s*${PIE_CLASS}\\s*(\\d+)%(?=\\s*(?:[·│┃λ!❯>]|$))`, "m");
26
+ //# sourceMappingURL=tui-glyphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-glyphs.js","sourceRoot":"","sources":["../src/tui-glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAEpC,wFAAwF;AACxF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,UAAU,GAAG,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CACtC,kBAAkB,SAAS,oCAAoC,EAC/D,GAAG,CACJ,CAAC"}