@songsid/agend 2.1.0-beta.4 → 2.1.0-beta.40
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.
- package/README.md +1 -0
- package/README.zh-TW.md +2 -1
- package/dist/access-path.js +3 -3
- package/dist/access-path.js.map +1 -1
- package/dist/agent-cli.js +1 -1
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.d.ts +8 -0
- package/dist/agent-endpoint.js +36 -8
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/backend/antigravity.d.ts +2 -0
- package/dist/backend/antigravity.js +30 -3
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/claude-code.d.ts +2 -0
- package/dist/backend/claude-code.js +16 -4
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/factory.js +4 -1
- package/dist/backend/factory.js.map +1 -1
- package/dist/backend/grok.d.ts +53 -0
- package/dist/backend/grok.js +302 -0
- package/dist/backend/grok.js.map +1 -0
- package/dist/backend/kiro.d.ts +2 -0
- package/dist/backend/kiro.js +32 -3
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +36 -3
- package/dist/backend/types.js +1 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +20 -0
- package/dist/channel/adapters/discord.js +89 -11
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.js +4 -1
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/mcp-tools.js +18 -2
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/chat-export.js +5 -2
- package/dist/chat-export.js.map +1 -1
- package/dist/classic-channel-manager.d.ts +16 -1
- package/dist/classic-channel-manager.js +76 -4
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +116 -19
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +70 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +3 -1
- package/dist/config.js +14 -1
- package/dist/config.js.map +1 -1
- package/dist/context-guardian.d.ts +2 -0
- package/dist/context-guardian.js +10 -2
- package/dist/context-guardian.js.map +1 -1
- package/dist/daemon-entry.js +2 -1
- package/dist/daemon-entry.js.map +1 -1
- package/dist/daemon.d.ts +91 -6
- package/dist/daemon.js +602 -186
- package/dist/daemon.js.map +1 -1
- package/dist/daily-summary.js +7 -2
- package/dist/daily-summary.js.map +1 -1
- package/dist/fleet-context.d.ts +6 -0
- package/dist/fleet-manager.d.ts +113 -8
- package/dist/fleet-manager.js +972 -142
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-system-prompt.js +1 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +19 -13
- package/dist/general-knowledge/skills/fleet-health/SKILL.md +30 -51
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +1 -1
- package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +19 -13
- package/dist/general-knowledge/skills/model-discovery/SKILL.md +1 -5
- package/dist/general-knowledge/skills/scheduling/SKILL.md +41 -0
- package/dist/general-knowledge/skills/session-management/SKILL.md +29 -116
- package/dist/instance-lifecycle.d.ts +15 -1
- package/dist/instance-lifecycle.js +71 -22
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +28 -2
- package/dist/locale.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.js +28 -9
- package/dist/logger.js.map +1 -1
- package/dist/outbound-handlers.d.ts +3 -0
- package/dist/outbound-handlers.js +224 -11
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +44 -2
- package/dist/outbound-schemas.js +50 -3
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pause-marker.d.ts +5 -0
- package/dist/pause-marker.js +36 -0
- package/dist/pause-marker.js.map +1 -0
- package/dist/scheduler/db.d.ts +8 -0
- package/dist/scheduler/db.js +74 -5
- package/dist/scheduler/db.js.map +1 -1
- package/dist/scheduler/db.test.js +50 -0
- package/dist/scheduler/db.test.js.map +1 -1
- package/dist/scheduler/scheduler.d.ts +6 -0
- package/dist/scheduler/scheduler.js +99 -16
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/scheduler/scheduler.test.js +131 -1
- package/dist/scheduler/scheduler.test.js.map +1 -1
- package/dist/scheduler/types.d.ts +9 -3
- package/dist/scheduler/types.js.map +1 -1
- package/dist/settings-api.d.ts +20 -2
- package/dist/settings-api.js +213 -9
- package/dist/settings-api.js.map +1 -1
- package/dist/setup-wizard.js +8 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/statusline-watcher.d.ts +1 -1
- package/dist/statusline-watcher.js +3 -2
- package/dist/statusline-watcher.js.map +1 -1
- package/dist/tmux-control.d.ts +7 -0
- package/dist/tmux-control.js +22 -1
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.d.ts +1 -1
- package/dist/tmux-manager.js.map +1 -1
- package/dist/topic-commands.d.ts +19 -1
- package/dist/topic-commands.js +148 -23
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.js +2 -0
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/types.d.ts +29 -1
- package/dist/tz-utils.d.ts +26 -0
- package/dist/tz-utils.js +46 -0
- package/dist/tz-utils.js.map +1 -0
- package/dist/ui/dashboard.html +3 -3
- package/dist/ui/settings.html +453 -74
- package/dist/web-api.d.ts +1 -0
- package/dist/web-api.js +24 -15
- package/dist/web-api.js.map +1 -1
- package/dist/workflow-templates/default.md +0 -4
- package/package.json +2 -1
|
@@ -3,8 +3,42 @@ import { join } from "node:path";
|
|
|
3
3
|
import yaml from "js-yaml";
|
|
4
4
|
import { getAgendHome } from "./paths.js";
|
|
5
5
|
import { sanitizeInstanceName } from "./topic-commands.js";
|
|
6
|
+
import { KNOWN_BACKENDS } from "./config-validator.js";
|
|
7
|
+
const EXPERIMENTAL_BACKENDS = new Set(["grok"]);
|
|
8
|
+
/** Last real channel activity recorded in a ClassicBot chat log. */
|
|
9
|
+
export function readClassicLastActivityAt(dataDir, instanceName) {
|
|
10
|
+
const logDir = join(dataDir, "workspaces", instanceName, "chat-logs");
|
|
11
|
+
try {
|
|
12
|
+
let latest = 0;
|
|
13
|
+
for (const file of readdirSync(logDir)) {
|
|
14
|
+
if (!file.endsWith(".log"))
|
|
15
|
+
continue;
|
|
16
|
+
try {
|
|
17
|
+
latest = Math.max(latest, statSync(join(logDir, file)).mtimeMs);
|
|
18
|
+
}
|
|
19
|
+
catch { /* skip unreadable log */ }
|
|
20
|
+
}
|
|
21
|
+
return latest || null;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Backends offered by ClassicBot onboarding. `mock` is test-only. */
|
|
28
|
+
export function getClassicBackendChoices() {
|
|
29
|
+
return KNOWN_BACKENDS
|
|
30
|
+
.filter(backend => backend !== "mock" && backend !== "gemini-cli")
|
|
31
|
+
.map(backend => ({
|
|
32
|
+
id: backend,
|
|
33
|
+
label: EXPERIMENTAL_BACKENDS.has(backend) ? `${backend} ⚠️` : backend,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
/** Reject test-only/unknown values supplied through `/start <backend>`. */
|
|
37
|
+
export function isSelectableClassicBackend(backend) {
|
|
38
|
+
return !!backend && KNOWN_BACKENDS.includes(backend) && backend !== "mock";
|
|
39
|
+
}
|
|
6
40
|
const YAML_HEADER = `# ClassicBot Configuration
|
|
7
|
-
# Available backends: claude-code, gemini-cli, codex, opencode, kiro-cli
|
|
41
|
+
# Available backends: claude-code, gemini-cli, codex, opencode, kiro-cli, antigravity, grok
|
|
8
42
|
`;
|
|
9
43
|
/**
|
|
10
44
|
* Derive instance name from channel name + last 4 digits of channelId.
|
|
@@ -101,6 +135,7 @@ export class ClassicChannelManager {
|
|
|
101
135
|
instanceName,
|
|
102
136
|
backend: val.backend,
|
|
103
137
|
model: val.model,
|
|
138
|
+
autoPauseAfter: val.auto_pause_after,
|
|
104
139
|
collab: val.collab,
|
|
105
140
|
preTaskCommand: val.pre_task_command,
|
|
106
141
|
contextLines: val.context_lines,
|
|
@@ -134,6 +169,8 @@ export class ClassicChannelManager {
|
|
|
134
169
|
entry.backend = ch.backend;
|
|
135
170
|
if (ch.model)
|
|
136
171
|
entry.model = ch.model;
|
|
172
|
+
if (ch.autoPauseAfter !== undefined)
|
|
173
|
+
entry.auto_pause_after = ch.autoPauseAfter;
|
|
137
174
|
if (ch.contextLines)
|
|
138
175
|
entry.context_lines = ch.contextLines;
|
|
139
176
|
if (ch.collab)
|
|
@@ -156,6 +193,10 @@ export class ClassicChannelManager {
|
|
|
156
193
|
this.load();
|
|
157
194
|
return true;
|
|
158
195
|
}
|
|
196
|
+
/** Reload immediately after an authenticated settings write. */
|
|
197
|
+
reloadFromDisk() {
|
|
198
|
+
this.load();
|
|
199
|
+
}
|
|
159
200
|
getDefaults() { return this.defaults; }
|
|
160
201
|
/** Check if a guild is allowed. Empty/unset/non-array allowed_guilds = allow all (backward compat). */
|
|
161
202
|
isGuildAllowed(guildId) {
|
|
@@ -181,7 +222,18 @@ export class ClassicChannelManager {
|
|
|
181
222
|
/** Check if a user is admin. Empty/unset admin_users = no admins (secure default). */
|
|
182
223
|
isAdmin(userId) {
|
|
183
224
|
const list = this.defaults.admin_users;
|
|
184
|
-
return !!list && list.length > 0 && list.
|
|
225
|
+
return !!list && list.length > 0 && list.some(id => String(id) === String(userId));
|
|
226
|
+
}
|
|
227
|
+
/** Set the model override for the channel owning `instanceName` and persist. Returns true if found. */
|
|
228
|
+
setModelByInstance(instanceName, model) {
|
|
229
|
+
for (const ch of this.channels.values()) {
|
|
230
|
+
if (ch.instanceName === instanceName) {
|
|
231
|
+
ch.model = model;
|
|
232
|
+
this.save();
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return false;
|
|
185
237
|
}
|
|
186
238
|
/** Toggle collab mode for a channel. Returns new state. */
|
|
187
239
|
toggleCollab(channelId, adapterId) {
|
|
@@ -217,6 +269,18 @@ export class ClassicChannelManager {
|
|
|
217
269
|
const ch = this.find(channelId, adapterId);
|
|
218
270
|
return ch?.model || this.defaults.model || fleetDefault;
|
|
219
271
|
}
|
|
272
|
+
/** Auto-pause fallback: per-channel → Classic defaults → fleet default. */
|
|
273
|
+
getAutoPauseAfter(channelId, adapterId, fleetDefault) {
|
|
274
|
+
const ch = this.find(channelId, adapterId);
|
|
275
|
+
return ch?.autoPauseAfter ?? this.defaults.auto_pause_after ?? fleetDefault;
|
|
276
|
+
}
|
|
277
|
+
getAutoPauseAfterByInstance(instanceName, fleetDefault) {
|
|
278
|
+
for (const ch of this.channels.values()) {
|
|
279
|
+
if (ch.instanceName === instanceName)
|
|
280
|
+
return this.getAutoPauseAfter(ch.channelId, ch.adapterId, fleetDefault);
|
|
281
|
+
}
|
|
282
|
+
return this.defaults.auto_pause_after ?? fleetDefault;
|
|
283
|
+
}
|
|
220
284
|
/** Get backend for an instance by name */
|
|
221
285
|
getBackendByInstance(instanceName, fleetDefault) {
|
|
222
286
|
for (const ch of this.channels.values()) {
|
|
@@ -261,8 +325,16 @@ export class ClassicChannelManager {
|
|
|
261
325
|
isClassicChannel(channelId, adapterId) { return !!this.find(channelId, adapterId); }
|
|
262
326
|
get(channelId, adapterId) { return this.find(channelId, adapterId); }
|
|
263
327
|
getAll() { return [...this.channels.values()]; }
|
|
264
|
-
register(channelId, adapterId, instanceName, channelName, userId) {
|
|
265
|
-
const ch = {
|
|
328
|
+
register(channelId, adapterId, instanceName, channelName, userId, backend) {
|
|
329
|
+
const ch = {
|
|
330
|
+
channelId,
|
|
331
|
+
adapterId,
|
|
332
|
+
name: channelName,
|
|
333
|
+
instanceName,
|
|
334
|
+
...(backend ? { backend } : {}),
|
|
335
|
+
createdAt: new Date().toISOString(),
|
|
336
|
+
createdBy: userId,
|
|
337
|
+
};
|
|
266
338
|
this.channels.set(this.compositeKey(channelId, adapterId), ch);
|
|
267
339
|
this.rebuildChannelIds();
|
|
268
340
|
this.save();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classic-channel-manager.js","sourceRoot":"","sources":["../src/classic-channel-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"classic-channel-manager.js","sourceRoot":"","sources":["../src/classic-channel-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,8 @@ import { homedir, totalmem, freemem } from "node:os";
|
|
|
11
11
|
import { fileURLToPath } from "node:url";
|
|
12
12
|
import { spawn, execSync, execFileSync } from "node:child_process";
|
|
13
13
|
import { getAgendHome, getTmuxSocketName } from "./paths.js";
|
|
14
|
+
import { readClassicLastActivityAt } from "./classic-channel-manager.js";
|
|
15
|
+
import { hasPausedMarker } from "./pause-marker.js";
|
|
14
16
|
/** Prefix tmux args with -L when socket isolation is active. */
|
|
15
17
|
function tmuxArgs(args) {
|
|
16
18
|
const socket = getTmuxSocketName();
|
|
@@ -1749,14 +1751,19 @@ program
|
|
|
1749
1751
|
.option("-o, --output <path>", "Output file path")
|
|
1750
1752
|
.action(async (opts) => {
|
|
1751
1753
|
const { exportChat } = await import("./chat-export.js");
|
|
1752
|
-
// Resolve HH:MM
|
|
1754
|
+
// Resolve --from/--to to the UTC "YYYY-MM-DD HH:MM:SS" format the event-db
|
|
1755
|
+
// stores. HH:MM shorthand is LOCAL time today; a full date/datetime is parsed
|
|
1756
|
+
// per its own form (bare = local, Z/offset = as given) then normalized to UTC.
|
|
1757
|
+
const { resolveTz, localWallToUtcDb, localTodayDate } = await import("./tz-utils.js");
|
|
1758
|
+
const tz = resolveTz();
|
|
1753
1759
|
const resolveTime = (t) => {
|
|
1754
1760
|
if (!t)
|
|
1755
1761
|
return undefined;
|
|
1756
1762
|
if (/^\d{2}:\d{2}$/.test(t)) {
|
|
1757
|
-
return
|
|
1763
|
+
return localWallToUtcDb(`${localTodayDate(tz)} ${t}:00`, tz);
|
|
1758
1764
|
}
|
|
1759
|
-
|
|
1765
|
+
const d = new Date(t);
|
|
1766
|
+
return Number.isNaN(d.getTime()) ? t : d.toISOString().slice(0, 19).replace("T", " ");
|
|
1760
1767
|
};
|
|
1761
1768
|
const dbPath = join(DATA_DIR, "events.db");
|
|
1762
1769
|
const html = exportChat(dbPath, { from: resolveTime(opts.from), to: resolveTime(opts.to) });
|
|
@@ -1889,14 +1896,14 @@ function getTreeRssKb(pid, depth = 0) {
|
|
|
1889
1896
|
return total;
|
|
1890
1897
|
}
|
|
1891
1898
|
function getInstanceStatusStandalone(name) {
|
|
1899
|
+
if (hasPausedMarker(join(DATA_DIR, "instances", name)))
|
|
1900
|
+
return "paused";
|
|
1892
1901
|
const pidPath = join(DATA_DIR, "instances", name, "daemon.pid");
|
|
1893
1902
|
if (!existsSync(pidPath))
|
|
1894
1903
|
return "stopped";
|
|
1895
1904
|
const pid = parseInt(readFileSync(pidPath, "utf-8").trim(), 10);
|
|
1896
1905
|
try {
|
|
1897
1906
|
process.kill(pid, 0);
|
|
1898
|
-
if (existsSync(join(DATA_DIR, "instances", name, "paused-state.json")))
|
|
1899
|
-
return "paused";
|
|
1900
1907
|
return "running";
|
|
1901
1908
|
}
|
|
1902
1909
|
catch {
|
|
@@ -1938,6 +1945,7 @@ function formatTimeSince(isoStr) {
|
|
|
1938
1945
|
* kiro classic "8% !>" / TUI "◔ 1%" / bracket "[8%]" / prompt "8% ❯"
|
|
1939
1946
|
* codex "Context N% left" (remaining → 100-N) or "Context N% used"
|
|
1940
1947
|
* opencode "1.2K (6%)"
|
|
1948
|
+
* grok "12K / 500K" (used tokens / context window)
|
|
1941
1949
|
* Duplicated (not imported) so this CLI entry point stays free of the daemon's
|
|
1942
1950
|
* dependency graph. All returned values are context USED (low % = fresh).
|
|
1943
1951
|
*/
|
|
@@ -1948,6 +1956,18 @@ const defaultParser = (output) => {
|
|
|
1948
1956
|
const left = line.match(/Context\s+(\d+)%\s+left/i);
|
|
1949
1957
|
if (left)
|
|
1950
1958
|
return 100 - parseInt(left[1], 10);
|
|
1959
|
+
const ratio = line.match(/(\d+\.?\d*[KkMm]?)\s*\/\s*(\d+\.?\d*[KkMm]?)/);
|
|
1960
|
+
if (ratio) {
|
|
1961
|
+
const tokenCount = (value) => {
|
|
1962
|
+
const suffix = value.at(-1)?.toLowerCase();
|
|
1963
|
+
const multiplier = suffix === "k" ? 1_000 : suffix === "m" ? 1_000_000 : 1;
|
|
1964
|
+
return parseFloat(value) * multiplier;
|
|
1965
|
+
};
|
|
1966
|
+
const used = tokenCount(ratio[1]);
|
|
1967
|
+
const total = tokenCount(ratio[2]);
|
|
1968
|
+
if (Number.isFinite(used) && Number.isFinite(total) && total > 0)
|
|
1969
|
+
return used / total * 100;
|
|
1970
|
+
}
|
|
1951
1971
|
const m = line.match(/(\d+)%.*[!❯>]/)
|
|
1952
1972
|
|| line.match(/◔\s*(\d+)%/)
|
|
1953
1973
|
|| line.match(/\[(\d+)%\]/)
|
|
@@ -2084,19 +2104,40 @@ async function lsAction(opts) {
|
|
|
2084
2104
|
}
|
|
2085
2105
|
catch { /* ignore */ }
|
|
2086
2106
|
}
|
|
2087
|
-
//
|
|
2107
|
+
// Classic activity is channel-driven. Lightweight Classic daemons often
|
|
2108
|
+
// have no statusline/output log, so prefer the persisted inbound timestamp
|
|
2109
|
+
// and fall back to their durable chat-log mtime for pre-migration history.
|
|
2088
2110
|
let lastActivity = null;
|
|
2089
|
-
|
|
2090
|
-
|
|
2111
|
+
if (isClassic) {
|
|
2112
|
+
let classicActivity = readClassicLastActivityAt(DATA_DIR, name) ?? 0;
|
|
2091
2113
|
try {
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2114
|
+
const inboundPath = join(DATA_DIR, "instances", name, "last-inbound-at");
|
|
2115
|
+
if (existsSync(inboundPath)) {
|
|
2116
|
+
const inboundAt = Number(readFileSync(inboundPath, "utf-8").trim());
|
|
2117
|
+
if (Number.isFinite(inboundAt) && inboundAt >= 0 && inboundAt <= Date.now()) {
|
|
2118
|
+
classicActivity = Math.max(classicActivity, inboundAt);
|
|
2119
|
+
}
|
|
2095
2120
|
}
|
|
2096
2121
|
}
|
|
2097
2122
|
catch { /* ignore */ }
|
|
2123
|
+
if (classicActivity) {
|
|
2124
|
+
lastActivity = formatTimeSince(new Date(classicActivity).toISOString());
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
else {
|
|
2128
|
+
// Fleet activity: prefer statusline.json mtime (updated on real agent activity).
|
|
2129
|
+
for (const probe of ["statusline.json", "daemon.log", "output.log"]) {
|
|
2130
|
+
const p = join(DATA_DIR, "instances", name, probe);
|
|
2131
|
+
try {
|
|
2132
|
+
if (existsSync(p)) {
|
|
2133
|
+
lastActivity = formatTimeSince(statSync(p).mtime.toISOString());
|
|
2134
|
+
break;
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
catch { /* ignore */ }
|
|
2138
|
+
}
|
|
2098
2139
|
}
|
|
2099
|
-
return { name, backend, status, teams, source, context, memMb, lastActivity, idle: undefined };
|
|
2140
|
+
return { name, backend, status, teams, source, context, memMb, lastActivity, classic: isClassic, idle: undefined, state: undefined };
|
|
2100
2141
|
});
|
|
2101
2142
|
// Enrich with idle state from fleet API (if fleet is running)
|
|
2102
2143
|
try {
|
|
@@ -2104,11 +2145,37 @@ async function lsAction(opts) {
|
|
|
2104
2145
|
const resp = await fetch(`http://127.0.0.1:${port}/api/fleet`, { signal: AbortSignal.timeout(2000) });
|
|
2105
2146
|
const apiData = await resp.json();
|
|
2106
2147
|
for (const inst of apiData.instances ?? []) {
|
|
2107
|
-
|
|
2148
|
+
let row = rows.find(r => r.name === inst.name);
|
|
2149
|
+
if (!row && inst.classic) {
|
|
2150
|
+
classicNames.add(inst.name);
|
|
2151
|
+
const channelId = inst.channelId ?? "";
|
|
2152
|
+
row = {
|
|
2153
|
+
name: inst.name,
|
|
2154
|
+
backend: inst.backend ?? "claude-code",
|
|
2155
|
+
status: inst.status ?? "stopped",
|
|
2156
|
+
teams: ["(classic)"],
|
|
2157
|
+
source: inst.adapterId?.toLowerCase().includes("telegram") || channelId.startsWith("-") || (channelId.length > 0 && channelId.length < 17) ? "TG" : "DC",
|
|
2158
|
+
context: null,
|
|
2159
|
+
memMb: null,
|
|
2160
|
+
lastActivity: inst.lastActivity ? formatTimeSince(new Date(inst.lastActivity).toISOString()) : null,
|
|
2161
|
+
classic: true,
|
|
2162
|
+
idle: inst.idle,
|
|
2163
|
+
state: inst.state,
|
|
2164
|
+
};
|
|
2165
|
+
rows.push(row);
|
|
2166
|
+
}
|
|
2108
2167
|
if (row) {
|
|
2109
2168
|
row.idle = inst.idle;
|
|
2110
2169
|
if (inst.status)
|
|
2111
2170
|
row.status = inst.status;
|
|
2171
|
+
if (inst.backend)
|
|
2172
|
+
row.backend = inst.backend;
|
|
2173
|
+
if (inst.classic)
|
|
2174
|
+
row.classic = true;
|
|
2175
|
+
if (inst.state)
|
|
2176
|
+
row.state = inst.state;
|
|
2177
|
+
if (inst.lastActivity)
|
|
2178
|
+
row.lastActivity = formatTimeSince(new Date(inst.lastActivity).toISOString());
|
|
2112
2179
|
}
|
|
2113
2180
|
}
|
|
2114
2181
|
}
|
|
@@ -2117,9 +2184,38 @@ async function lsAction(opts) {
|
|
|
2117
2184
|
console.log(JSON.stringify(rows, null, 2));
|
|
2118
2185
|
return;
|
|
2119
2186
|
}
|
|
2120
|
-
// Status icon
|
|
2121
|
-
const statusIcon = (s, idle) =>
|
|
2122
|
-
|
|
2187
|
+
// Status icon — prefer tri-state 'state' field, fall back to idle boolean
|
|
2188
|
+
const statusIcon = (s, idle, state) => {
|
|
2189
|
+
if (state === "stuck")
|
|
2190
|
+
return "\x1b[31m●\x1b[0m";
|
|
2191
|
+
if (state === "paused" || s === "paused")
|
|
2192
|
+
return "\x1b[2;33m●\x1b[0m";
|
|
2193
|
+
if (state === "working")
|
|
2194
|
+
return "\x1b[34m●\x1b[0m";
|
|
2195
|
+
if (state === "idle")
|
|
2196
|
+
return "\x1b[32m●\x1b[0m";
|
|
2197
|
+
// Fallback for when API is unreachable
|
|
2198
|
+
if (s === "running")
|
|
2199
|
+
return idle === false ? "\x1b[34m●\x1b[0m" : "\x1b[32m●\x1b[0m";
|
|
2200
|
+
if (s === "crashed")
|
|
2201
|
+
return "\x1b[31m●\x1b[0m";
|
|
2202
|
+
return "\x1b[90m○\x1b[0m";
|
|
2203
|
+
};
|
|
2204
|
+
const statusLabel = (s, idle, state) => {
|
|
2205
|
+
if (state === "stuck")
|
|
2206
|
+
return "Stuck";
|
|
2207
|
+
if (state === "paused" || s === "paused")
|
|
2208
|
+
return "Paused";
|
|
2209
|
+
if (state === "working")
|
|
2210
|
+
return "Working";
|
|
2211
|
+
if (state === "idle")
|
|
2212
|
+
return "Idle";
|
|
2213
|
+
if (s === "running")
|
|
2214
|
+
return idle === false ? "Busy" : "Idle";
|
|
2215
|
+
if (s === "crashed")
|
|
2216
|
+
return "Crashed";
|
|
2217
|
+
return "Stopped";
|
|
2218
|
+
};
|
|
2123
2219
|
/** Get display width accounting for fullwidth (CJK) characters */
|
|
2124
2220
|
const displayWidth = (s) => {
|
|
2125
2221
|
let w = 0;
|
|
@@ -2130,7 +2226,8 @@ async function lsAction(opts) {
|
|
|
2130
2226
|
return w;
|
|
2131
2227
|
};
|
|
2132
2228
|
const padDisplay = (s, width) => s + " ".repeat(Math.max(0, width - displayWidth(s)));
|
|
2133
|
-
const
|
|
2229
|
+
const displayName = (row) => row.name;
|
|
2230
|
+
const nameW = Math.max(20, ...rows.map(r => displayWidth(displayName(r)) + 2));
|
|
2134
2231
|
const backendW = 14;
|
|
2135
2232
|
const statusW = 12;
|
|
2136
2233
|
const teamW = 20;
|
|
@@ -2151,9 +2248,9 @@ async function lsAction(opts) {
|
|
|
2151
2248
|
const ctxStr = r.context != null ? `${Math.round(r.context)}%` : "-";
|
|
2152
2249
|
const memStr = r.memMb != null ? `${r.memMb}MB` : "-";
|
|
2153
2250
|
const actStr = r.lastActivity ?? "-";
|
|
2154
|
-
console.log(padDisplay(r
|
|
2251
|
+
console.log(padDisplay(displayName(r), nameW) +
|
|
2155
2252
|
r.backend.padEnd(backendW) +
|
|
2156
|
-
statusIcon(r.status, r.idle) + " " + statusLabel(r.status, r.idle).padEnd(statusW - 2) +
|
|
2253
|
+
statusIcon(r.status, r.idle, r.state) + " " + statusLabel(r.status, r.idle, r.state).padEnd(statusW - 2) +
|
|
2157
2254
|
padDisplay(teamStr, teamW) +
|
|
2158
2255
|
r.source.padEnd(srcW) +
|
|
2159
2256
|
ctxStr.padEnd(ctxW) +
|