Skip to content

Commit d17bb9c

Browse files
committed
chore(deadcode): collapse session helper barrels
1 parent 2f9107f commit d17bb9c

10 files changed

Lines changed: 22 additions & 52 deletions

src/agents/subagent-announce-output.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
resolveStorePath,
2121
} from "./subagent-announce.runtime.js";
2222
import { assistantCallsSessionsYield, isSessionsYieldToolResult } from "./subagent-yield-output.js";
23-
import { extractAssistantText, sanitizeTextContent } from "./tools/session-message-text.js";
23+
import { extractAssistantText, sanitizeTextContent } from "./tools/chat-history-text.js";
2424
import { isAnnounceSkip } from "./tools/sessions-send-tokens.js";
2525

2626
const FAST_TEST_RETRY_INTERVAL_MS = 8;

src/agents/tools/assistant-phase-text.test.ts

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// assistant message phases.
33
import { describe, expect, it } from "vitest";
44
import { extractAssistantText as extractChatHistoryAssistantText } from "./chat-history-text.js";
5-
import { extractAssistantText as extractSessionAssistantText } from "./session-message-text.js";
65

76
function assistantTextPart(id: string, phase: string, text: string) {
87
return {
@@ -19,39 +18,31 @@ function assistantMessage(...content: ReturnType<typeof assistantTextPart>[]) {
1918
};
2019
}
2120

22-
const assistantTextExtractors = [
23-
["chat history", extractChatHistoryAssistantText],
24-
["session message", extractSessionAssistantText],
25-
] as const;
26-
2721
describe("phase-aware assistant text helpers", () => {
2822
it("fails soft for malformed inputs", () => {
2923
for (const message of [null, 42, "broken history entry"]) {
3024
expect(extractChatHistoryAssistantText(message)).toBeUndefined();
31-
expect(extractSessionAssistantText(message)).toBeUndefined();
3225
}
3326
});
3427

35-
for (const [label, extractAssistantText] of assistantTextExtractors) {
36-
it(`prefers final_answer text over commentary in ${label} helpers`, () => {
37-
const message = assistantMessage(
38-
assistantTextPart("commentary", "commentary", "Need verify healthy."),
39-
assistantTextPart("final", "final_answer", "Health check completed successfully."),
40-
);
28+
it("prefers final_answer text over commentary", () => {
29+
const message = assistantMessage(
30+
assistantTextPart("commentary", "commentary", "Need verify healthy."),
31+
assistantTextPart("final", "final_answer", "Health check completed successfully."),
32+
);
4133

42-
expect(extractAssistantText(message)).toBe("Health check completed successfully.");
43-
});
34+
expect(extractChatHistoryAssistantText(message)).toBe("Health check completed successfully.");
35+
});
4436

45-
it(`preserves spaces across split final_answer blocks in ${label} helpers`, () => {
46-
const message = assistantMessage(
47-
assistantTextPart("commentary", "commentary", "Need verify healthy."),
48-
assistantTextPart("final_1", "final_answer", "Hi "),
49-
assistantTextPart("final_2", "final_answer", "<think>secret</think>there"),
50-
);
37+
it("preserves spaces across split final_answer blocks", () => {
38+
const message = assistantMessage(
39+
assistantTextPart("commentary", "commentary", "Need verify healthy."),
40+
assistantTextPart("final_1", "final_answer", "Hi "),
41+
assistantTextPart("final_2", "final_answer", "<think>secret</think>there"),
42+
);
5143

52-
expect(extractAssistantText(message)).toBe("Hi there");
53-
});
54-
}
44+
expect(extractChatHistoryAssistantText(message)).toBe("Hi there");
45+
});
5546

5647
it("does not fall back to commentary when an explicit final_answer is empty", () => {
5748
// An explicit empty final answer means there is no publishable response;

src/agents/tools/session-message-text.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/agents/tools/sessions-helpers.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ export {
2020
resolveVisibleSessionReference,
2121
shouldResolveSessionIdInput,
2222
} from "./sessions-resolution.js";
23-
export {
24-
extractAssistantText,
25-
sanitizeTextContent,
26-
stripToolMessages,
27-
} from "./chat-history-text.js";
2823
import { normalizeOptionalString, type FastMode } from "@openclaw/normalization-core/string-coerce";
2924
import { getRuntimeConfig } from "../../config/config.js";
3025
import type { OpenClawConfig } from "../../config/types.openclaw.js";

src/agents/tools/sessions-history-tool.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
describeSessionsHistoryTool,
1818
SESSIONS_HISTORY_TOOL_DISPLAY_SUMMARY,
1919
} from "../tool-description-presets.js";
20+
import { stripToolMessages } from "./chat-history-text.js";
2021
import type { AnyAgentTool } from "./common.js";
2122
import { jsonResult, readPositiveIntegerParam, readStringParam } from "./common.js";
2223
import {
@@ -26,7 +27,6 @@ import {
2627
resolveSessionReference,
2728
resolveSandboxedSessionToolContext,
2829
resolveVisibleSessionReference,
29-
stripToolMessages,
3030
} from "./sessions-helpers.js";
3131

3232
const SessionsHistoryToolSchema = Type.Object({

src/agents/tools/sessions-list-tool.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
describeSessionsListTool,
3333
SESSIONS_LIST_TOOL_DISPLAY_SUMMARY,
3434
} from "../tool-description-presets.js";
35+
import { stripToolMessages } from "./chat-history-text.js";
3536
import type { AnyAgentTool } from "./common.js";
3637
import {
3738
jsonResult,
@@ -51,7 +52,6 @@ import {
5152
resolveSandboxedSessionToolContext,
5253
type SessionListRow,
5354
type SessionRunStatus,
54-
stripToolMessages,
5555
} from "./sessions-helpers.js";
5656

5757
const SessionsListToolSchema = Type.Object({

src/agents/tools/sessions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
77
import type { ChannelMessagingAdapter } from "../../channels/plugins/types.js";
88
import { createTestRegistry } from "../../test-utils/channel-plugins.js";
99
import { withEnvAsync } from "../../test-utils/env.js";
10-
import { extractAssistantText, sanitizeTextContent } from "./sessions-helpers.js";
10+
import { extractAssistantText, sanitizeTextContent } from "./chat-history-text.js";
1111

1212
const callGatewayMock = vi.fn();
1313
vi.mock("../../gateway/call.js", () => ({

src/auto-reply/reply/commands-subagents/action-agents.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,10 @@ import { countPendingDescendantRunsFromRuns } from "../../../agents/subagent-reg
55
import { getSubagentRunsSnapshotForRead } from "../../../agents/subagent-registry-state.js";
66
import { getChannelPlugin, normalizeChannelId } from "../../../channels/plugins/index.js";
77
import { getSessionBindingService } from "../../../infra/outbound/session-binding-service.js";
8+
import { resolveChannelAccountId, resolveCommandSurfaceChannel } from "../channel-context.js";
89
import type { CommandHandlerResult } from "../commands-types.js";
910
import { formatRunLabel, sortSubagentRuns } from "../subagents-utils.js";
10-
import {
11-
RECENT_WINDOW_MINUTES,
12-
type SubagentsCommandContext,
13-
resolveChannelAccountId,
14-
resolveCommandSurfaceChannel,
15-
stopWithText,
16-
} from "./shared.js";
11+
import { RECENT_WINDOW_MINUTES, type SubagentsCommandContext, stopWithText } from "./shared.js";
1712

1813
function formatConversationBindingText(params: { conversationId: string }): string {
1914
return `binding:${params.conversationId}`;

src/auto-reply/reply/commands-subagents/action-log.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Implements subagent log retrieval and pagination.
22
import { parseStrictNonNegativeInteger } from "@openclaw/normalization-core/number-coercion";
33
import { normalizeLowercaseStringOrEmpty } from "@openclaw/normalization-core/string-coerce";
4+
import { stripToolMessages } from "../../../agents/tools/chat-history-text.js";
45
import { callGateway } from "../../../gateway/call.js";
56
import type { CommandHandlerResult } from "../commands-types.js";
67
import { formatRunLabel } from "../subagents-utils.js";
@@ -10,7 +11,6 @@ import {
1011
formatLogLines,
1112
resolveSubagentEntryForToken,
1213
stopWithText,
13-
stripToolMessages,
1414
} from "./shared.js";
1515

1616
export async function handleSubagentsLogAction(

src/auto-reply/reply/commands-subagents/shared.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,12 @@ import type { SubagentRunRecord } from "../../../agents/subagent-registry.types.
1212
import {
1313
resolveInternalSessionKey,
1414
resolveMainSessionAlias,
15-
stripToolMessages,
1615
} from "../../../agents/tools/sessions-helpers.js";
1716
import { callGateway } from "../../../gateway/call.js";
1817
import { parseAgentSessionKey } from "../../../routing/session-key.js";
1918
import { isSubagentSessionKey } from "../../../routing/session-key.js";
2019
import { looksLikeSessionId } from "../../../sessions/session-id.js";
2120
import { isNativeCommandTurn, resolveCommandTurnContext } from "../../command-turn-context.js";
22-
import { resolveCommandSurfaceChannel, resolveChannelAccountId } from "../channel-context.js";
2321
import { extractMessageText, type ChatMessage } from "../commands-subagents-text.js";
2422
import type { CommandHandler, CommandHandlerResult } from "../commands-types.js";
2523
import {
@@ -28,8 +26,6 @@ import {
2826
type SubagentTargetResolution,
2927
} from "../subagents-utils.js";
3028

31-
export { stripToolMessages };
32-
export { resolveCommandSurfaceChannel, resolveChannelAccountId };
3329
export type { ChatMessage } from "../commands-subagents-text.js";
3430

3531
export const COMMAND = "/subagents";

0 commit comments

Comments
 (0)