feat: expand subagent status visibility
This commit is contained in:
@@ -3,12 +3,14 @@ import {
|
||||
resolveDefaultAgentId,
|
||||
resolveSessionAgentId,
|
||||
} from "../../agents/agent-scope.js";
|
||||
import { listSubagentRunsForRequester } from "../../agents/subagent-registry.js";
|
||||
import {
|
||||
ensureAuthProfileStore,
|
||||
resolveAuthProfileDisplayLabel,
|
||||
resolveAuthProfileOrder,
|
||||
} from "../../agents/auth-profiles.js";
|
||||
import { getCustomProviderApiKey, resolveEnvApiKey } from "../../agents/model-auth.js";
|
||||
import { resolveInternalSessionKey, resolveMainSessionAlias } from "../../agents/tools/sessions-helpers.js";
|
||||
import { normalizeProviderId } from "../../agents/model-selection.js";
|
||||
import type { ClawdbotConfig } from "../../config/config.js";
|
||||
import type { SessionEntry, SessionScope } from "../../config/sessions.js";
|
||||
@@ -171,6 +173,30 @@ export async function buildStatusReply(params: {
|
||||
const queueOverrides = Boolean(
|
||||
sessionEntry?.queueDebounceMs ?? sessionEntry?.queueCap ?? sessionEntry?.queueDrop,
|
||||
);
|
||||
|
||||
let subagentsLine: string | undefined;
|
||||
if (sessionKey) {
|
||||
const { mainKey, alias } = resolveMainSessionAlias(cfg);
|
||||
const requesterKey = resolveInternalSessionKey({ key: sessionKey, alias, mainKey });
|
||||
const runs = listSubagentRunsForRequester(requesterKey);
|
||||
const verboseEnabled = resolvedVerboseLevel && resolvedVerboseLevel !== "off";
|
||||
if (runs.length === 0) {
|
||||
if (verboseEnabled) subagentsLine = "🤖 Subagents: none";
|
||||
} else {
|
||||
const active = runs.filter((entry) => !entry.endedAt);
|
||||
const done = runs.length - active.length;
|
||||
if (verboseEnabled) {
|
||||
const labels = active
|
||||
.map((entry) => entry.label?.trim() || entry.task?.trim() || "")
|
||||
.filter(Boolean)
|
||||
.slice(0, 3);
|
||||
const labelText = labels.length ? ` (${labels.join(", ")})` : "";
|
||||
subagentsLine = `🤖 Subagents: ${active.length} active${labelText} · ${done} done`;
|
||||
} else if (active.length > 0) {
|
||||
subagentsLine = `🤖 Subagents: ${active.length} active`;
|
||||
}
|
||||
}
|
||||
}
|
||||
const groupActivation = isGroup
|
||||
? (normalizeGroupActivation(sessionEntry?.groupActivation) ?? defaultGroupActivation())
|
||||
: undefined;
|
||||
@@ -206,6 +232,7 @@ export async function buildStatusReply(params: {
|
||||
dropPolicy: queueSettings.dropPolicy,
|
||||
showDetails: queueOverrides,
|
||||
},
|
||||
subagentsLine,
|
||||
mediaDecisions: params.mediaDecisions,
|
||||
includeTranscriptUsage: false,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user