




















11import crypto from "node:crypto";
22import type { ClearSessionQueueResult } from "../auto-reply/reply/queue.js";
3-import {
4-resolveSubagentLabel,
5-resolveSubagentTargetFromRuns,
6-sortSubagentRuns,
7-type SubagentTargetResolution,
8-} from "../auto-reply/reply/subagents-utils.js";
3+import { resolveSubagentLabel, sortSubagentRuns } from "../auto-reply/reply/subagents-utils.js";
94import { resolveStorePath } from "../config/sessions/paths.js";
105import { loadSessionStore, updateSessionStore } from "../config/sessions/store.js";
116import type { SessionEntry } from "../config/sessions/types.js";
@@ -41,7 +36,6 @@ import { resolveInternalSessionKey, resolveMainSessionAlias } from "./tools/sess
41364237export const DEFAULT_RECENT_MINUTES = 30;
4338export const MAX_RECENT_MINUTES = 24 * 60;
44-export const MAX_STEER_MESSAGE_CHARS = 4_000;
4539const STEER_RATE_LIMIT_MS = 2_000;
4640const STEER_ABORT_SETTLE_TIMEOUT_MS = 5_000;
4741const SUBAGENT_REPLY_HISTORY_LIMIT = 50;
@@ -154,15 +148,8 @@ function ensureControllerOwnsRun(params: {
154148return "Subagents can only control runs spawned from their own session.";
155149}
156150157-function isFinishedForSteerControl(
158-entry: SubagentRunRecord,
159-hasPendingDescendants: boolean,
160-) {
161-return (
162-Boolean(entry.endedAt) &&
163-entry.pauseReason !== "sessions_yield" &&
164-!hasPendingDescendants
165-);
151+function isFinishedForSteerControl(entry: SubagentRunRecord, hasPendingDescendants: boolean) {
152+return Boolean(entry.endedAt) && entry.pauseReason !== "sessions_yield" && !hasPendingDescendants;
166153}
167154168155async function killSubagentRun(params: {
@@ -717,30 +704,6 @@ export async function sendControlledSubagentMessage(params: {
717704}
718705}
719706720-export function resolveControlledSubagentTarget(
721-runs: SubagentRunRecord[],
722-token: string | undefined,
723-options?: { recentMinutes?: number; isActive?: (entry: SubagentRunRecord) => boolean },
724-): SubagentTargetResolution {
725-return resolveSubagentTargetFromRuns({
726- runs,
727- token,
728-recentWindowMinutes: options?.recentMinutes ?? DEFAULT_RECENT_MINUTES,
729-label: (entry) => resolveSubagentLabel(entry),
730-aliases: (entry) => (entry.taskName ? [entry.taskName] : []),
731-isActive: options?.isActive,
732-errors: {
733-missingTarget: "Missing subagent target.",
734-invalidIndex: (value) => `Invalid subagent index: ${value}`,
735-unknownSession: (value) => `Unknown subagent session: ${value}`,
736-ambiguousLabel: (value) => `Ambiguous subagent label: ${value}`,
737-ambiguousLabelPrefix: (value) => `Ambiguous subagent label prefix: ${value}`,
738-ambiguousRunIdPrefix: (value) => `Ambiguous subagent run id prefix: ${value}`,
739-unknownTarget: (value) => `Unknown subagent target: ${value}`,
740-},
741-});
742-}
743-744707export const testing = {
745708setDepsForTest(
746709overrides?: Partial<{
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。